我在三台 r5.xlarge EC2 上安装了三台 9.1 Solrcloud,并使用 EFS 和 stunnel 共享磁盘驱动器。 solr 数据目录与 Zookeeper 一起位于共享系统上。
我每天收到大约 20000 个文档,我正在尝试执行索引以及一些常规查询和一些新功能的特殊查询。
当我刚刚重新启动 Solr 时,这些新查询运行得非常快,但随着时间的推移变得越来越慢。
以下是典型的数字。在时间 1 时,请求仅花费了 2.162 秒,但等待了一整夜后,响应花费了 18.137 秒。这只是典型的。
businessId, all count, reduced count, time1, time2
7016274253,8433,4769,2.162,18.137
此查询的行为根据执行时间的不同而有很大不同。一夜之间,Solr 服务器速度变慢,并最终给出不可接受的响应时间。不确定该请求是否重要,但它是:
url: "http://xxx.aws01.hibu.int:8983/solr/calls/select",
params: {
q: `business_id:${businessId} AND call_day:[20230101 TO 20240101}`,
fl: "business_id, call_id, call_day, call_date, dialog_merged, call_callerno, call_duration, call_status, caller_name, caller_address, caller_state, caller_city, caller_zip",
rows: limit,
start: 0,
group: true,
"group.main": true,
"group.field": "call_callerno",
sort: "call_day desc"
}
这是我对 autoCommit 和 softCommit 的了解。客户端不使用硬提交而是软提交。
<autoCommit>
<maxTime>180000</maxTime>
<maxSize>512m</maxSize>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>10000</maxTime>
</autoSoftCommit>
我主要感兴趣的是为什么它会随着时间的推移而减慢。为什么当我刚开始时它表现良好,然后随着时间的推移它变得非常慢。
是我的索引吗?是我的缓存吗?
注意:当我查看 /solr/admin/metrics 时,我在其中的内容中看到这个分片花费了相当长的时间。
"QUERY./select.requestTimes":{
"count":4577,
"meanRate":0.09252592498547889,
"1minRate":0.07171534322545538,
"5minRate":0.056511876693544336,
"15minRate":0.05780642380709814,
"min_ms":5.607831,
"max_ms":35447.542165,
"mean_ms":12.160278707076563,
"median_ms":5.988622,
"stddev_ms":14.871542074236968,
"p75_ms":6.307839,
"p95_ms":42.103719,
"p99_ms":42.103719,
"p999_ms":98.124416},
另一个时间很可笑。
"QUERY./select.requestTimes":{
"count":4486,
"meanRate":0.09405828676729713,
"1minRate":0.09345322035169516,
"5minRate":0.062102810330670666,
"15minRate":0.05520043855292057,
"min_ms":5.666243,
"max_ms":34713.632736,
"mean_ms":272.95919728573585,
"median_ms":6.101441,
"stddev_ms":813.2470530531275,
"p75_ms":7.397941,
"p95_ms":3392.606168,
"p99_ms":3392.606168,
"p999_ms":3392.606168},
几周前向Solr 用户邮件列表提出了这个问题,并收到了一些回复。此邮件列表通常是询问 Solr 问题的最佳场所。
简短的建议是不要使用 EFS 和 stunnel,因为它会给 Solr 这样的应用程序带来糟糕的性能。对于搜索引擎,您需要在每个节点上都有专用的快速磁盘。避免使用 NFS 或其他共享网络磁盘系统。