Linux

如何解釋busybox“頂部”輸出?

  • January 18, 2015

我在小型嵌入式 ARM 系統上使用 BusyBox。我正在嘗試讀取“頂部”輸出,尤其是列出的 Python 程序。這個程序使用了多少實際記憶體?VSZ 代表什麼?該系統只有 64MB 的 RAM。

記憶體:已使用 41444K,免費 20572K,0K shrd,0K buff,記憶體 18728K
CPU:3% usr 3% sys 0% nic 92% 空閒 0% io 0% irq 0% sirq
平均負載:0.00 0.04 0.05 1/112 31667
PID PPID USER STAT DTC% DD% CPU COMMAND
777 775 python S 146m 241% 3% /usr/bin/python -u -- dpdsrv.py

VSZ(或者VIRT,取決於 的版本top)是映射到程序地址空間的記憶體量。它包括由程序的執行檔和共享庫支持的頁面、它的堆和堆棧,以及它映射的任何其他內容。

在您顯示的範例輸出的情況下,虛擬大小大於系統上的物理記憶體量,因此程序地址空間中的某些(大多數!)頁面必然不會物理存在於 RAM 中。這不是問題:許多程序包含大量程式碼並映射大量共享庫,但它們實際上只使用該程式碼的某些部分,或者至少同時只使用程式碼的某些部分,這允許核心​​放棄記憶體中未使用的部分,只要它們不被使用,甚至從一開始就永遠不會載入它們。

您的版本top似乎沒有顯示一RES列,它會告訴您程序地址空間中有多少記憶體目前駐留在 RAM 中。

引用自:https://unix.stackexchange.com/questions/179655