Linux查看高内存进程方法大全 (linux查看内存高进程)

随着计算机技术的发展,内存容量越来越大,但是在运行过程中,仍然会出现内存不足的情况。其中,高内存进程占用内存较高,是造成内存不足的主要原因之一。因此,了解如何查看高内存进程非常重要。本篇文章将介绍多个查看高内存进程的方法,供大家参考。

一、使用top命令

top是一个Linux系统资源监视器,可以在终端中查看系统的实时运行情况。其中,可以通过top命令查看系统中最耗费内存的进程。具体操作如下:

1. 打开终端,输入以下命令:

top

2. 在终端中显示类似下面的信息:

“`

top – 10:16:25 up 43 min, 1 user, load average: 0.41, 0.46, 0.47

Tasks: 183 total, 2 running, 181 sleeping, 0 stopped, 0 zombie

%Cpu(s): 1.7 us, 0.7 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

MiB Mem : 16044.2 total, 11352.1 free, 1989.9 used, 1702.1 buff/cache

MiB Swap: 16384.0 total, 16284.0 free, 100.0 used. 13736.8 avl Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

75855 root 20 0 1979864 1.1g 39772 S 0.0 7.3 0:20.77 java

67774 root 20 0 1051520 717392 22872 S 0.0 4.4 0:32.19 docker

75475 tomcat 20 0 19.046g 829700 30380 S 0.0 5.1 0:02.17 java

“`

3. 在Processes中,按下shift+m键,会按照内存使用量从高到低排序,可以查看使用内存最多的进程。其中,RES表示进程占用物理内存大小(不包括共享内存和虚拟内存)。

二、使用ps命令

ps命令是一个Linux系统中用于查看进程信息的命令。可以通过ps命令查看系统中进程的详细信息,包括进程ID和占用内存大小等。具体操作如下:

1. 打开终端,输入以下命令(其中,-e选项表示显示所有进程):

ps -e -o pid,user,%mem,command –sort=-%mem | head

2. 在终端中显示类似下面的信息:

“`

PID USER %MEM COMMAND

81816 root 9.9 /usr/bin/python3 /usr/bin/gunicorn –config /etc/gunicorn.d/ga –env DJANGO_SETTINGS_MODULE=ga_core.settings ga_core.wsgi:application

17846 mongodb 5.5 /usr/bin/mongod –config /etc/mongodb.conf

18592 redis 3.3 /usr/bin/redis-server *:6379

76947 root 3.3 /usr/bin/java -Xms256m -Xmx3072m -XX:MaxPermSize=128m -Djava.awt.headless=true -cp /usr/share/t-launcher-packaging/bin/t-launch.jar xt.boot.Boot run

81096 root 2.9 /usr/bin/dockerd -H fd:// –contnerd=/run/contnerd/contnerd.sock

17847 mongodb 2.4 /usr/bin/mongod –config /etc/mongodb.conf

35387 root 1.6 /usr/bin/dockerd -H fd:// –contnerd=/run/contnerd/contnerd.sock

16091 root 1.3 /usr/in/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –user=mysql –log-error=/var/log/mysqld.log –pid-file=/run/mysqld/mysqld.pid –socket=/var/lib/mysql/mysql.sock –port=3306

23488 www-data 1.3 php-fpm: pool www

“`

3. 在命令中添加–sort=-%mem选项,可以将结果按照内存使用量从高到低排序。其中,%MEM表示进程占用物理内存大小占总内存大小的百分比。

三、使用em命令

em是一个Linux系统中用于查看进程和内存使用情况的命令,可以根据进程和用户等多种方式进行分类和过滤。具体操作如下:

1. 打开终端,输入以下命令(其中,-r选项表示以内存使用量为基准进行排序):

em -r

2. 在终端中显示类似下面的信息:

“`

PID User Command Swap USS PSS RSS

12355 root /usr/bin/mongod –quiet –cfi 0 403.03M 410.61M 523.85M

29859 mysql /usr/in/mysqld –daemonize- 0 237.89M 244.01M 297.78M

14872 root /usr/bin/dockerd –host=fd:// 0 710.93M 781.37M 922.35M

23271 root /in/iptables -w2 -t nat -A 0 6.77M 8.69M 28.09M

25732 root /usr/bin/dockerd –host=unix: 0 34.08M 36.16M 55.73M

12378 mongodb /usr/bin/mongod –quiet –cfi 0 134.24M 189.43M 243.47M

29777 mysql /usr/in/mysqld –daemonize- 0 2.66M 3.08M 31.49M

15257 root /usr/bin/dockerd -H fd:// –v 0 11.86M 13.37M 26.02M

15261 root /usr/lib/snapd/snapd –no-fork 0 13.01M 13.55M 23.11M

26128 syslog /usr/in/rsyslogd -n 0 5.56M 11.02M 22.22M

26403 root /usr/bin/dockerd –host=fd:// 0 7.42M 8.91M 18.81M

29523 root /usr/bin/dockerd –host=unix: 0 6.56M 8.81M 18.37M

11607 root /usr/bin/dockerd -H fd:// –v 0 9.17M 10.04M 16.31M

28414 root /usr/bin/docker-proxy –proto 0 4.08M 4.66M 10.62M

29626 root /usr/bin/dockerd –host=unix: 0 4.05M 4.56M 10.04M

32234 root /usr/in/nginx -g daemon off 0 3.80M 4.84M 9.85M

29700 root /usr/bin/dockerd -H fd:// –v 0 7.51M 8.32M 9.66M

16980 root /usr/lib/snapd/snapd –n 0 6.80M 7.63M 9.62M

29795 root /usr/bin/dockerd –host=unix: 0 5.16M 5.80M 9.20M

“`

3. 在命令中添加–sort=USS选项,可以将结果根据进程实际使用的内存大小从高到低排序。其中,USS表示进程占用物理内存大小(不包括共享内存和虚拟内存)。

四、使用pidstat命令

pidstat是Linux系统中一个用于查看指定进程的CPU、内存和IO等性能数据的命令。具体操作如下:

1. 打开终端,输入以下命令(其中,-r选项表示查看内存使用情况):

pidstat -r [PID]

2. 在终端中显示类似下面的信息:

“`

Linux 4.4.0-62-generic (xxx) 05/18/2023 _x86_64_ (2 CPU)

05:14:55 PM pid uid tgid total_vm rss softirq majflt minflt pswpin pswpout swapused uname %usr %system %guest %CPU CPU %mem minflt/s majflt/s VSZ RSS LTP

05:14:55 PM 67 1000 67 34070 164 3171 0 50 0 0 0 root 0.15 0.07 0.00 0.22 1 0.00 0.02 0.00 3.74M 172.0K chronyd

05:14:55 PM 88 0 88 12659 166 579 0 8 0 0 0 syslog 0.03 0.02 0.00 0.05 0 0.00 0.00 0.00 1.47M 168.0K rsyslogd

05:14:55 PM 97 0 97 75533 1016 13882 0 163 0 0 0 root 0.49 0.25 0.00 0.74 1 0.05 0.49 0.01 411.82M 1.02M systemd-journal

05:14:55 PM 150 0 150 25291 102 2 0 27 0 0 0 root 0.00 0.01 0.00 0.01 1 0.00 0.00 0.00 8.80M 100.0K systemd-udevd

05:14:55 PM 2977 0 2977 56659 1280 41 6 7 0 0 0 www-data 0.04 0.01 0.00 0.05 1 0.05 0.00 0.00 218.35M 1.24M nginx

“`

3. 修改命令中的[PID]为具体进程ID,即可查看指定进程的内存使用情况。

五、使用pmap命令

pmap命令可以显示进程的内存映射信息,包括虚拟地址、权限、映射文件等。从而可以分析进程的内存使用情况。具体操作如下:

1. 打开终端,输入以下命令(其中,[PID]表示进程ID):

pmap -d [PID]

2. 在终端中显示类似下面的信息:

“`

Address Kbytes RSS Dirty Mode Mapping

00007f69a5585000 920 520 0 r-xp /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0

00007f69a5ec7000 2023 664 208 rw-p /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0

00007f69a6c9f000 24 24 24 rw-p [heap]

00007f69a6ca7000 196 108 108 rw-p [heap]

00007f69a8e0e000 132 80 80 rw-p /usr/lib/x86_64-linux-gnu/libnettle.so.6.4

00007f69a901d000 96 44 44 rw-p /usr/lib/x86_64-linux-gnu/libhogweed.so.4.3

00007f69a91a0000 32 20 20 rw-p /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2

“`

3. 在命令中查找RSS(即常驻内存大小)更大的模块,即可得知占用内存较多的代码位置。

六、使用psutil库

psutil是一个跨平台的Python第三方库,可以提供系统信息和进程运行情况等详细信息。可以通过psutil库查看内存使用量较高的进程。具体操作如下:

1. 安装psutil库(可以通过pip命令进行安装):

pip install psutil

2. 在Python脚本中,输入以下代码:

“`

import psutil

for process in psutil.process_iter(attrs=[‘pid’, ‘name’, ‘memory_info’]):

rss = process.info[‘memory_info’].rss / 1024 / 1024 # 获取进程常驻内存大小(MB)

if rss > 100: # 显示常驻内存大小大于100MB的进程

print(‘PID: {}, Name: {}, Mem: {:.2f} MB’.format(process.info[‘pid’], process.info[‘name’], rss))

“`

3. 运行Python脚本,即可查看常驻内存超过100MB的进程信息。

综上所述,Linux查看高内存进程有多种方法,每种方法都有其特点和优缺点。可以根据具体情况选择合适的方法。同时,为了避免出现内存不足的情况,建议优化程序,减少不必要的内存占用。

相关问题拓展阅读:

  • linux 查看内存被哪些进程
  • Linux下如何查看哪些进程占用的CPU内存资源最多

linux 查看内存被哪些进程

查看占用内存更高的进程

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

或者top (然后按下P,注意这里是大写)

该命令组合实际上是下面两句命令:

ps aux|head -1

ps aux|grep -v PID|sort -rn -k +3|head

其中之一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。

接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。

sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)

补充:内容解释

PID:进程的ID

USER:进程所戚态有者

PR:进程的优先级别,薯陪越小越优先被执行

NInice:值

VIRT:进程占用的虚拟内存

RES:进程占用的物理内存

SHR:高手源进程使用的共享内存

S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

%CPU:进程占用CPU的使用率

%MEM:进程使用的物理内存和总内存的百分比

COMMAND:进程启动命令名称

Linux下如何查看哪些进程占用的CPU内存资源最多

linux下获取占用CPU资世肆源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

linux下获取占用内存资源最多的10个进族裤程,可以使用如下命令组合:

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

命令组合解析(针对CPU的兆返简,MEN也同样道理):

ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

该命令组合实际上是下面两句命令:

ps aux|head -1

ps aux|grep -v PID|sort -rn -k +3|head

linux查看内存高进程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux查看内存高进程,Linux查看高内存进程方法大全,linux 查看内存被哪些进程,Linux下如何查看哪些进程占用的CPU内存资源最多的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/172708.html<

(0)
管理的头像管理
上一篇2025-03-23 10:58
下一篇 2025-03-23 10:59

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注