我有一个托管在 ElasticCloud 中的两节点集群。
Host Elastic Cloud
Platform Google Cloud
Region US Central 1 (Iowa)
Memory 8 GB
Storage 192 GB
SSD Yes
HA Yes
每个节点有:
Allocated Processors 2
Number of processors 2
Number of indices 4*
Shards (p/ index) 5*
Number of replicas 1
Number of document 150M
Allocated Disk 150GB
* 主索引、kibana 和 watcher 创建了一堆小索引。
我的文件大多是文本。还有一些其他字段(每个索引不超过 5 个),没有嵌套对象。指数规格:
| Index | Avg Doc Length | # Docs | Disk |
|---------|----------------|--------|------|
| index-1 | 300 | 80M | 70GB |
| index-2 | 500 | 5M | 5GB |
| index-3 | 3000 | 2M | 10GB |
| index-4 | 2500 | 18M | 54GB |
当系统空闲时,响应时间(加载时间)通常为几秒。但是当我模拟 10 个用户的行为时,我的应用程序开始出现超时。最初超时是 10 秒,我将其更新为 60 秒,但我仍然遇到问题。下面是使用 Search Api 模拟 10 个并发用户的图表。
红线是以秒为单位的总请求时间,粉红色虚线是我的 60 秒超时。所以,我想说在大多数情况下,我的用户都会遇到超时。我使用的查询非常简单:
{
"size": 500,
"from": ${FROM},
"query":{
"query_string": {
"query": "good OR bad"
}
}
}
我已经尝试了我所知道的所有可能的调整。我不知道这是否是真正的ES表现,我必须接受它并升级我的计划。