[Linux] 取出 atop 記錄檔中的 CPU 使用率資訊

[Linux] 取出 atop 記錄檔中的 CPU 使用率資訊

之前試過 將 atop 檔案轉成可分析的文字檔 + 畫出圖表

今天遇到的問題是想要從 atop 的記錄檔裡,

列舉某個 process 的 CPU 使用率,

基本上大同小異,不過還是記錄一下~

 

首先參考一下 atop(1) – Linux man page

可以得知要取得 CPU 使用率資訊,要用 -P PRC 這個參數。

像下面的指令就是從 atop_20180327 這個記錄檔中,

讀出 CPU 使用率資訊,接著用 grep 只列出我這次關心的 VBoxSVC 這個 process:

testuser@localhost ~ atop -P PRC -r atop_20180327 | fgrep "(VBoxSVC)"

PRC apddaepl3 1522146601 2018/03/27 18:30:01 600 59180 (VBoxSVC) S 100 60214 4343 0 120 0 0 34 0 59180 y
PRC apddaepl3 1522146601 2018/03/27 18:30:01 600 59180 (VBoxSVC) S 100 236 261 0 120 0 0 34 0 59180 n
PRC apddaepl3 1522147201 2018/03/27 18:40:01 600 59180 (VBoxSVC) S 100 60386 4315 0 120 0 0 32 0 59180 y
PRC apddaepl3 1522147201 2018/03/27 18:40:01 600 59180 (VBoxSVC) S 100 228 264 0 120 0 0 32 0 59180 n
PRC apddaepl3 1522147801 2018/03/27 18:50:01 600 59180 (VBoxSVC) S 100 60473 4196 0 120 0 0 26 0 59180 y
PRC apddaepl3 1522147801 2018/03/27 18:50:01 600 59180 (VBoxSVC) S 100 233 261 0 120 0 0 26 0 59180 n
PRC apddaepl3 1522148401 2018/03/27 19:00:01 600 59180 (VBoxSVC) S 100 60479 4022 0 120 0 0 19 0 59180 y
PRC apddaepl3 1522148401 2018/03/27 19:00:01 600 59180 (VBoxSVC) S 100 228 263 0 120 0 0 19 0 59180 n
PRC apddaepl3 1522149001 2018/03/27 19:10:01 600 59180 (VBoxSVC) S 100 60397 4081 0 120 0 0 28 0 59180 y
PRC apddaepl3 1522149001 2018/03/27 19:10:01 600 59180 (VBoxSVC) S 100 238 252 0 120 0 0 28 0 59180 n
PRC apddaepl3 1522149601 2018/03/27 19:20:01 600 59180 (VBoxSVC) S 100 60395 4043 0 120 0 0 26 0 59180 y
PRC apddaepl3 1522149601 2018/03/27 19:20:01 600 59180 (VBoxSVC) S 100 249 269 0 120 0 0 26 0 59180 n

 

各個欄位的意義可以在 atop(1) – Linux man page 查到,依序為:

  1. PID
  2. name (between brackets)
  3. state
  4. total number of clock-ticks per second for this machine
  5. CPU-consumption in user mode (clockticks)
  6. CPU-consumption in system mode (clockticks)
  7. nice value
  8. priority
  9. realtime priority
  10. scheduling policy
  11. current CPU
  12. sleep average

 

在這些欄位之前,已經有 6 個欄位,

所以 current CPU 算是在以空白字元隔開的第 11+6 = 17 個欄位上。

用下面的指令,就可以把所有 atop_ 開頭的記錄檔中的 CPU 使用率都讀出來:

testuser@localhost ~ for f in $(ls atop_* | sort); do (atop -P PRC -r $f | fgrep "(VBoxSVC)" | awk '{print $17}'); done

34
34
32
32
26
26
19
19
28
28
26
26

 

有了這個資訊,就可以進一步處理,像是變成圖表來檢視了~

(本頁面已被瀏覽過 454 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料