此文已由作者趙慧莉授權網易雲社群釋出。
歡迎通路網易雲社群,了解更多網易技術産品營運經驗。
一、前言
在進行性能測試前,有些參數需要本地進行調試,不适合直接使用性能測試平台。主要通過監控CPU、記憶體、磁盤、網絡情況來判斷是否符合标準。接下來将通過CPU、記憶體、磁盤、網絡情況的評估标準、常見的監控指令、常見會出現的一些問題來進行分析。
二、資源監控
1、監控CPU
- CPU評估
- user + sys [0%, 50%] :負載低
- user + sys [70%, 90%] :負載高
- user + sys [90%, 100%] :滿負荷
- CPU在滿負荷狀态下應符合7/3分布
- CPU的負載不能高于CPU核心數目
- 常用的監控指令
- 整理CPU使用情況:top/vmstat/dstat
- 每個CPU使用情況:mpstat
- 程序CPU使用情況:pidstat
- 舉例
- vmstat指令:用來獲得有關程序、虛存、頁面交換空間及 CPU活動的資訊。(執行個體為:1s采集一次,采集4次後結束)
- dstat指令, 預設情況它會收集-cpu-,-disk-,-net-,-paging-,-system-的資料。(預設輸入dstat等于輸入了dstat -cdngy 1或dstat -a 1. 推薦使用 date && dstat -tclmdny 60 一分鐘監視一次)
- mpstat最大的特點是:可以檢視多核心cpu中每個計算核心的統計資料。
- pidstat主要用于監控全部或指定程序占用系統資源的情況,如CPU,記憶體、裝置IO、任務切換、線程等。
- 常見的CPU問題
- 多核使用率不均勻
- CPU使用率過高
- CPU周期性的飙升
2、監控記憶體
- 記憶體
- 實體記憶體:真正的記憶體
- 虛拟記憶體:為了滿足實體記憶體不足,利用磁盤空間虛拟出的邏輯記憶體
- 使用交換記憶體會帶來磁盤IO和CPU開銷的增加
- top
- free
- vmstat
- cat /proc/meminfo
- 常見的記憶體問題
- OOM
- 記憶體暴增
- swap升高
- 記憶體洩漏
3、監控磁盤
- 相關名額
- IOPS:每秒讀寫次數,tps
- bps:每秒讀寫塊數,Blk_read/s , Blk_wrtn/s
- %util:裝置的使用率
- svctm:平均每次裝置I/O操作的服務時間
- await:平均每次裝置I/O操作的等待時間,排隊時間+服務時間
- avgqu-sz:平均I/O隊列長度
- await和svctm差距越大表示io的壓力越大
- iostat
- iotop
- iostat選項-x,該選項将用于顯示和io相關的擴充資料。
4、監控網絡
- 需要關注點
- 網絡流量
- 監聽端口
- 連接配接數
- 句柄數
- netstat / dstat
- lsof
- sar
- tcpdump
- iptraf
- tcpdump(tcpdump -i any -s 0 -l -w - port 8186|strings )
- 常見的網絡問題
- 能ping通但是服務不能通路
- too many open files
三、總結
本文主要從監控CPU、記憶體、磁盤、網絡四個方面進行分析,每方面的從評估标準、常見的監控指令、常見會出現的一些問題來進行闡述,希望能給大家帶來基礎的認識。
免費體驗雲安全(易盾)内容安全、驗證碼等服務
更多網易技術、産品、營運經驗分享請點選。
相關文章:
【推薦】 jq一個強悍的json格式化檢視工具