top 工具

top 是一個在類 Unix 系統(包括 macOS 和 Linux)中常用的工具,用於即時監控系統的行程(processes)和資源使用情況。

Processes,行程和執行緒總覽

Processes: 491 total, 5 running, 486 sleeping, 3862 threads

Load Average ,系統負載和 CPU 使用率

Load average 值是一個綜合性的指標,受到多種因素的影響。透過分析負載平均值的變化,系統管理員可以更好地了解系統的運行狀態,並及時採取適當的措施以維持穩定的性能。Linux 中的 load average 被描述為三個不同的十進制值。以下面的例子可以看到 load averages: 1.26 1.35 1.36,由左至右分別為 1 分鐘、5 分鐘、10分鐘的平均負載狀況如下解釋:

下面有幾種狀況的解釋:

➜ uptime
 9:14  up 4 days, 14:31, 1 user, load averages: 1.26 1.35 1.36

Load average 的變化受到多種因素的影響,它主要反映了系統的活動水平和性能狀態。以下是一些可能影響負載平均值變化的因素:

  1. CPU 使用率: 系統中運行的進程需要使用 CPU 資源。如果 CPU 使用率較高,系統的負載平均值可能會增加。這可能是由於執行大量計算密集型任務或多個進程競爭 CPU 資源。

  2. I/O 操作: 大量的 I/O 操作,例如磁盤讀寫、網絡輸入輸出等,可能導致系統的負載增加。這可能是由於多個進程在等待 I/O 完成,使得系統處於等待狀態。下面有解釋到為什麼 I/O 操作會影響 load avg

    「「平均負載」的目的是從人的角度得出一個與系統繁忙程度有關的數字。TASK_UNINTERRUPTIBLE 意味著進程正在等待諸如磁碟讀取之類的東西,這會增加系統負載。一個嚴重受磁碟限制的系統可能會非常緩慢,但TASK_RUNNING 平均值僅為0.1,這對任何人都沒有幫助。”

  3. 內存使用: 系統的內存使用情況也會影響 load avg。如果系統中的進程需要大量的內存,可能會導致系統的交換(swap)操作,進而增加 load avg。

  4. 進程數量: 系統中運行的進程數量會影響 load avg。當存在大量的活動進程,無論是運行中還是等待執行,都可能導致 load avg 值升高。

  5. 等待時間: 如果進程需要等待某些資源(例如鎖或同步),這可能導致系統的 load avg。這也包括在多核系統中,某些進程可能需要等待 CPU 核心的可用性。

  6. 系統的整體性能: 硬體性能、網絡帶寬、存儲速度等硬體因素都可能影響系統的整體性能,進而影響 load avg。

  7. 突發性事件: 例如突然的大量流量、系統故障、惡意攻擊等,都可能導致負載平均值的急劇增加。

CPU 的使用率分佈

CPU usage: 14.20% user, 4.66% sys, 81.13% idle SharedLibs: 448M resident, 109M data, 66M linkedit. MemRegions: 117 total, 3936K resident, 4208K private, 2377M shared.

實體記憶體 (RAM) 使用情況

PhysMem: 15G used (3217M wired, 5955M compressor), 138M unused.

虛擬記憶體 (VM) 使用情況

VM: 260T vsize, 5684M framework vsize, 22745372(0) swapins, 26777028(0) swapouts.

網路活動

Networks: packets: 120201633/129G in, 61599676/35G out.

硬碟活動

Disks: 1351063132/22T read, 56259681/1931G written.