北京建设交易工程信息网站,汕头制作网站软件,做免费小说网站怎样赚钱,app源码交易平台业务场景
某服务根据用户相关信息#xff0c;使用搜索引擎进行数据检索
软件配置
solr 1台#xff1a;32c 64g 数据10gb左右#xff0c;版本 7.5.5 应用服务器1台#xff1a;16c 64g 应用程序 3节点
问题产生现象
1、因业务系统因处理能不足#xff0c;对业务系统硬件…业务场景
某服务根据用户相关信息使用搜索引擎进行数据检索
软件配置
solr 1台32c 64g 数据10gb左右版本 7.5.5 应用服务器1台16c 64g 应用程序 3节点
问题产生现象
1、因业务系统因处理能不足对业务系统硬件平台进行升级升级变更为 16c64g — 32c64g 增加 16c 2、业务系统升级处理能力增加对原搜索引擎服务器的qps有所提升原qps 1500 提升至 2600左右 3、搜索引擎负载发生极大变化从原始负载60左右提升至85左右远超预期
分析问题
应用层
链接数未提升仅提升qps应该不会对solr 造成过大的影响
SOLR 层
分析缓存
检查os 剩余内存
使用 htop 观测剩余内存还有将近30g因此决定调整 solr 相关缓存配置
分析 SOLR 线程栈
1、使用 jstack pid pid.jstack 导出solr 线程运行情况 2、通过 IBM JCA469.jar 分析工具检查线程锁 发现500线程等待log锁 检查 solr 相关日志配置 发现 solr 7.5.5 使用 log4j2日志框架且使用同步日志输出模式
调整方案
增加SOLR缓存提升缓存命中率
原始配置 filterCache classsolr.FastLRUCachemaxRamMB2048autowarmCount150000/queryResultCache classsolr.LRUCachesize65536initialSize65536autowarmCount0/documentCache classsolr.LRUCachesize65536initialSize65536autowarmCount0/更新后配置 filterCache classsolr.FastLRUCachemaxRamMB2048autowarmCount150000/queryResultCache classsolr.LRUCachesize131070initialSize131070autowarmCount0/documentCache classsolr.LRUCachesize131070initialSize131070autowarmCount0/
增加JVM 内存
Xmx16g --- Xmx24g使用全局异步日志打印日志输出
在 solr.in.sh 添加JVM启动参数
-Dlog4j2.contextSelectororg.apache.logging.log4j.core.async.AsyncLoggerContextSelector调整后效果如下
os 负载情况
调整前 调整后
线程锁情况 调整后