国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

幫助中心 >  技術知識庫 >  云服務器 >  服務器教程 >  如何用幾條命令檢查Linux服務器性能

如何用幾條命令檢查Linux服務器性能

2016-02-01 16:55:17 9533

下面這些命令的輸出,有助于快速定位性能瓶頸,檢查出所有資源(CPU、內(nèi)存、磁盤IO等)的利用率(utilization)、飽和度(saturation)和錯誤(error)度量,也就是所謂的USE方法。

1.uptime

     

    這個命令可以快速查看機器的負載情況。在Linux系統(tǒng)中,這些數(shù)據(jù)表示等待CPU資源的進程和阻塞在不可中斷IO進程(進程狀態(tài)為D)的數(shù)量。這些數(shù)據(jù)可以讓我們對系統(tǒng)資源使用有一個宏觀的了解。

命令的輸出分別表示1分鐘、5分鐘、15分鐘的平均負載情況。通過這三個數(shù)據(jù),可以了解服務器負載是在趨于緊張還是區(qū)域緩解。如果1分鐘平均負載很高,而15分鐘平均負載很低,說明服務器正在命令高負載情況,需要進一步排查CPU資源都消耗在了哪里。反之,如果15分鐘平均負載很高,1分鐘平均負載較低,則有可能是CPU資源緊張時刻已經(jīng)過去。

如果近1分鐘的平均負載遠高于15分鐘的負載情況,那么我們需要用vmstat,mpstat命令進行排查

2.dmesg | tail

     

    dmesg這條命令用于查看開機信息

    dmesg | tail 該命令會輸出系統(tǒng)日志的最后10行

3.vmstat 1

     

    每行會輸出一些系統(tǒng)核心指標,這些指標可以讓我們更詳細的了解系統(tǒng)狀態(tài)。后面跟的參數(shù)2,表示每兩秒輸出一次統(tǒng)計信息,表頭提示了每一列的含義,這幾介紹一些和性能調(diào)優(yōu)相關的列:

r:等待在CPU資源的進程數(shù)。這個數(shù)據(jù)比平均負載更加能夠體現(xiàn)CPU負載情況,數(shù)據(jù)中不包含等待IO的進程。如果這個數(shù)值大于機器CPU核數(shù),那么機器的CPU資源已經(jīng)飽和。

    free:系統(tǒng)可用內(nèi)存數(shù)(以千字節(jié)為單位),如果剩余內(nèi)存不足,也會導致系統(tǒng)性能問題。下文介紹到的free命令,可以更詳細的了解系統(tǒng)內(nèi)存的使用情況。

    si, so:交換區(qū)寫入和讀取的數(shù)量。如果這個數(shù)據(jù)不為0,說明系統(tǒng)已經(jīng)在使用交換區(qū)(swap),機器物理內(nèi)存已經(jīng)不足。

    us, sy, id, wa, st:這些都代表了CPU時間的消耗,它們分別表示用戶時間(user)、系統(tǒng)(內(nèi)核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)。

    上述這些CPU時間,可以讓我們很快了解CPU是否出于繁忙狀態(tài)。一般情況下,如果用戶時間和系統(tǒng)時間相加非常大,CPU出于忙于執(zhí)行指令。如果IO等待時間很長,那么系統(tǒng)的瓶頸可能在磁盤IO。

4.mpstat -P ALL 1

     

    該命令可以顯示每個CPU的占用情況,如果有一個CPU占用率特別高,那么有可能是一個單線程應用程序引起的。

5.pidstat 1

     

    pidstat命令輸出進程的CPU占用率,該命令會持續(xù)輸出,并且不會覆蓋之前的數(shù)據(jù),可以方便觀察系統(tǒng)動態(tài)。

6.iostat -xz 1

     

    iostat命令主要用于查看機器磁盤IO情況。該命令輸出的列,主要含義是:

    r/s, w/s, rkB/s, wkB/s:分別表示每秒讀寫次數(shù)和每秒讀寫數(shù)據(jù)量(千字節(jié))。讀寫量過大,可能會引起性能問題。

    await:IO操作的平均等待時間,單位是毫秒。這是應用程序在和磁盤交互時,需要消耗的時間,包括IO等待和實際操作的耗時。如果這個數(shù)值過大,可能是硬件設備遇到了瓶頸或者出現(xiàn)故障。

    avgqu-sz:向設備發(fā)出的請求平均數(shù)量。如果這個數(shù)值大于1,可能是硬件設備已經(jīng)飽和(部分前端硬件設備支持并行寫入)。

    %util:設備利用率。這個數(shù)值表示設備的繁忙程度,經(jīng)驗值是如果超過60,可能會影響IO性能(可以參照IO操作平均等待時間)。如果到達100%,說明硬件設備已經(jīng)飽和。

    如果顯示的是邏輯設備的數(shù)據(jù),那么設備利用率不代表后端實際的硬件設備已經(jīng)飽和。值得注意的是,即使IO性能不理想,也不一定意味這應用程序性能會不好,可以利用諸如預讀取、寫緩存等策略提升應用性能。

7.free -h

     

    free命令可用于查看系統(tǒng)內(nèi)存的使用情況,最后兩列分別表示用于IO緩存的內(nèi)存數(shù),和用于文件系統(tǒng)頁緩存的內(nèi)存數(shù)。需要注意的是,第二行-/+ buffers/cache,看上去緩存占用了大量內(nèi)存空間。這是Linux系統(tǒng)的內(nèi)存使用策略,盡可能的利用內(nèi)存,如果應用程序需要內(nèi)存,這部分內(nèi)存會立即被回收并分配給應用程序。因此,這部分內(nèi)存一般也被當成是可用內(nèi)存。

    如果可用內(nèi)存非常少,系統(tǒng)可能會動用交換區(qū)(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現(xiàn)),降低系統(tǒng)性能。

8.sar -n DEV 1

     

    sar命令在這里可以查看網(wǎng)絡設備的吞吐率。在排查性能問題時,可以通過網(wǎng)絡設備的吞吐量,判斷網(wǎng)絡設備是否已經(jīng)飽和。如示例輸出中,eth0網(wǎng)卡設備,吞吐率只有大概在0.39Mbytes/s.

9.sar -n TCP,ETCP 1

     

    sar命令在這里用于查看TCP連接狀態(tài),其中包括:

    active/s:每秒本地發(fā)起的TCP連接數(shù),既通過connect調(diào)用創(chuàng)建的TCP連接;

    passive/s:每秒遠程發(fā)起的TCP連接數(shù),即通過accept調(diào)用創(chuàng)建的TCP連接;

    retrans/s:每秒TCP重傳數(shù)量;

    TCP連接數(shù)可以用來判斷性能問題是否由于建立了過多的連接,進一步可以判斷是主動發(fā)起的連接,還是被動接受的連接。TCP重傳可能是因為網(wǎng)絡環(huán)境惡劣,或者服務器壓力過大導致丟包。

10.top

    


    (具體參考:http://www.tjdsmy.cn/Help/Show-1022.html)

    第一行是任務隊列信息,同 uptime 命令的執(zhí)行結果一樣:第一列表示當前時間、第二列表示系統(tǒng)運行了多久、第三列表示當前登陸人數(shù)、最后的load average表示的是系統(tǒng)負載(三個值分別是:1分鐘、5分鐘、15分鐘前到現(xiàn)在的負載平均值)

    第二列表示的是進程的信息,很直觀。

[此文摘抄自:infoQ]

提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: