查詢Linux系統負載情況,一般需要瞭解三個方面的信息: 1、Linux系統配置。如Linux版本號、CPU、記憶體、網路、磁碟等; 2、收集系統負載信息的手段。常用的工具包有sysstat和procps等。 3、查詢結果分析。通過工具包獲取系統負載信息,要具體分析系統是否負載、某項指標參數是否超標、 ...
查詢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等待時間過長等。
---恢復內容結束---