2021-02-11 分類: 網(wǎng)站建設(shè)
一、uptime命令
這個(gè)命令可以快速查看機(jī)器的負(fù)載情況。在Linux系統(tǒng)中,這些數(shù)據(jù)表示等待CPU資源的進(jìn)程和阻塞在不可中斷IO進(jìn)程(進(jìn)程狀態(tài)為D)的數(shù)量。這些數(shù)據(jù)可以讓我們對(duì)系統(tǒng)資源使用有一個(gè)宏觀的了解。
命令的輸出分別表示1分鐘、5分鐘、15分鐘的平均負(fù)載情況。通過(guò)這三個(gè)數(shù)據(jù),可以了解服務(wù)器負(fù)載是在趨于緊張還是趨于緩解。如果1分鐘平均負(fù)載很高,而15分鐘平均負(fù)載很低,說(shuō)明服務(wù)器正在命令高負(fù)載情況,需要進(jìn)一步排查CPU資源都消耗在了哪里。反之,如果15分鐘平均負(fù)載很高,1分鐘平均負(fù)載較低,則有可能是CPU資源緊張時(shí)刻已經(jīng)過(guò)去。
上面例子中的輸出,可以看見(jiàn)最近1分鐘的平均負(fù)載非常高,且遠(yuǎn)高于最近15分鐘負(fù)載,因此我們需要繼續(xù)排查當(dāng)前系統(tǒng)中有什么進(jìn)程消耗了大量的資源。可以通過(guò)下文將會(huì)介紹的vmstat、mpstat等命令進(jìn)一步排查。
二、dmesg命令
該命令會(huì)輸出系統(tǒng)日志的最后10行。示例中的輸出,可以看見(jiàn)一次內(nèi)核的oom kill和一次TCP丟包。這些日志可以幫助排查性能問(wèn)題。千萬(wàn)不要忘了這一步。
三、vmstat命令
vmstat(8) 命令,每行會(huì)輸出一些系統(tǒng)核心指標(biāo),這些指標(biāo)可以讓我們更詳細(xì)的了解系統(tǒng)狀態(tài)。后面跟的參數(shù)1,表示每秒輸出一次統(tǒng)計(jì)信息,表頭提示了每一列的含義,這幾介紹一些和性能調(diào)優(yōu)相關(guān)的列:
上述這些CPU時(shí)間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。一般情況下,如果用戶時(shí)間和系統(tǒng)時(shí)間相加非常大,CPU出于忙于執(zhí)行指令。如果IO等待時(shí)間很長(zhǎng),那么系統(tǒng)的瓶頸可能在磁盤(pán)IO。
示例命令的輸出可以看見(jiàn),大量CPU時(shí)間消耗在用戶態(tài),也就是用戶應(yīng)用程序消耗了CPU時(shí)間。這不一定是性能問(wèn)題,需要結(jié)合r隊(duì)列,一起分析。
四、mpstat命令
該命令可以顯示每個(gè)CPU的占用情況,如果有一個(gè)CPU占用率特別高,那么有可能是一個(gè)單線程應(yīng)用程序引起的。
五、pidstat命令
pidstat命令輸出進(jìn)程的CPU占用率,該命令會(huì)持續(xù)輸出,并且不會(huì)覆蓋之前的數(shù)據(jù),可以方便觀察系統(tǒng)動(dòng)態(tài)。如上的輸出,可以看見(jiàn)兩個(gè)JAVA進(jìn)程占用了將近1600%的CPU時(shí)間,既消耗了大約16個(gè)CPU核心的運(yùn)算資源。
六、iostat命令
如果顯示的是邏輯設(shè)備的數(shù)據(jù),那么設(shè)備利用率不代表后端實(shí)際的硬件設(shè)備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應(yīng)用程序性能會(huì)不好,可以利用諸如預(yù)讀取、寫(xiě)緩存等策略提升應(yīng)用性能。
七、free命令
free命令可以查看系統(tǒng)內(nèi)存的使用情況,-m參數(shù)表示按照兆字節(jié)展示。最后兩列分別表示用于IO緩存的內(nèi)存數(shù),和用于文件系統(tǒng)頁(yè)緩存的內(nèi)存數(shù)。需要注意的是,第二行-/+ buffers/cache,看上去緩存占用了大量?jī)?nèi)存空間。
這是Linux系統(tǒng)的內(nèi)存使用策略,盡可能的利用內(nèi)存,如果應(yīng)用程序需要內(nèi)存,這部分內(nèi)存會(huì)立即被回收并分配給應(yīng)用程序。因此,這部分內(nèi)存一般也被當(dāng)成是可用內(nèi)存。
如果可用內(nèi)存非常少,系統(tǒng)可能會(huì)動(dòng)用交換區(qū)(如果配置了的話),這樣會(huì)增加IO開(kāi)銷(可以在iostat命令中提現(xiàn)),降低系統(tǒng)性能。
八、sar命令
sar命令在這里可以查看網(wǎng)絡(luò)設(shè)備的吞吐率。在排查性能問(wèn)題時(shí),可以通過(guò)網(wǎng)絡(luò)設(shè)備的吞吐量,判斷網(wǎng)絡(luò)設(shè)備是否已經(jīng)飽和。如示例輸出中,eth0網(wǎng)卡設(shè)備,吞吐率大概在22 Mbytes/s,既176 Mbits/sec,沒(méi)有達(dá)到1Gbit/sec的硬件上限。
sar命令在這里用于查看TCP連接狀態(tài),其中包括:
TCP連接數(shù)可以用來(lái)判斷性能問(wèn)題是否由于建立了過(guò)多的連接,進(jìn)一步可以判斷是主動(dòng)發(fā)起的連接,還是被動(dòng)接受的連接。TCP重傳可能是因?yàn)榫W(wǎng)絡(luò)環(huán)境惡劣,或者服務(wù)器壓
九、top命令
top命令包含了前面好幾個(gè)命令的檢查的內(nèi)容。比如系統(tǒng)負(fù)載情況(uptime)、系統(tǒng)內(nèi)存使用情況(free)、系統(tǒng)CPU使用情況(vmstat)等。因此通過(guò)這個(gè)命令,可以相對(duì)全面的查看系統(tǒng)負(fù)載的來(lái)源。同時(shí),top命令支持排序,可以按照不同的列排序,方便查找出諸如內(nèi)存占用最多的進(jìn)程、CPU占用率高的進(jìn)程等。
但是,top命令相對(duì)于前面一些命令,輸出是一個(gè)瞬間值,如果不持續(xù)盯著,可能會(huì)錯(cuò)過(guò)一些線索。這時(shí)可能需要暫停top命令刷新,來(lái)記錄和比對(duì)數(shù)據(jù)。
新聞標(biāo)題:如何用九條命令在一分鐘內(nèi)檢查L(zhǎng)inux服務(wù)器性能?
文章來(lái)源:http://m.newbst.com/news3/100453.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App設(shè)計(jì)、外貿(mào)建站、虛擬主機(jī)、網(wǎng)頁(yè)設(shè)計(jì)公司、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容