linux系統性能排查命令


【top】

    命令可以動態查看當前系統的資源情況,以及占用資源的命令列表

    用法:  

              - ctrl + c / q : 停止此命令運行

              - c : 展示完整的命令

              - 【top -bn1】:可以不動態的展示當前系統的資源情況

              - 【uptime】:第一行的load average可以通過此命令看到

$ uptime
23:51:26 up 21:31,  1 user,  load average: 30.02, 26.43, 19.02

#第一個數值: 代表着1分鍾的平均負載
#第二個數值:代表着5分鍾的平均負載
#第三個數值:代表着15分鍾的平均負載

#如果1分鍾的平均負載很高,15分鍾的很低 ==>系統正在執行高負載命令,大量消耗CPU

 

【dmesg】 ==> /var/log/dmesg

      命令可以快速查看系統啟動過程中的內核日志信息,包括:系統設備信息、啟動和操作過程中系統記錄的任何錯誤和問題

      用法:

            - 【dmesg | more】: 打印出來的內容會很多,可以利用more來分頁查看

             - 【dmesg | tail 】: 打印最后十行的日志

 

【vmstat 1 5】

       命令輸出系統核心指標信息,1 5 表示1秒輸出5次信息

       用法:

              - 【r】: 等待CPU資源的進程數,不包括等待IO的進程{數值如果大於CPU核數,就說明機器的CPU資源已經飽和}

              - 【free】: 系統可用內存(以K為單位)

              - 【si,so】:交換區swap寫入和讀取的數量,如果數值不等於0,那么機器物理內存已經不足

              - 【us,sy,id,wa,st】:分別表示用戶時間(user)、系統(內核)時間(sys)、空閑時間(idle)、IO等待時間(wait)和被偷走的時間(stolen,一般被其他虛擬機消耗)。

                       這里的user + sys 結果特別大 ==》 CPU繁忙於執行命令

                                 wail 很大 ==》 則瓶頸可能在磁盤IO

 

【mpstat -P ALL 1】

         命令可顯示CPU的個數,以及每一個CPU被占用的狀況,

         如果有一個CPU占用率特別高,那么有可能是一個單線程應用程序引起的。

 

【pidstat 1】

          輸出進程的CPU占用率{會持續輸出,並不會覆蓋之前的數據}

          從這個命令中可以通過計算某個進程占用CPU的時間來推斷占用了多少個CPU資源

 

【iostat -zx 1】

           查看機器磁盤IO情況

           用法:

                   - 【r/s, w/s, rkB/s, wkB/s】: 表示每秒讀寫次數和每秒讀寫數據量(KB)==》 這個值表示讀寫量,讀寫量過大,會引起性能問題

                   - 【await】: IO操作的平均等待時間,{單位:ms},此處代表應用程序和磁盤交互時,需要消耗的時間(包括IO等待和實際操作的耗時),這個數值過大,可能是硬件設備遇到了瓶頸或者出現故障

                   - 【avgqu-sz】: 向設備發出的請求平均量,如果此數值大於1,可能是硬件設備已經飽和(部分前端設備支持並行寫入)

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

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

 

【sar -n DEV 1】

               查看網絡設備的吞吐率

               這里需要了解網絡設備的吞吐量上限,從這里可以判斷是否網絡設備已經飽和,無法承擔更大的訪問。

 

【sar -n TCP,ETCP 1】

               查看TCP連接狀態

               參數:

                     -   active/s:每秒本地發起的TCP連接數,既通過connect調用創建的TCP連接;
      -   passive/s:每秒遠程發起的TCP連接數,即通過accept調用創建的TCP連接;
      -   retrans/s:每秒TCP重傳數量;

         TCP連接數可以用來判斷性能問題是否由於建立了過多的連接,進一步可以判斷是主動發起的連接,還是被動接受的連接。

    TCP重傳可能是因為網絡環境惡劣,或者服務器壓力過大導致丟包。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM