linux性能監(jiān)控命令
vmstat
可以用來監(jiān)控虛擬內(nèi)存贯要。可對(duì)操作系統(tǒng)的虛擬內(nèi)存椭住、IO崇渗、CPU等多個(gè)指標(biāo)的整體情況進(jìn)行監(jiān)視。
Linux系統(tǒng)的內(nèi)存分為物理內(nèi)存和虛擬內(nèi)存兩種京郑。物理內(nèi)存是真實(shí)的宅广,也就是物理內(nèi)存條上的內(nèi)存。而虛擬內(nèi)存則是采用硬盤空間補(bǔ)充物理內(nèi)存些举,將暫時(shí)不使用的內(nèi)存頁寫到硬盤上以騰出更多的物理內(nèi)存讓有需要的進(jìn)程使用跟狱。當(dāng)這些已被騰出的內(nèi)存頁需要再次使用時(shí)才從硬盤(虛擬內(nèi)存)中讀回內(nèi)存。這一切對(duì)于用戶來說是透明的户魏。通常對(duì)Linux系統(tǒng)來說驶臊,虛擬內(nèi)存就是swap分區(qū)。
內(nèi)存方面:
swpd:已經(jīng)使用的交換內(nèi)存(kb)
free:空閑的物理內(nèi)存(kb)
buff:用作緩沖區(qū)的內(nèi)存數(shù)(kb)
cache:用作高速緩存的內(nèi)存數(shù)(kb)
si叼丑、so 兩列资铡,表示磁盤和內(nèi)存之間交換的頻繁程度。
分析思路:
如果 si幢码、so 數(shù)值長期很大并且free長期很小,表示物理內(nèi)存不能滿足需要尖飞,也就是內(nèi)存不足症副。由于磁盤的性能比內(nèi)存是慢很多的店雅,所以如果存在大量的頁面交換,那么系統(tǒng)的性能必然會(huì)受到很大影響贞铣。
CPU方面:
r:展示了正在執(zhí)行和等待cpu資源的任務(wù)個(gè)數(shù)闹啦。當(dāng)這個(gè)值超過了cpu個(gè)數(shù),就會(huì)出現(xiàn)cpu瓶頸辕坝。
us:用戶CPU時(shí)間窍奋。
sy:系統(tǒng)CPU時(shí)間。
id:空閑CPU時(shí)間酱畅。
wa:等等I/O CPU時(shí)間琳袄。
us+sy+id+wa=100%
分析思路:
如果 r 經(jīng)常大于4,且id經(jīng)常小于40纺酸,表面CPU的負(fù)荷很重窖逗。
free
可以用來觀察內(nèi)存使用情況。
total= used + free
分析思路:
當(dāng) –/+ buffers/cache中的free長時(shí)間接近0餐蔬,且 swap used長時(shí)間比較大時(shí)碎紊,說明物理內(nèi)存已經(jīng)不夠用了,需要升級(jí)內(nèi)存或降低內(nèi)存的使用量樊诺。
iostat
可以用來監(jiān)控磁盤I/O的情況仗考。
顯示結(jié)果為從系統(tǒng)開機(jī)到當(dāng)前執(zhí)行時(shí)刻的統(tǒng)計(jì)信息。
第一行顯示系統(tǒng)版本词爬、主機(jī)名秃嗜、日期等信息。
avg-cpu:顯示總體CPU使用情況統(tǒng)計(jì)信息缸夹。如果是多核CPU的話痪寻,這里取平均值。
Device: 顯示各磁盤設(shè)備的IO統(tǒng)計(jì)信息虽惭。
主要關(guān)注點(diǎn):
avg-cpu 的 %iowait:表明CPU用于等待I/O請(qǐng)求完成的時(shí)間橡类。
Device 的 tps:每秒進(jìn)程下發(fā)的I/O讀寫請(qǐng)求數(shù)量。
顯示和I/O相關(guān)的更詳細(xì)的數(shù)據(jù)芽唇。
主要關(guān)注點(diǎn):
avgqu-sz:是平均請(qǐng)求隊(duì)列的長度顾画。毫無疑問,隊(duì)列長度越短越好匆笤。
await: 每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位是微秒毫秒)研侣。這里可以理解為IO的響應(yīng)時(shí)間,一般地系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms炮捧,如果大于10ms就比較大了庶诡。這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說咆课,一般情況下末誓,await大于svctm扯俱,它們的差值越小,則說明隊(duì)列時(shí)間越短喇澡,反之差值越大迅栅,隊(duì)列時(shí)間越長,說明系統(tǒng)出了問題晴玖。
svctm 表示平均每次設(shè)備I/O操作的服務(wù)時(shí)間(以毫秒為單位)读存。如果svctm的值與await很接近,表示幾乎沒有I/O等待呕屎,磁盤性能很好让簿,如果await的值遠(yuǎn)高于svctm的值,則表示I/O隊(duì)列等待太長榨惰, 系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟?/p>
%util:在統(tǒng)計(jì)時(shí)間內(nèi)所有處理IO時(shí)間拜英,除以總共統(tǒng)計(jì)時(shí)間。例如琅催,如果統(tǒng)計(jì)間隔1秒居凶,該設(shè)備有0.8秒在處理IO,而0.2秒閑置藤抡,那么該設(shè)備的%util = 0.8/1 = 80%侠碧,所以該參數(shù)暗示了設(shè)備的繁忙程度。一般地缠黍,如果該參數(shù)是100%表示設(shè)備已經(jīng)接近滿負(fù)荷運(yùn)行了(當(dāng)然如果是多磁盤弄兜,即使%util是100%,因?yàn)榇疟P的并發(fā)能力瓷式,所以磁盤使用未必就到了瓶頸)替饿。
分析思路:
如果%util值長期處于100%左右,并且avgqu-sz的值比較大贸典,同時(shí)await的值遠(yuǎn)大于svctm视卢,可以認(rèn)為磁盤的處理能力不夠。
如果只有一個(gè)指標(biāo)持續(xù)走高廊驼,需要結(jié)合mem指標(biāo)來看据过,是否是由于內(nèi)存空間不夠?qū)е麓疟P的使用增加。
top
可以實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的占用情況妒挎。
上部分列出了系統(tǒng)整體的統(tǒng)計(jì)信息:任務(wù)绳锅、CPU、內(nèi)存酝掩、交換區(qū)等信息鳞芙。
下部分列出了進(jìn)程的詳細(xì)情況。
uptime
可以查看系統(tǒng)負(fù)載。顯示的和top命令第一行一樣积蜻。
當(dāng)前時(shí)間
系統(tǒng)已運(yùn)行時(shí)間
當(dāng)前在線用戶
平均負(fù)載:一定時(shí)間內(nèi)CPU任務(wù)隊(duì)列的平均長度闯割,是在一段時(shí)間內(nèi)CPU正在處理以及等待CPU處理的進(jìn)程數(shù)之和的統(tǒng)計(jì)信息。上面3個(gè)數(shù)分別是——最近一分鐘系統(tǒng)的負(fù)載竿拆、最近5分鐘系統(tǒng)的負(fù)載、最近15分鐘系統(tǒng)的負(fù)載
ps
查看所有進(jìn)程
netstat
這個(gè)命令用來查看當(dāng)前建立的網(wǎng)絡(luò)連接(深刻理解netstat每一項(xiàng)代表的含義)宾尚。最經(jīng)典的案例就是查看本地系統(tǒng)打開了哪些端口: