如何解释busybox的“顶部”输出?


8

我在小型嵌入式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用户统计信息VSZ%VSZ%CPU命令
  777775 python S 146m 241%3%/ usr / bin / python -u-dpdsrv.py

Answers:


4

VSZ(或VIRT,取决于的版本top)是映射到进程地址空间中的内存量。它包括由进程的可执行文件和共享库支持的页面,其堆和堆栈以及已映射的其他任何内容。

在您显示的示例输出的情况下,虚拟大小大于系统上的物理内存量,因此,进程地址空间中的某些(大多数!)页面不一定实际不在RAM中。这不是问题:许多程序包含大量代码并映射许多共享库,但它们实际上仅使用该代码的某些部分,或者至少仅同时使用该代码的某些部分,这允许内核删除只要不使用它们,甚至从不首先加载它们,就从内存中使用未使用的部分。

您的的版本top似乎没有显示一RES列,它会告诉您进程的地址空间中当前有多少内存驻留在RAM中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.