1. 程式人生 > >Linux性能分析工具

Linux性能分析工具

套接字 間隔 數量 linux性能 read 就會 img con 分鐘

  影響Linux服務器性能的因素有很多,從底層的硬件到操作系統,從網絡到上層應用。找到系統硬件和軟件資源的平衡點是關鍵。

1.uptime

10:27:14 up 18 min, 5 users, load average: 10.78, 9.13, 5.42

重點關註load average參數,3個數值分別表示1分鐘、5分鐘、10分鐘的系統負載。如果負載值長時間超過CPU個數的2倍,說明系統處於高負載狀態

2.vmstat

技術分享圖片

procs

r表示運行和等待CPU時間片的進程數,如果這個值長期大於CPU個數,說明CPU性能不足

b表示在等待資源的進程數,等待的資源有I/O或內存交換等

memory

swpd表示切換到內粗交換區的內存數量,單位KB

free表示當前空閑的內存數量,單位KB

buff表示buffers cache的內存數量

cache表示page cached的內存數量

swap

si表示內存進入內存交換區的數量

so表示內存交換區進入內存的數量

#一般情況下,si、so的值都為0。如果si、so的值長期不為0,則系統內存不足

io

bi表示從塊設備讀取數據總量,單位KB

bo表示寫入到塊設備的數據總量,單位KB

#bi + bo 的值大於1000,而且wa的值較大,表示系統磁盤IO有問題

system

in表示在謀一時間間隔中觀測到的每秒設備中斷數

cs表示每秒產生的上下文切換次數,值越大表示內核消耗的CPU時間越多

CPU

us表示用戶進程消耗的CPU時間百分比。值過高需考慮優化程序或算法

sy表示內核進程消耗的CPU時間百分比

id表示CPU處在空閑狀態時間的百分比

wa表示IO等待所占用的CPU時間百分比,值越高,IO等待越嚴重

st表示虛擬機占用的時間百分比

#us + sy 的值大於80%,可能會CPU性能不足

3.top

技術分享圖片

Mem:  總內存      空閑內存   已經使用的內存  用於緩存的內存

Swap:  交換空間總大小   空閑的交換空間 使用的交換內存空間  可用的內存空間  

#top命令默認5秒刷新一次

#top命令按m鍵進入內存模式

技術分享圖片

4.free 查看內存使用狀況

技術分享圖片

5.iostat 查看磁盤I/O

技術分享圖片

tps每秒發送到的I/O請求數  kB_read/s每秒讀取的數據塊數  kB_wrtn/s每秒寫入的數據塊數  

kB_read讀取的所有塊數  kB_wrtn寫入的所有塊數

常用參數

-c    僅顯示CPU統計信息,與-d互斥

-d    僅顯示磁盤統計信息,與-c互斥

-k    以KB為單位顯示每秒磁盤請求數,默認單位為塊

-p    後面跟具體設備或ALL,用於顯示某塊設備及系統分區的統計信息

-t    在輸出數據時,打印搜集數據的時間

-V    打印版本號

-x    輸出擴展信息

6.TCP連接優化

     TCP/IP連接斷開後,會以TIME_WAIT狀態保留一定的時間,然後才會釋放端口。當並發請求過多的時候,就會產生大量的TIME_WAIT,不能及時斷開的話,會占用大量的端口資源和服務器資源

     netstat -an|awk ‘/tcp/ {print $6}‘|sort|uniq -c

       5 ESTABLISHED
       5 LISTEN
       2048 TIME_WAIT

     vim /etc/sysctl.conf

     #開啟重用,允許將TIME_WAIT狀態的連接重新用於新的TCP連接

     net.ipv4.tcp_tw_reuse = 1

     #開啟TCP連接中TIME_WAIT連接的快速回收

     net.ipv4.tcp_tw_recycle = 1

     #控制同時保持TIME_WAIT套接字的最大數量

     net.ipv4.tcp_max_tw_buckets = 1000

      

     sysctl -p

     net.ipv4.tcp_tw_reuse = 1
     net.ipv4.tcp_tw_recycle = 1
     net.ipv4.tcp_max_tw_buckets = 1000

     netstat -an|awk ‘/tcp/ {print $6}‘|sort|uniq -c
     6 ESTABLISHED
     5 LISTEN
     995 TIME_WAIT

      

    TCP狀態說明

技術分享圖片

Linux性能分析工具