目前測試最常用操作系統(tǒng)是linux,對Linux操作系統(tǒng)監(jiān)控及命令,是作為性能測試人員,必須掌握的技能。下圖整理性能測試中常用監(jiān)控命令,掌握如下命令基本可定位解決linux中95%的問題。
Linux監(jiān)控命令
監(jiān)控命令
- 操作系統(tǒng)版本
操作系統(tǒng)版本命令
- CPU
CPU監(jiān)控命令
- MEM及句柄
內(nèi)存命令
句柄監(jiān)控命令
- IO
IO有關(guān)命令
- 網(wǎng)絡(luò)
網(wǎng)絡(luò)有關(guān)命令
- 進程及線程
監(jiān)控進程及線程命令
- 其它
其它命令
診斷思路
- CPU診斷思路
主要監(jiān)控目的:判斷是否因為CPU存在瓶頸,什么原因引起CPU高。
(1) user%: 跟用戶的進程有關(guān)系,當(dāng)user%高于70%,需要查看哪個進程占用CPU,如果關(guān)注的進程,則需要優(yōu)化;如果不是關(guān)注的進程,要具體分析(主要方法:占用CPU高的進程是什么進程,為什么會出現(xiàn))。
(2) sys%: 跟I/O管理;中斷和驅(qū)動有關(guān);跟內(nèi)存管理;頁面交換有關(guān);跟進程管理;上下文切換有關(guān);當(dāng)sys%大于20%時,關(guān)注內(nèi)存是否不足;上下文切換值是否很高。
(3) wait%: 跟IO有關(guān)系;用于進程等待I/O而使CPU處理空閑狀態(tài)的比率。當(dāng)wait%高于10%,關(guān)注磁盤IO是否很忙,如果很忙,需要解決磁盤問題。
(4) 隊列r: 當(dāng)連續(xù)大于系統(tǒng)CPU個數(shù)時,表示系統(tǒng)現(xiàn)在運行比較慢,當(dāng)持續(xù)大于CPU個數(shù)的2倍以上時,說明CPU明顯瓶頸。
(5) cs(上下文切換):當(dāng)持續(xù)大于20000,則說明cs已經(jīng)很高了,要查看一下sys%占用很高。
- MEM診斷思路
主要監(jiān)控目的:判斷用戶進程是否出現(xiàn)異常,內(nèi)存泄露或資源使用不釋放;
異常分析思路:
(1) memfree越來越少,同時swap free越來越少;
(2) 文件句柄數(shù)越來越接近系統(tǒng)默認(rèn)的文件句柄數(shù);
當(dāng)日志中出“open too many files”需要關(guān)注進程的文件句柄數(shù),當(dāng)進程的文件句柄數(shù)超過系統(tǒng)默認(rèn)句柄數(shù)時,系統(tǒng)會生產(chǎn)異常。
- IO診斷思路
主要監(jiān)控目的:判斷用戶進程是否出現(xiàn)IO瓶頸
(1) 了解磁盤理論上最大的讀寫速度
(2) 監(jiān)控實際使用磁盤讀寫情況,對比理論值是否接近理論值
- 網(wǎng)絡(luò)診斷思路
主要監(jiān)控目的:判斷系統(tǒng)網(wǎng)絡(luò)吞吐量是否出現(xiàn)瓶頸,是否達到網(wǎng)絡(luò)帶寬限制;網(wǎng)絡(luò)狀態(tài)和數(shù)量是否有異常,網(wǎng)絡(luò)連接數(shù)是否達到最大值。
(1) 查看網(wǎng)絡(luò)端口連接狀態(tài)和數(shù)量,是否存在異常連接情況(如:CLOSE_WAIT狀態(tài))。
(2) 查看網(wǎng)絡(luò)連接IP分配情況,檢查連接數(shù)是否與配置值一致。