Linux查看进程内存占用的6种方法汇总

技术教程 2026-01-08 20:24:10 浏览
目录

CPU和内存是机器性能好坏的关键部件,内存大了就能运行更多的程序,但是程序运行多了就会出现资源消耗竞争的关系,有时候系统出现负载过高的情况下,我们如何去判断是那个程序导致的呢?这就可以用上今天分享的几个工具指令了,快来一起学一下吧!

我这里整理了 6 种方式,应该足够用了吧,不够你可以再补充。

首先想到的肯定是 top 命令,直接输入 top 回车即可

输出参数介绍:

top命令默认是以CPU排序输出的,按字母「****M****」,可以按内存占用大小进行排序显示

显示的有整体内存占用情况和各个进程占用的内存情况。

默认的 ps 不输出内存相关的内容,可以添加要显示的字段

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'

RSZ: 954184 表示内存占用

更多操作指令,按内存排序

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -k5nr 

也可以使用 --sort -rsz 按 rsz 排序,效果一样

smaps 也是进程的一个属性,可以通过 cat smaps 获得

cat /proc/7576/smaps | grep RSS | awk '{sum +=$2} END{print sum}' 

需要将他们进行加起来

使用 pmap 也可以查看进程的详细内存占用情况

pmap -hUsage: pmap [options] PID [PID ...]Options: -x, --extendedshow deTails -Xshow even more detailsWARNING: format changes according to /proc/PID/smaps -XXshow everything the kernel provides -c, --read-rcread the default rc -C, --read-rc-from=read the rc from file -n, --create-rccreate new default rc -N, --create-rc-to=create new rc to fileNOTE: pid arguments are not allowed WITH -n, -N -d, --deviceshow the device format -q, --quietdo not display header and footer -p, --show-pathshow path in the mAPPing -A, --range=[,]limit results to the given range -h, --helpdisplay this help and exit -V, --versionoutput version information and exitFor more details see pmap(1).

执行可以查看详情

pmap -x 75767576:/usr/share/logstash/jdk/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djdk.io.File.enableADS=true -Djruby.compile.invokedynamic=true -Djruby.jit.threshold=0 -Djruby.regexp.interruptible=true -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/urandom -Dlog4j2.isThreadContextMapInheritable=true -cp /usr/share/logstash/logstash-core/lib/jars/animal-sniffer-annotations-1.14.jar:/AddressKbytesRSSDirty ModeMapping...............---------------- ------- ------- -------total kB3725156626940619032

RSS: 626940 即内存占用。

一般系统没有自带,需要安装一下,根据你的系统选择合适的安装工具

Linux查看进程内存占用的6种方法汇总
apt-get updateapt-get install -y smemsmem --help

自带排序,直接输出排好序的数据,可以使用 -r 参数从大到小排列

smemsmem -r

Linux 中每个进程在 /proc 目录下都有对应的目录,其中某个进程目录下有一个 status 文件,通过 status 文件内容可以查看到当前占用资源的情况

cat /proc/7576/statusName:javaUmask:0022State:S (sleeping)Tgid:7576Ngid:0Pid:7576PPid:1TracerPid:0Uid:0000Gid:0000FDSize:256Groups:0VmPeak:3724360 kBVmSize:3724360 kBVmLck:0 kBVmPin:0 kBVmHWM:638308 kBVmRSS:621528 kBRssAnon:613808 kBRssFile:7720 kBRssShmem:0 kBVmData:3524964 kBVmStk:136 kBVmExe:4 kBVmLib:22520 kBVmPTE:1604 kBVmSwap:0 kBThreads:34SigQ:0/14503SigPnd:0000000000000000ShdPnd:0000000000000000SigBlk:0000000000000000SigIgn:0000000000000000SigCgt:2000000181005ccfCapInh:0000000000000000CapPrm:00000000a80425fbCapEff:00000000a80425fbCapBnd:00000000a80425fbCapAmb:0000000000000000Seccomp:2Speculation_Store_Bypass:vulnerableCpus_allowed:3Cpus_allowed_list:0-1Mems_allowed:00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001Mems_allowed_list:0voluntary_ctxt_switches:22nonvoluntary_ctxt_switches:29

VmRSS: 621528 kB 就表示占用的内存大小。

好了,今天的分享就到这里,关注我,和我一起学习成长。

Linux查询内存或CPU占用最多的几个进程

一、可以使用以下命令查使用内存最多的10个进程

方法1:

ps -aux | sort -k4nr | head -10

如果是最高的三个,10改为3即可

命令解释:

1. ps:参数a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分。ps -aux的输出格式如下:

USERPID %CPU %MEMVSZRSS TTYSTAT STARTTIME COMMAND

2. sort -k4nr中(k代表从根据哪一个关键词排序,后面的数字4表示按照第四列排序;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。-k3表示按照cpu占用率排序。

方法2:top (然后按下M,注意大写)

参数解释

方法3:按内存大小排序,打印出所有的进程

ps aux --sort -rss

二、可以使用下面命令查使用CPU最多的3个进程

方法1:

ps -aux | sort -k3nr | head -3

方法2:top (然后按下P,注意大写)

以上就是Linux 查看进程内存占用的 6 种方法,建议点赞收藏备用,排查问题好帮手的详细内容,更多相关资料请阅读主机测评网其它文章!

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐