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