大IO操作引起ksearch性能波動的問題分析

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


發佈了26 篇原創文章 · 獲贊 3 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章