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下線的。