處理linux服務器cpu的wa%值過高


原文:

https://blog.csdn.net/joeyon1985/article/details/39126685

時近中午醒來,看了一下新聞,做了十幾分鍾的室內運動,洗澡之后發現脖子有點疼,可能昨晚睡覺給扭到了。下班街頭看美女都不好扭脖子。現在項目急,每天更新,然后修bug.。出問題的風險也越來越高,7號公司網站就出現,響應很慢的情況,最后排除發現是機房出口帶寬不夠用了。囧,今天寫周報,發現數據庫服務器CPU的wa%值增加的很快,排查了一下,發現是mongodb的一個集合寫入磁盤時間太慢,而且並發也挺高才導致的。

所以這篇日志是用來記錄處理過程的。

 

1)Top命令查看一下,確認情況。

top

CPU1跟CPU8兩個wa%值很高。

2)iotop –o 查看那些進程正在讀寫磁盤。

iotop

觀察了一段時間發現讀寫數據量不大但是很頻繁。

3)觀察一下mongodb的日志看看是不是有類似mysql的慢查詢操作

祭出強大的awk篩選出操作時間超過一秒的記錄

1
#awk '!/authenticate/&&!/connection/{gsub(/ms/,"",$NF);if($NF>=1000){print$0}}' /var/log/mongdb.log

log

滿屏幕的update操作,來自db_imaibo_live庫下面的cs_combination_stock_log集合而且操作基本都在四秒以上。

4)上報朝廷。。。。跟開發工程師反應之后,了解到這個集合一天生成3萬多的記錄,現在總記錄已經有280多萬了,每次update都要先掃描整個集合,好悲傷的感覺。

5)商討之后,備份集合,清理數據,調整業務邏輯,收工!

 

轉載:http://blog.cxzlm.org/?p=478


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM