首頁  >  文章  >  系統教程  >  高效率輕鬆,Linux批次模式下系統監控利器

高效率輕鬆,Linux批次模式下系統監控利器

王林
王林轉載
2024-02-13 17:00:13947瀏覽

在Linux系統中,我們經常需要對系統資源進行監控和調整,以確保系統的正常運作和有效率地使用。而使用top指令是一種最常見的系統監控方法之一,但是在實際操作中,top指令的互動式介面並不方便,尤其是在系統運作負載較高的情況下,top指令的即時刷新會帶來額外的系統負擔。本文將介紹更有效率且輕鬆的Linux批次模式下的系統監控利器-batch mode下的top指令。

top 指令用於顯示 Linux 系統中的即時處理活動,以及核心管理的任務。它將顯示 CPU 和記憶體使用情況及其他信息,例如正在運行的程式。可以利用腳本模式的選項將top命令輸出傳輸到其他應用程式或檔案。

使用 Top 指令腳本模式的方法

在 Centos8 中,我們執行本文中的指令。以下命令依照 CPU 使用率對資料進行排序,並列印命令中指定的前 20 行。

[root@localhost ~]# top -bc -n 1 | head -20
top - 22:23:02 up 6 days, 12:36,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 186 total,   2 running, 184 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1792.0 total,    886.5 free,    277.0 used,    628.4 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1333.1 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0  176848  10824   8116 S   0.0   0.6   0:04.50 /usr/lib/systemd/s
ystemd --switch+
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 [kthreadd]
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [rcu_gp]
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [rcu_par_gp]
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [kworker/0:0H-kblockd]
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [mm_percpu_wq]
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.70 [ksoftirqd/0]
     11 root      20   0       0      0      0 I   0.0   0.0   0:02.64 [rcu_sched]
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 [migration/0]
     13 root      rt   0       0      0      0 S   0.0   0.0   0:00.45 [watchdog/0]
     14 root      20   0       0      0      0 S   0.0   0.0   0:00.00 [cpuhp/0]
     16 root      20   0       0      0      0 S   0.0   0.0   0:00.00 [kdevtmpfs]
     17 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [netns]

高效率輕鬆,Linux批次模式下系統監控利器
# 如果要按照記憶體使用順序排序,需要使用下面命令:

[root@localhost ~]# top -bc -o +%MEM -n 1 | head -n 20
top - 22:26:01 up 6 days, 12:39,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.9 us,  5.9 sy,  0.0 ni, 88.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1792.0 total,    834.6 free,    329.0 used,    628.4 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1281.2 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  22531 root      20   0  615344  75672  25780 S   0.0   4.1   0:00.80 node /usr/
local/bin/evilscan 192.+
    968 root      20   0  413544  35488  34188 S   0.0   1.9   0:02.32 /usr/libexec/sss
d/sssd_nss --uid +
    971 root      20   0  462996  34880  14700 S   0.0   1.9   0:00.65 /usr/libexec/plat
form-python -s /+
    997 root      20   0  612436  28888  14600 S   0.0   1.6   0:35.22 /usr/libexec/platfo
rm-python -Es +
    948 polkitd   20   0 1772752  23756  16596 S   0.0   1.3   0:00.30 /usr/lib/polkit-1/p
olkitd --no-de+
    980 root      20   0  753768  18484  15908 S   0.0   1.0   0:05.09 /usr/sbin/NetworkMan
ager --no-dae+
    813 root      20   0  118756  14588  13040 S   0.0   0.8   0:04.79 /usr/lib/systemd/sys
temd-journald
    966 root      20   0  402088  12008   9900 S   0.0   0.7   0:01.93 /usr/libexec/sssd/ss
sd_be --domai+
    950 root      20   0  395652  11736  10132 S   0.0   0.6   0:00.34 /usr/sbin/sssd -i 
--logger=files
      1 root      20   0  176848  10824   8116 S   0.0   0.6   0:04.50 /usr/lib/systemd/s
ystemd --switch+
   6620 root      20   0  152796  10216   8992 S   0.0   0.6   0:00.01 sshd: root [priv]
    840 root      20   0  115684   9876   7312 S   0.0   0.5   0:00.47 /usr/lib/systemd
/systemd-udevd
   6623 root      20   0   93708   9500   8112 S   0.0   0.5   0:00.04 /usr/lib/systemd/
systemd --user

高效率輕鬆,Linux批次模式下系統監控利器
# 上面指令中關於top指令使用的選項解釋如下:

  • -b: 執行腳本模式
  • -c: 顯示COMMAND列中指令的完整路徑
  • -n: 指定top在結束前應該產生的最大迭代數。
  • -o: 定義了依照哪個欄位排序。

在批次模式下,使用 top 指令根據進程的使用的時間排列資料。它顯示進程自啟動以來消耗的 CPU 時間總量。使用如下命令查看:

[root@localhost ~]# top -bc -o TIME+ -n 1 | head -n 20
top - 22:31:20 up 6 days, 12:44,  2 users,  load average: 0.00, 0.04, 0.01
Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   1792.0 total,    843.4 free,    320.1 used,    628.4 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1290.0 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    997 root      20   0  612436  28888  14600 S   0.0   1.6   0:35.24 /usr/libexec
/platform-python -Es +
    946 root      20   0  160120   6460   5656 S   0.0   0.4   0:06.08 /sbin/rngd -f
    980 root      20   0  753768  18484  15908 S   0.0   1.0   0:05.10 /usr/sbin/Netw
orkManager --no-dae+
    813 root      20   0  118756  14588  13040 S   0.0   0.8   0:04.79 /usr/lib/systemd
/systemd-journald
      1 root      20   0  176848  10824   8116 S   0.0   0.6   0:04.50 /usr/lib/systemd
/systemd --switch+
    727 root      20   0       0      0      0 S   0.0   0.0   0:02.77 [xfsaild/dm-0]
     11 root      20   0       0      0      0 I   0.0   0.0   0:02.65 [rcu_sched]
    968 root      20   0  413544  35488  34188 S   0.0   1.9   0:02.32 /usr/libexec/sss
d/sssd_nss --uid +
    966 root      20   0  402088  12008   9900 S   0.0   0.7   0:01.93 /usr/libexec/ss
sd/sssd_be --domai+
    954 chrony    20   0   29444   2652   2400 S   0.0   0.1   0:01.16 /usr/sbin/chronyd
    945 dbus      20   0   74704   5896   5096 S   0.0   0.3   0:01.15 /usr/bin/dbus-daemon --system --a+
     24 root      39  19       0      0      0 S   0.0   0.0   0:01.13 [khugepaged]
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.79 [ksoftirqd/0]

高效率輕鬆,Linux批次模式下系統監控利器
# 下面可以將top的輸出結果儲存到檔案:

[root@localhost ~]# top -bc | head -30 > top-information.txt
高效率輕鬆,Linux批次模式下系統監控利器

總結

#top 指令用於顯示 Linux 系統中的即時處理活動,以及核心管理的任務。它將顯示 CPU 和記憶體使用情況及其他信息,例如正在運行的程式。可以利用腳本模式的選項將top命令輸出傳輸到其他應用程式或檔案。

透過本文的介紹,我們可以看到在Linux系統中使用batch mode下的top命令可以更有效率地進行系統資源監控,並且避免了互動式介面帶來的負擔。我們可以透過設定top指令的-b參數來切換至batch mode模式,同時也可以透過其他參數來自訂輸出結果、設定刷新間隔等。相信透過這種方式,我們可以更輕鬆、更有效率地進行系統監控和調整,提高系統的運作效率。

以上是高效率輕鬆,Linux批次模式下系統監控利器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除