我对从ps和free看到的一些结果感到有些困惑。
在我的服务器上,这是结果 free -m
[root@server ~]# free -m
total used free shared buffers cached
Mem: 2048 2033 14 0 73 1398
-/+ buffers/cache: 561 1486
Swap: 2047 11 2036
Run Code Online (Sandbox Code Playgroud)
我对 Linux 如何管理内存的理解是,它将磁盘使用情况存储在 RAM 中,以便每次后续访问都更快。我相信这是由“缓存”列指示的。此外,各种缓冲区存储在 RAM 中,如“缓冲区”列所示。
因此,如果我理解正确,“实际”用法应该是“-/+ 缓冲区/缓存”的“已使用”值,在这种情况下为 561。
所以假设所有这些都是正确的,抛出我的部分是ps aux.
我对ps结果的理解是,第 6 列 (RSS) 表示进程用于内存的大小(以千字节为单位)。
所以当我运行这个命令时:
[root@server ~]# ps aux | awk '{sum+=$6} END {print sum / 1024}'
1475.52
Run Code Online (Sandbox Code Playgroud)
结果不应该是“-/+ 缓冲区/缓存”的“已使用”列free -m吗?
那么,如何在 Linux 中正确确定进程的内存使用情况?显然我的逻辑有问题。