1. 程式人生 > >Linux系統負載查詢

Linux系統負載查詢

 

查詢Linux系統負載情況,一般需要了解三個方面的資訊:

1、Linux系統配置。如Linux版本號、CPU、記憶體、網路、磁碟等;

2、收集系統負載資訊的手段。常用的工具包有sysstat和procps等。

3、查詢結果分析。通過工具包獲取系統負載資訊,要具體分析系統是否負載、某項指標引數是否超標、系統的瓶頸集中哪幾項等。

 

一、查詢Linux系統配置

  查詢CPU配置:

  • lscpu命令

    獲取CPU架構、是否支援超執行緒、主頻、快取資訊等。當然更詳細的資訊儲存在/proc/cpuinfo檔案。

  查詢記憶體配置

  • free命令

    free命令在man文件中的介紹為"Display amount of free and used memory in the system.",free -g 表示用GB顯示記憶體資訊,free -m表示用MB顯示記憶體資訊。

    回顯結果中"Mem: "行表示從OS層面看記憶體使用情況。"-/+ buffers/cache: "表示從應用程式角度看記憶體使用情況。

    其中(- buffers/cache) used記憶體數=[Mem:] used - buffers - cached,反映的是被程式實實在在吃掉消耗的記憶體;

      (+ buffers/cache) free記憶體數=[Mem:] free + buffers + cached,反映的是系統中還可以被挪用的記憶體;

    buffer: A buffer is something that has yet to be "written" to disk.
    cache: A cache is something that has been "read" from the disk and stored for later use.

 

二、查詢系統負載

系統平均負載即在特定時間間隔內執行佇列中的平均程序數。如果一個程序滿足如下條件就會加入到執行佇列中,

1 它沒有在等待I/O操作的結果;
2 它沒有主動進入等待狀態;
3 沒有被停止,包含等待終止。

 常用查詢命令:

 command  descriptions
uptime tell how long the system has been running.
top display Linux tasks.
iostat report central processing unit(cpu) statistics and input/output statistics for device, partitions and network filesystems(NFS).
vmstat report virtual memory statistics.

 

 

 

 

sysstat軟體包:包含監測系統性能及效率的一組工具。

1、cifsiostat用於輸出cifs檔案系統的讀寫操作資訊。

2、iostat用於輸出CPU、I/O系統和磁碟分割槽的統計資訊,可以用來分析磁碟I/O、頻寬等資訊。

3、mpstat用於輸出CPU的各種統計資訊,可以用於分析程式執行在核心態和使用者態的工作情況。

4、pidstat用於監控被Linux核心管理的單個任務。

5、sadf用於格式化輸出sar的輸出資料。

6、sar用於定時收集系統的各種狀態資訊,然後可以對系統各個時間點的狀態進行監控。

procps軟體包:包含一組提供系統資訊的實用程式。

1、ps用於檢視某一時刻的程序。

2、sysctl用於在執行時配置核心引數。

3、free用於查詢記憶體和swap資訊。

4、pgrep,pkill用於通過名稱和其他屬性查詢或者傳送訊號給程序。

5、pmap用於顯示一個或者多個程序所使用的記憶體數量。

6、pwdx用於顯示一個程序的工作目錄。

7、skill、snice被廢棄的命令,由killall、pkill、pgrep替代。

8、slabtop用於實時顯示系統的核心快取資訊。

9、tload使用圖形顯示系統的平均負載。

10、top用於動態顯示程序資訊。

11、uptime用於顯示系統執行時間和最近1min、5min和10min內的平均負載。

12、vmstat用於顯示processes、memory、paging、block IO、tps、and cpu使用資訊,

13、w顯示登入的賬戶和他們活動情況。

14、watch定時執行程式,並全屏顯示。

 

當然還有更多的第三方工具包用於監控Linux系統執行和效能情況,比如atop、htop、iotop等。

查詢當前程序中所有的執行緒:

top命令

top -Hp <pid>

/proc/<pid>檔案

cat /proc/<pid>/status

ls /proc/<pid>/task/ | wc -l

ps命令

ps hHp <pid> | wc -l

ps -T -p <pid>

 

三、結果分析

  對於通過Linux命令和工具收集到的資料需要理解每個欄位的含義 ,用於分析當前系統的負載情況,比如,記憶體佔用過高、CPU繁忙、IO等待時間過長等。

 

 

    

    

 

 

 

 

---恢復內容結束---