久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux下CPU監控工具有哪些

202次閱讀
沒有評論

共計 8943 個字符,預計需要花費 23 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 Linux 下 CPU 監控工具有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

 01. top

top 是最常用的查看系統資源使用情況的工具,包括 CPU、內存等等資源。

這里主要關注 CPU 資源。

1.1 /proc/loadavg

load average 取自 /proc/loadavg。

9.53 9.12 8.37 3/889 28165

前三個數字是 1、5、15 分鐘內進程隊列中平均進程數,包括正在運行的進程 + 準備好等待運行的進程。

第四個數字分子表示正在運行的進程數,分母是進程總數。

最后一個數字是最近運行的進程 ID 號。

其中 top 取的是 /proc/loadavg 的前三個數。

1.2 top 使用

打開 top,可以指定更新的周期。

輸入 H,打開隱藏的線程;輸入 1,可以顯示單核 CPU 使用情況。

top -H -b -d 1 -n 200 top.txt,每個 1 秒統計一次,共 200 次,顯示線程細節,并保存到 top.txt 中。

top 采樣來源你還依賴于 /proc/stat 和 /proc//stat 兩個,這兩個的詳細介紹參考:/proc/stat[1]和 /proc//stat[2]。

其中 CPU 信息對應的含義如下:

us:user,統計 nice 小于等于 0 的用戶空間進程,也即優先級為 100~120。 ni:nice,統計 nice 大于 0 的用戶空間進程,也即優先級為 121~139。 sys:system,統計內核態運行時間,不包括中斷。 id:idle,幾系統處于空閑態。 wa:iowait,統計 io 等待時間。 hi:hardware interrupt,統計硬件中斷時間。 si:software interrupt,統計軟中斷時間。 st:steal

02. perf

通過 sudo perf top -s comm,可以查看當前系統運行進程占比。

這里不像 top 一樣區分 idle、system、user,這里的占比是各個進程在總運行時間里面占比。

通過 sudo perf record 記錄采樣信息,然后通過 sudo perf report -s comm。

03. sar 和 ksar

sar 是 System Activity Report 的意思,可以用于實時觀察當前系統活動,也可以生成歷史記錄的報告。

要使用 sar 需要安裝 sudo apt install sysstat,然后對 sysstat 進行配置。

sar 用于記錄統計信息,ksar[4]用于將記錄的信息圖形化輸出。

ksar 下載地址在:https://github.com/vlsi/ksar/releases。

#  將  ENABLED=“false“  改為 ENABLED=“true“ $ sudo gedit /etc/default/sysstat #  修改 sar 的周期等配置  $ sudo gedit /etc/cron.d/sysstat #  重啟 sar 服務  $ sudo /etc/init.d/sysstat restart # sar log 存放目錄  $ ls -l /var/log/sysstat/

使用 sar 記錄開機到目前的統計信息到文件 sar.txt。

LC_ALL=C sar -A   sar.txt

PS:這里直接使用 sar -A,在 ksar 中無法正常顯示。

如下執行 java -jar ksar.jar,然后 Data- Load from text file… 選擇保存的 sar.txt 文件。

得到如下的圖表。

還可以通過 sar 記錄一段時間的信息,指定采樣周期和采樣次數。

這些命令前加上 LC_ALL= C 之后保存到文件中,都可以在 ksar 中圖形化顯示。

sar 1 100----------------- 所有 cpu 合一的統計信息  sar -P ALL 1 100-------- 包括 cpu 合一以及單個 cpu 的統計信息  sar -B 1 100---------------paging 統計信息  sar -b 1 100--------------- 塊設備 IO 統計信息  sar -d 1 100--------------- 塊設備活動統計信息  sar -F 1 100---------------- 掛載的文件系統統計信息  sar -r ALL------------------  顯示詳細的內存使用統計信息  sar -S ------------------------ 顯示 swap 空間使用情況統計信息  sar -w-----------------------  顯示進程創建以及進程切換統計信息  sar -W----------------------- 顯示 swap 換入換出統計信息。

更詳細請參考

bull;《How To Create sar Graphs With kSar To Identifying Linux Bottlenecks[5]》

bull;《Collect and report Linux System Activity Information with sar[6]》。

04. mpstat

mpstat 是 Multiprocessor Statistics。當沒有參數時,mpstat 顯示系統系統以來所有信息平均值。

常見用法如下,-P ALL 監控所有 CPU,細節顯示特定 CPU;10 表示每 10 秒監控一次;20 表示監控 20 次。

$ mpstat -P ALL 10 20

結果如下:

usr 表示用戶空間進程,nice 表示 nice 值大于 0 的用戶空間進程。

sys 是內核空間,iowait 是 I / O 等待時間,irq 是硬中斷,soft 是軟中斷,idle 是空閑時間,guest 和 gnice 都是虛擬機時間。

05. uptime

uptime 是一個簡單獲取系統總共運行多長時間,以及最近 1 分鐘、5 分鐘、15 分鐘的平均負載。

uptime 通過 /proc/uptime 和 /proc/loadavg 獲取相關信息。

up 前是當前系統時間,up 后是系統運行時長。

load average 后是 1 分鐘、5 分鐘、15 分鐘平均負載。

11:15:41 up 82 days, 20:34, 8 users, load average: 0.28, 0.40, 0.43

06. vmstat

vmstat 主要用于監控系統內存使用情況的工具,但是也包含一些 CPU 相關信息。

使用方法 vmstat 5 5 表示運行 5 次,每次 5 秒。結果如下:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 472576 228688 559092 1061756 0 0 9 39 1 0 8 4 87 0 0 1 0 472576 228184 559100 1061756 0 0 0 13 1532 3395 10 6 84 0 0 1 0 472576 229308 559100 1061616 0 0 0 0 1446 3449 10 5 85 0 0 0 0 472576 229592 559108 1061616 0 0 0 6 1419 3474 10 5 85 0 0 1 0 472576 229804 559108 1061616 0 0 0 0 1446 3439 10 5 85 0 0

上面的參數可以分為 6 大部分:進程、內存、swap、io、中斷和進程切換、cpu。

更加詳細的解釋:

參考文檔:《Linux Performance Measurements using vmstat[7]》

07. pidstat

pidstat 主要用于監控全部或指定進程占用系統資源的情況。

7.1 查看 CPU 使用情況

pidstat 首次運行時顯示自系統啟動開始的各項統計信息,之后運行 pidstat 將顯示自上次運行該命令以后的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。

#  顯示所有的進程統計信息,包括 idle 進程。 pidstat -p ALL #  更加詳細的顯示了線程統計信息。 pidstat -p ALL -t #  周期采樣和采樣次數  pidstat [option] interval [count]

除此之外還可以通過 - p 獲取指定進程的統計信息。

pidstat 還可以通過 - r 獲取內存使用統計信息,通過 - d 獲取 IO 使用統計信息。

7.2 查看內存使用情況

pidstat -p ALL - r 結果如下:

15 時 18 分 21 秒  UID PID minflt/s majflt/s VSZ RSS %MEM Command 15 時 18 分 21 秒  0 1 0.02 0.00 185316 3028 0.08 systemd 15 時 18 分 21 秒  0 2 0.00 0.00 0 0 0.00 kthreadd 15 時 18 分 21 秒  0 4 0.00 0.00 0 0 0.00 kworker/0:0H 15 時 18 分 21 秒  0 6 0.00 0.00 0 0 0.00 mm_percpu_wq 15 時 18 分 21 秒  0 7 0.00 0.00 0 0 0.00 ksoftirqd/0 15 時 18 分 21 秒  0 8 0.00 0.00 0 0 0.00 rcu_sched

minflt/s: 每秒次缺頁錯誤次數(minor page faults),次缺頁錯誤次數意即虛擬內存地址映射成物理內存地址產生的 page fault 次數。

majflt/s: 每秒主缺頁錯誤次數(major page faults),當虛擬內存地址映射成物理內存地址時,相應的 page 在 swap 中,這樣的 page fault 為 major page fault,一般在內存使用緊張時產生。

VSZ: 該進程使用的虛擬內存(以 kB 為單位)。

RSS: 該進程使用的物理內存(以 kB 為單位)。

%MEM: 該進程使用內存的百分比。

Command: 拉起進程對應的命令。

7.3 查看磁盤使用情況

pidstat -p ALL - d 結果如下:

15 時 20 分 40 秒  UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command 15 時 20 分 40 秒  0 1 -1.00 -1.00 -1.00 243523129 systemd 15 時 20 分 40 秒  0 2 -1.00 -1.00 -1.00 0 kthreadd 15 時 20 分 40 秒  0 4 -1.00 -1.00 -1.00 0 kworker/0:0H 15 時 20 分 40 秒  0 6 -1.00 -1.00 -1.00 0 mm_percpu_wq 15 時 20 分 40 秒  0 7 -1.00 -1.00 -1.00 714512328679 ksoftirqd/0 15 時 20 分 40 秒  0 8 -1.00 -1.00 -1.00 417757303594 rcu_sched

kB_rd/s: 每秒進程從磁盤讀取的數據量(以 kB 為單位)。

kB_wr/s: 每秒進程向磁盤寫的數據量(以 kB 為單位)。

kB_ccwr/s:每秒進程被取消向磁盤寫的數據量(以 kB 為單位)。

Command::拉起進程對應的命令。

08. time

time 命令可以被用于統計指定程序的 CPU 耗時。

比如 time cksum nomachine_6.0.80_1.exe 得到如下結果。

2401940638 32606752 nomachine_6.0.80_1.exe #  整個操作總耗時,00.263-0.094-0.011=0.158 是 IO 等待耗時。 real 0m0.263s #  用戶態耗時  user 0m0.094s #  內核態耗時  sys 0m0.011s 2401940638 32606752 nomachine_6.0.80_1.exe #  第二次執行就可以看出等待 IO 操作的時間基本上沒有了。 real 0m0.098s user 0m0.097s sys 0m0.000s

09. cpustat

通過 sudo apt install cpustat 安裝,cpustat -T -D - x 結果如下。

#  顯示 Load Avg 信息和平均頻率等  Load Avg 0.66 0.54 0.49, Freq Avg. 1.46 GHz, 4 CPUs online #  進程切換次數、硬中斷、軟中斷等等統計信息。 # CPU 占用率、用戶空間和內核空間占用率等。 3791.1 Ctxt/s, 1709.9 IRQ/s, 1800.0 softIRQ/s, 0.0 new tasks/s, 1 running, 0 blocked %CPU %USR %SYS PID S CPU Time Task 25.74 25.74 0.00 11435 R 3 2.29w /usr/bin/python3 15.84 15.84 0.00 9445 S 0 1.49w /usr/lib/xorg/Xorg 10.89 9.90 0.99 2722 S 1 1.05w compiz 7.92 0.00 7.92 32352 S 2 16.60s [kworker/2:1] 0.99 0.00 0.99 32397 R 1 0.01s cpustat 0.99 0.99 0.00 11046 S 2 16.20h compiz 0.99 0.99 0.00 1317 S 0 8.76h /usr/NX/bin/nxnode.bin 0.99 0.00 0.99 10293 S 1 1.24m [kworker/1:2] 64.36 53.47 10.89 Total Load Avg 0.66 0.54 0.49, Freq Avg. 1.75 GHz, 4 CPUs online 2834.8 Ctxt/s, 1190.9 IRQ/s, 1183.3 softIRQ/s, 0.0 new tasks/s, 4 running, 0 blocked %CPU %USR %SYS PID S CPU Time Task 25.76 25.76 0.00 11435 R 3 2.29w /usr/bin/python3 18.18 18.18 0.00 9445 S 0 1.49w /usr/lib/xorg/Xorg 7.58 7.58 0.00 2722 S 1 1.05w compiz 6.06 0.00 6.06 32352 S 2 16.64s [kworker/2:1] 1.52 0.00 1.52 32397 R 1 0.02s cpustat 1.52 0.00 1.52 8 S 0 3.00h [rcu_sched] 1.52 0.00 1.52 18409 S 0 1.16m update-notifier 62.12 51.52 10.61 Total Distribution of CPU utilisation (per Task): % CPU Utilisation Count (%) 0.00 - 1.97 706 98.88 1.97 - 3.94 0 0.00 3.94 - 5.91 0 0.00 5.91 - 7.88 2 0.28 7.88 - 9.85 0 0.00 9.85 - 11.82 0 0.00 11.82 - 13.79 1 0.14 13.79 - 15.76 0 0.00 15.76 - 17.73 1 0.14 17.73 - 19.70 1 0.14 19.70 - 21.67 0 0.00 21.67 - 23.64 0 0.00 23.64 - 25.61 2 0.28 25.61 - 27.57 0 0.00 27.58 - 29.54 0 0.00 29.55 - 31.51 0 0.00 31.52 - 33.48 0 0.00 33.48 - 35.45 0 0.00 35.45 - 37.42 0 0.00 37.42 - 39.39 1 0.14 Distribution of CPU utilisation (per CPU):---------------------------------------------- 各 CPU 占用率,分用戶空間和內核空間。 CPU# USR% SYS% 0 17.37 1.20 1 8.98 2.40 2 0.60 7.19 3 25.75 0.00

10. htop

htop 和 top 的功能類似,但是可讀性比 top 更好。在界面按下 F5,可以看到進程里面的線程,樹形結構表示了父子關系。

11. atop

atop 是一個監控系統資源和進程的工具。它通過 CPU 使用率來對列表中的進程進行降序排列,而每一個進程則包含了 CPU、內存、磁盤和網絡狀態等信息。它的功能與 top 和 htop 類似。

12. glances

glances 是一個由 python 編寫的,與 Nmon 功能類似的報告工具,它能夠報告統計 cpu、內存、網絡、磁盤和進程。除了報告統計,glances 不支持任何其他特性或功能。當程序運行時點擊“h”可以顯示幫助頁面。

13. nmon

Nmon 是一個非常容易使用,能夠在一個屏幕上監視 CPU、內存、網絡、磁盤使用狀況和進程列表的工具。除了無法管理進程和修改報告顯示,Nmon 與那些只用于報告的報告工具完全一樣。另外,它可以將數據保存到電子表格文件。

14. PCP-gui

Performance Co-Pilot,簡稱 PCP,是一個系統性能和分析框架。它從多個主機整理數據并實時的分析,幫你識別不正常的表現模式。它也提供 API 讓你設計自己的監控和報告解決方案。

安裝 PCP 相關工具。

$ sudo apt install PCP PCP-gui

File- Open View 選擇需要打開的視圖,比如 CPU、Disk、Memory 等。

15. collectl 和 colplot

15.1 collectl 使用

collectl 是一款非常優秀并且有著豐富的命令行功能的實用程序,你可以用它來采集描述當前系統狀態的性能數據。

不同于大多數其它的系統監控工具,collectl 并非僅局限于有限的系統度量,相反,它可以收集許多不同類型系統資源的相關信息,如 cpu、disk、memory、network、sockets、tcp、inodes、infiniband、lustre、memory、nfs、processes、quadrics、slabs 和 buddyinfo 等。

同時 collectl 還可以替代常用工具,比如 top、vmstat、ps、iotop 等。

安裝 collectl:

sudo apt-get install collectl

collectl 的使用很簡單,默認 collectl 顯示 cpu、磁盤、網絡信息。

collectl 還可以顯示更多的子系統信息,如果選項存在對應的大寫選項,大寫選項表示更細節的設備統計信息。

b  ndash; buddy info (內存碎片) c  ndash;  所有 CPU 的合一統計信息;C -  單個 CPU 的統計信息。 d  ndash;  整個文件系統 Disk 合一統計信息;C -  單個磁盤的統計信息。 f  ndash; NFS V3 Data i  ndash; Inode and File System j  ndash;  顯示每個 CPU 的 Interrupts 觸發情況;J -  顯示每個中斷詳細觸發情況。 l  ndash; Lustre m  ndash;  顯示整個系統 Memory 使用情況;M -  按 node 顯示內存使用情況。 n  ndash;  顯示整個系統的 Networks 使用情況;N -  分網卡顯示網絡使用情況。 s  ndash; Sockets t  ndash; TCP x  ndash; Interconnect y  ndash;  對系統所有 Slabs (系統對象緩存)使用統計信息;Y -  每個 slab 使用的詳細信息。

collectl –all 顯示所有子系統的統計信息,包括 cpu、終端、內存、磁盤、網絡、TCP、socket、文件系統、NFS。

collectl –top 可以代替 top 命令:

collectl –vmstat 可以代替 vmstat 命令:

collectl -c1 -sZ -i:1 可以代替 ps 命令。

collectl 和一些處理分析數據工具 (比如 colmux、colgui、colplot) 結合能提供可視化圖形。

15.2 colplot 使用

colplot 是 collectl 工具集的一部分,其將 collectl 收集的數據在瀏覽器中圖形化展示。

colplot 的介紹 (http://collectl-utils.sourceforge.net/colplot.html),相關源碼可以再 collectl-utils] 下載:https://sourceforge.net/projects/collectl-utils/files/

解壓下載的 colplot 之后,sudo ./INSTALL 安裝 colplot。

安裝之后重啟 apache 服務:

$suod systemctl reload apache2 $ sudo systemctl restart apache2

在瀏覽器中輸入 http://127.0.0.1/colplot/,即可使用 colplot。

通過 Change Dir 選擇存放經過 collectl - P 保存的數據,然后設置 Plot 細節、顯示那些子系統、plot 大小等等。

最后 Generate Plot 查看結果。

以上是“Linux 下 CPU 監控工具有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計8943字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 兴海县| 海丰县| 新安县| 通化市| 太原市| 莒南县| 开平市| 信丰县| 中西区| 永寿县| 吴江市| 吴桥县| 四平市| 京山县| 岑溪市| 乌兰察布市| 贵德县| 通海县| 梁河县| 刚察县| 巫山县| 安乡县| 临猗县| 博罗县| 桃江县| 宁津县| 错那县| 崇文区| 南丰县| 永年县| 永靖县| 卢氏县| 藁城市| 灌南县| 江津市| 武清区| 兴安盟| 太仆寺旗| 保康县| 南郑县| 平遥县|