如何计算Shopware 6实例所需的Elasticsearch节点大小?
Shopware 6 Elasticsearch节点容量估算方法
一、索引文档数量粗略计算
Shopware 6的Elasticsearch索引文档数可以按以下规则估算:
- 核心商品索引文档数 = 商品数 × 销售渠道数 × 语言数,这部分是占比最高的索引
按照你提供的KPI计算:10000 × 2 × 1 = 20000条 - 其他辅助索引(分类、客户、搜索建议、规则关联等)总文档数通常为核心商品索引的10%20%,对应你的场景约为20004000条
整体总文档数量级约为2.2万~2.4万条。
二、节点配置容量估算公式
存储容量计算
单条Shopware 6的ES文档(包含商品基础信息、价格、库存、属性、分类关联等)平均大小为1KB~3KB,自定义字段越多单条体积越大。最终存储需求需要叠加以下冗余规则:
- 原始索引总大小 = 总文档数 × 单条文档平均大小
- 预留1倍空间用于ES段合并操作
- 预留30%空间用于操作系统文件缓存和空闲冗余
- 生产环境建议开启至少1个副本,存储需求乘以(副本数+1)
对应你的场景计算参考:
按单条文档最大3KB计算,原始索引大小约为72MB;开启1副本后为144MB;加1倍合并空间为288MB;加30%冗余后总存储需求约为375MB,即使配置10G的存储盘也完全满足需求。
计算资源估算
- 内存:ES堆内存建议不超过31GB,且不超过物理内存的50%。10万条文档以内的中小规模Shopware实例,分配2GB4GB堆内存(对应4GB8GB物理内存)即可满足需求,你的场景2GB堆内存就可稳定运行。
- CPU:2核vCPU即可支撑日常搜索、索引更新请求,若日常搜索并发较高可升级到4核。
三、调整参考
- 后续如果新增销售渠道、语言、自定义商品字段,可按对应比例上调配置
- 生产环境建议至少部署1主1数据两个节点,或单节点开启1副本保证数据可靠性
- 全量索引更新频繁的场景,可以额外多分配0.5GB~1GB的堆内存
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

