您的位置 首页 > 数码极客

如何查看linux电脑内存使用情况、如何查看电脑内存使用量!

在Linux系统中,当我们想查看系统内存使用情况的时候,可能首先会想到“free”。查看内存的整体使用情况,“free”命令可以胜任,如果要查看某个指定进程的内存占用,可以选择使用“top”或它的升级版命令“htop”,但你会发现这些命令显示的结果都不直观。比如下面这样:


htop命令显示

难道有这么多进程都占用了101G“RES”内存吗?显示不是的,这样的话251GB内存早都撑爆了,这里显示的PID都是线程(可以使用“pstree”命令查看进程和线程的关系图)。再进一步,查看指定进程对“swap”空间的占用情况,这时上面给出的命令就有点力不从心了。

好了,主角“smem”命令登场

“smem”可以直观简洁的显示进程(不是线程)对内存和“swap”空间的占用情况。比如,对进程按对内存的占用大小从高往低排序,仅显示前5个:

aneirin@host-1:~$ sudo smem -r -k | head -6 PID User Command Swap USS PSS RSS 3752 presto java -cp /home/presto/prest 0 101.9G 101.9G 102.0G 85199 hbase /usr/lib/jvm/java-8-openjdk 7.7G 13.8G 13.8G 13.8G 77009 hdfs j -Dproc_datanode - 86.8M 12.5G 12.6G 12.6G 139749 clickhouse /usr/bin/clickhouse-server 6.7G 5.6G 5.6G 5.6G 81533 yarn /usr/lib/jvm/java-8-openjdk 207.2M 2.7G 2.7G 2.7G

核心参数解释:

USS:Unique Set Size,进程的非共享(Unshared memory)内存占用

PSS:Proportional Set Size,上面的USS加上进程在共享内存中占用的部分

RSS:Resident set size,进程对物理内存的占用,这个值加上“Swap”中的值(被交换到外部文件系统的数据)就是进程整体的内存占用情况

使用“smem”命令可以非常快速的找到占用内存最多的进程,从而在内存吃紧时,对进程做出调整。

工作中常会收到“Swap”空间占用过大导致的告警,使用下面命令让惹祸的进程无处藏身:

sudo smem -s swap -r -k | head -10

注意,如果不使用“sudo”命令仅显示自己创建的进程内存使用情况。

希望这篇文档能帮到正在努力的你,欢迎关注和评论!

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何查看linux电脑内存使用情况,如何查看电脑内存使用量,如何查看linux的内存,如何查看电脑运行内存,如何查看电脑内存配置”边界阅读