如何检查进程占用了多少内存

如何检查进程占用了多少内存

众所周知,Linux 机器有 RAM 内存和交换内存。

我的第一个问题是:

交换内存增加的原因是什么?是因为 RAM 使用率高还是其他原因?

第二- 是否可以验证一个进程占用了多少内存?

来自 top 命令的示例:

是否可以计算出看门狗进程占用了多少内存(如顶视图所述)?

 Tasks: 107 total,   1 running, 106 sleeping,   0 stopped,   0 zombie
 Cpu(s):  0.8%us,  0.5%sy,  0.0%ni, 98.0%id,  0.5%wa,  0.0%hi,  0.1%si,  0.0%st
 Mem:   2075440k total,  2011396k used,    64044k free,   120452k buffers
 Swap:  4192924k total,  1554096k used,  2638828k free,  1418852k cached

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                  
 1 root      15   0  2160  600  544 S  0.0  0.0   1:00.91 init                                                                                                                                                      
 2 root      RT  -5     0    0    0 S  0.0  0.0   0:04.50 migration/0                                                                                                                                               
 3 root      34  19     0    0    0 S  0.0  0.0   0:00.16 ksoftirqd/0                                                                                                                                               
 4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.01 watchdog/0     

答案1

如果使用了大量交换空间(超过几 MB),那么系统确实处于内存紧缩状态 - 您的示例显示了这种情况 - 在这种情况下系统通常会变得缓慢。

少量可能是正常的,通常表示内存页面被换出(在过去有时发生的内存紧缩期间)并且从那时起就不再需要(例如,来自休眠进程)。

计算一个进程使用的内存时应该小心 - 它可能并不总是与内存紧缩的情况相关 - 它使用的部分/全部内存实际上可以被换出,并且不会直接导致这种情况(有争议)。

另外,对于某些系统(例如专用的 Web 服务器)来说,指出占用最多内存的进程可能并不合适,罪魁祸首可能是大量占用少量内存的进程。

答案2

交换内存增加的原因是什么?是因为 RAM 使用率高还是其他原因?

是的,内存占用率很高

第二,是否可以验证一个进程占用了多少内存?

大多数方法都表明一个进程占用了多少内存。没有准确的方法来测量它,因为有很多因素会影响它,例如 1. 共享内存 2. 物理内存或交换内存等...获取想法的一些方法是

pmap -x <pid>

或者

pmap -d <pid>

粗略地来看

/proc/<pid>/smaps

答案3

我的第一个问题是:

交换内存增加的原因是什么?是因为 RAM 使用率高还是其他原因?

您的内存使用率不高。读这个 您可以通过输入free -hfree -m查看以下行来检查

-/+ 缓冲区/缓存:

增加交换使用量的原因是因为您只有 2GB 的 RAM,如果我没有记错的话,您的交换量是 60:阅读此文了解 swappiness

如果您想交换较少的内存,请降低该值,但我不建议这样做!

相关内容