1. log 分析
主要是影响了系统cache,读log文件导致searcher的mmap内存被swap到硬盘,引起超时。侧重于IO层面
2. 大log文件 删除
主要是kernel整理硬盘快,进入了内核态,而且执行时间较长;导致用户态的searcher操作发生堵塞,引起超时。侧重于CPU和锁层面。
merge分发query给两行search是RR方式,一台search的超时,导致merge链接发生堵塞,从而影响了对所有列的服务,最终导致大范围超时。
解决方法:
总体应该是个链式反应,search单机的io操作影响了这台search的服务能力;merge跟search之间走的kfc,query在两行中round-robin分发,一台search慢就导致merge链接堆积,进而影响了merge对其他列的服务。
可以考虑在query分发时做负载均衡,这个涉及到kfc层面,有难度;或者io操作时,直接把这台search kill掉,另一台search完全可以扛得住流量。现在线上运维脚本,在做log清理,或其他大io操作时,都是把search下线的。
Log分析与大文件删除引发系统超时问题
本文分析了log分析及大log文件删除对系统的影响,log分析会加重系统缓存负担,导致内存交换至硬盘并引发超时;大文件删除进入内核态并长时间占用CPU资源,造成搜索服务堵塞与超时。提出了通过负载均衡或临时关闭服务等解决方案。
940

被折叠的 条评论
为什么被折叠?



