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等待時間過長等。
---恢復內容結束---