經過個人運維經驗整理,總結出一些常用的查詢、監測類的命令,通過這些命令主要用來排查系統卡頓問題,判斷是否是CPU、內存、IO、網絡等因素影響。命令以簡單易記為主。
1 CPU檢查
1.1 top命令
命令格式:
1) top
2) top -U 用戶名
主要用詳細監測CPU資源,統計CPU消耗
參考:第三行參數
1)Cpu us<60%
2)Cpu sy<50%
3) 進程Cpu 百分比消耗<15%
4)id > 40,如果持續低于10,表示cpu性能不足
注意:發現進程長時間占用CPU,并且值很高,需要引起注意,進一步檢查
2 內存檢查
2.1 free命令
命令格式:
1) free -mh
主要用詳細監測物理內存、緩存資源,統計內存消耗
參考:
1)swap used值大于0時,表示物理內存資源不夠,開始使用硬盤緩存,存在性能隱患
注意:當linux物理內存足夠,內存預先分配后不會輕易回收,出現內存mem used值很高,屬正常
free 是真正尚未被使用的物理內存數量。
available 是應用程序認為可用內存數量,available = free + buffer + cache (注:只是大概的計算方法)
3 I/O檢查
3.1 IOStat命令
命令格式:
1) iostat -md /dev/sda 2 20 (對sda硬盤,以每隔2秒,共取20次值,并換算成M單位)
主要用于收集物理硬盤的讀寫情況
參考:
4) %iowait的值過高,表示硬盤存在I/O瓶頸
5) %idle值持續低于10,表明CPU性能不足
注意:根據對應業務狀態,判斷讀寫值是否超出業務需求 ,一般觀察每秒讀寫即可。
另命令iotop可以查看各個進程對io消耗以從大到小的結果排列
命令iotop
4 網絡檢查
4.1 sar命令
命令格式:
1) sar -n DEV 2 20
主要用于收集網絡收發狀態
參考:
1)txkB/s rckB/s為發送和接收的每秒字節
注意:帶寬總消耗<網卡物理帶寬x60%,屬合理狀態
4.2 netstat命令
命令格式:
1) netstat -tnp
2) netstat -tnp | grep 1521 | wc -l (統計1521連接數)
3) netstat -tnp | grep ‘TIME_WAIT’ | wc -l )(統計TIME_WAIT狀態連接數)
主要用詳細監測網絡連接數情況,同時可以查看對端ip地址
參考:
1) 檢查time_wait連接不應該太多,太多表示業務沒正常斷開tcp、或網絡不穩定
注意:連接數視業務情況,無用的TIME_WAIT會消耗服務器連接數,可以修改內核tcp/ip連接數提高連接數限制。
5 OS檢查
5.1 ps命令
命令格式:
1) ps -ef | grep redis
2) ps -fu 用戶名
主要用查詢進程在線情況
注意:配合grep參數可以精確查詢,判斷進程是否在運行
5.2 uptime命令
命令格式:
1) uptime
主要用于顯示系統開機運行時間總和
參考:
1)建議服務器半年重啟一次
5.3 date -R命令
命令格式:
1) date -R
主要用于顯示時間、日期、時區
參考:
1) 時間按照北京時間
2) 時區必須等于+8,也就是東8區
注意:時區問題經常出現在linux上,導致時間相差8小時,如果是虛擬機,會從虛擬機的宿主機上繼承同步,需要進一步檢查虛擬化平臺的時區問題。
5.4 du命令
命令格式:
1) du -sh /home/
該命令統計目錄大小,用于判斷程序占用多少空間。
注意:linux的根目錄(/)如果空間占滿,很可能會出現卡頓,甚至重啟后無法進入系統,因此需要格外檢查運行在根目錄下的程序,比如日志目錄大小,并設置定時清理任務腳本