首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何详细检查内存使用情况

如何详细检查内存使用情况
EN

Unix & Linux用户
提问于 2020-08-31 10:30:15
回答 1查看 581关注 0票数 0

有一些命令,如toppspmap (和其他命令),显示了进程使用了多少内存,但它们只显示了内存总量。

使用free -g命令输出,我们可以看到totalusedsharedbufferscached

代码语言:javascript
复制
             total       used       free     shared    buffers     cached
Mem:           126         86         39          5          1         80
-/+ buffers/cache:          4        121
Swap:            3          0          3  

是否有任何方法详细检查每个进程的内存使用情况?例如,如下所示:

代码语言:javascript
复制
PID     USER           MEM    USD    SHRD     BUF    CAH  command
23      monitoring     23kb   12kb    10kb   23kb    5kb   du

如果上述情况不可能,那么是否有任何方法检查特定的内存量?(例如,我只想检查缓存的内存,看看每个进程占用了多少内存。)

EN

回答 1

Unix & Linux用户

发布于 2020-08-31 15:25:56

我没有Centos,但手册页似乎与Linux相关,我正在使用Linux对此进行调查。这些特性是IPCs (进程间通信设施)。

共享资源(几乎按照定义)不属于特定的进程。所以在很多情况下,所有的报告都是重复计算的。

我可以看到使用ipcs列出的共享内存段,并通过以下方法获得更多详细信息:

代码语言:javascript
复制
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,终端)的窗口共享。

设备缓存也是非进程的--它与以前使用过的任何文件相关,即使在使用该文件的进程长期结束之后也是如此。如果需要,可以立即丢弃该空间,但保留它是为了希望与最近使用的文件之间的一些块可以再次使用。

虚拟内存经常被从未被实际使用过的保留所占用,因此也可能是短暂的。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/607173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档