遇到影響服務器性能的cpuspeed 服務


 

最近碰到一個很蛋痛的問題,,我在公司的代碼上實現了一個功能,然后基於這個測試,結果比對數據發現每天少三千多萬條,,

然后我各種優化,各種零碎部功能閹割,,還是丟數據!

之后,監控運行網卡----watch -n 1 "ifconfig eth2",,,發現網卡丟數據!

之后把修改之前的程序拿上來運行,發現網卡還丟!

 之后查看CPU的使用情況,top 

 

發現有好多CPU被 cpuspeed 限速了,,,懷疑可能是我程序運行的時候選了一個不常用的CPU,而這個CPU可能就是1.2GHz,,影響了程序處理頻率;

查看CPU使用情況的方法:

1,top;   可以用  ps aux |grep XXX    或者  pgrep XXX ,,找出你所要查找的進程號   之后    top -p 進程號 單獨查看該進程的CPU 內存等使用情況;

        你可以用 ps -eLf |grep XXX 來查看程序運行所產生的線程情況;  也可以用 ps axms | grep XXX;

2,mpstat;默認輸出所有CPU使用情況的平均值,用 mpstat -P ALL  命令查看所有的CPU使用情況;

3,ps;  使用ps命令,可以很清楚的看出到底是哪一條進程在吃CPU.排在前面的占用的CPU越多,  ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20    顯示占用CPU最多的20個進程;

4,查看當前進程下參數CPU的使用情況,  cat /proc/cpuinfo ,羅列了所有CPU的使用情況,你也可以過濾里邊的單獨參數,比如查看所有CPU的頻率,cat /proc/cpuinfo | grep -i MHz; 

5,vmstat 一般腳本監控文件時,用他與awk 命令配合使用(未驗證過)。

 

發現上邊這個情況后,馬上聯系甲方處理。

 

處理方法: from:http://blog.sina.com.cn/s/blog_5f2ca1ed0101cz6f.html

1.物理服務器BIOS做設置 關閉節能開啟最大CPU資源使用
做完該操作后,查看cpu主頻仍然是1.2GHz
2.chkconfig --list |grep cpuspeed 發現該服務1,2,3,4,5級別均開機啟動
關閉該服務,並關閉開機啟動,解決該問題。

另外,CPU性能可能也還會與   irqbalance服務 有關。

可以點擊文章: cpuspeed和irqbalance服務器的兩大性能殺手     備注:之前那個鏈接不知道為啥點不過去,換了一個鏈接.

 

補充:

查看某一個進程內部當前運行的有多少線程,還有以下幾個方法值得一用。

 

1.根據進程號進行查詢:

# pstree -p 進程號

# top -Hp 進程號

2.根據進程名字進行查詢:

# pstree -p `ps -e | grep server | awk '{print $1}'`

# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l

這里利用了管道和命令替換,

關於命令替換,我也是今天才了解,就是說用``括起來的命令會優先執行,然后以其輸出作為其他命令的參數,

上述就是用 ps -e | grep server | awk '{print $1}' 的輸出(進程號),作為 pstree -p 的參數

管道和命令替換的區別是:

管道:管道符號"|"左邊命令的輸出作為右邊命令的輸入

命令替換:將命令替換符"``"中命令的輸出作為其他命令相應位置的參數

文章內容來源:  功夫Panda 的     Linux下查看某個進程的線程數量.


免責聲明!

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



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