有一些命令,如top、ps、pmap (和其他命令),显示了进程使用了多少内存,但它们只显示了内存总量。
使用free -g命令输出,我们可以看到total、used、shared、buffers和cached:
total used free shared buffers cached
Mem: 126 86 39 5 1 80
-/+ buffers/cache: 4 121
Swap: 3 0 3 是否有任何方法详细检查每个进程的内存使用情况?例如,如下所示:
PID USER MEM USD SHRD BUF CAH command
23 monitoring 23kb 12kb 10kb 23kb 5kb du如果上述情况不可能,那么是否有任何方法检查特定的内存量?(例如,我只想检查缓存的内存,看看每个进程占用了多少内存。)
发布于 2020-08-31 15:25:56
我没有Centos,但手册页似乎与Linux相关,我正在使用Linux对此进行调查。这些特性是IPCs (进程间通信设施)。
共享资源(几乎按照定义)不属于特定的进程。所以在很多情况下,所有的报告都是重复计算的。
我可以看到使用ipcs列出的共享内存段,并通过以下方法获得更多详细信息:
ipcs | while read -r _ Id _; do
[[ $Id =~ [0-9] ]] && ipcs -u -m -i $Id
done | more它们似乎维护了一个cpid (创建者pid)和一个lpid (最后一个访问pid)。据我所见,我有两种共享的记忆。
(a)我的控制面板(mate-面板)与它显示的每个应用程序(mintUpdate、mate-传感器-ap、mate-screensave)共享。
(b)我的显示服务器(Xorg)与每个可以使用编辑菜单(xed,终端)的窗口共享。
设备缓存也是非进程的--它与以前使用过的任何文件相关,即使在使用该文件的进程长期结束之后也是如此。如果需要,可以立即丢弃该空间,但保留它是为了希望与最近使用的文件之间的一些块可以再次使用。
虚拟内存经常被从未被实际使用过的保留所占用,因此也可能是短暂的。
https://unix.stackexchange.com/questions/607173
复制相似问题