linux耗内存最大的进程,如何在Linux中找出内存消耗最大的进程

f523fddec0580c8f0c4e43aaedcc4363.png

很多次,你可能遇见过系统消耗了过多的内存。如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程。我相信,你可能已经运行了下文中的命令以进行检查。如果没有,那你尝试过哪些其他的命令?我希望你可以在评论中更新这篇文章,它可能会帮助其他用户。

使用 top 命令 和 ps 命令 可以轻松的识别这种情况。我过去经常同时使用这两个命令,两个命令得到的结果是相同的。所以我建议你从中选择一个喜欢的使用就可以。

1) 如何使用 ps 命令在 Linux 中查找内存消耗最大的进程

ps 命令用于报告当前进程的快照。ps 命令的意思是“进程状态”。这是一个标准的 Linux 应用程序,用于查找有关在 Linux 系统上运行进程的信息。

它用于列出当前正在运行的进程及其进程 ID(PID)、进程所有者名称、进程优先级(PR)以及正在运行的命令的绝对路径等。

下面的 ps 命令格式为你提供有关内存消耗最大进程的更多信息。

#psaux--sort-rss|head

USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND

mysql10643.25.4886076209988?SslOct2562:40/usr/sbin/mysqld

varnish233960.02.9286492115616?SLlOct250:42/usr/sbin/varnishd-P/var/run/varnish.pid-f/etc/varnish/default.vcl-a:82-T127.0.0.1:6082-S/etc/varnish/secret-s malloc,256M

named11050.02.7311712108204?SslOct250:16/usr/sbin/named-u named-c/etc/named.conf

nobody233770.22.315309689432?SOct254:35nginx:worker process

nobody233760.12.114709683316?SOct252:18nginx:worker process

root233750.01.713102866764?SsOct250:01nginx:master process/usr/sbin/nginx-c/etc/nginx/nginx.conf

nobody233780.01.613098864592?SOct250:00nginx:cache manager process

root11350.00.98670837572?S05:370:20cwpsrv:worker process

root11330.00.98670837544?S05:370:05cwpsrv:worker process

使用以下 ps 命令格式可在输出中仅展示有关内存消耗过程的特定信息。

#ps-eo pid,ppid,%mem,%cpu,cmd--sort=-%mem|head

PID PPID%MEM%CPU CMD

106415.43.2/usr/sbin/mysqld

23396233862.90.0/usr/sbin/varnishd-P/var/run/varnish.pid-f/etc/varnish/default.vcl-a:82-T127.0.0.1:6082-S/etc/varnish/secret-s malloc,256M

110512.70.0/usr/sbin/named-u named-c/etc/named.conf

23377233752.30.2nginx:worker process

23376233752.10.1nginx:worker process

36259771.90.0/usr/local/bin/php-cgi/home/daygeekc/public_html/index.php

2337511.70.0nginx:master process/usr/sbin/nginx-c/etc/nginx/nginx.conf

23378233751.60.0nginx:cache manager process

113530340.90.0cwpsrv:worker process

如果你只想查看命令名称而不是命令的绝对路径,请使用下面的 ps 命令格式。

#ps-eo pid,ppid,%mem,%cpu,comm--sort=-%mem|head

PID PPID%MEM%CPU COMMAND

106415.43.2mysqld

23396233862.90.0cache-main

110512.70.0named

23377233752.30.2nginx

23376233752.10.1nginx

2337511.70.0nginx

23378233751.60.0nginx

113530340.90.0cwpsrv

113330340.90.0cwpsrv

2) 如何使用 top 命令在 Linux 中查找内存消耗最大的进程

Linux 的 top 命令是用来监视 Linux 系统性能的最好和最知名的命令。它在交互界面上显示运行的系统进程的实时视图。但是,如果要查找内存消耗最大的进程,请 在批处理模式下使用 top 命令。

你应该正确地 了解 top 命令输出 以解决系统中的性能问题。

#top-c-b-o+%MEM|head-n20|tail-15

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

1064mysql2008860762097408388S0.05.462:41.20/usr/sbin/mysqld

23396varnish20028649211561683572S0.03.00:42.24/usr/sbin/varnishd-P/var/run/varnish.pid-f/etc/varnish/default.vcl-a:82-T127.0.0.1:6082-S/etc/varnish/secret-s malloc,256M

1105named2003117121082042424S0.02.80:16.41/usr/sbin/named-u named-c/etc/named.conf

23377nobody200153240894322432S0.02.34:35.74nginx:worker process

23376nobody200147096833162416S0.02.12:18.09nginx:worker process

23375root200131028667641616S0.01.70:01.07nginx:master process/usr/sbin/nginx-c/etc/nginx/nginx.conf

23378nobody20013098864592592S0.01.70:00.51nginx:cache manager process

1135root20086708375722252S0.01.00:20.18cwpsrv:worker process

1133root20086708375442212S0.01.00:05.94cwpsrv:worker process

3034root20086704367401452S0.00.90:00.09cwpsrv:master process/usr/local/cwpsrv/bin/cwpsrv

1067nobody2001356200315882352S0.00.80:56.06/usr/local/apache/bin/httpd-k start

977nobody2001356088312682372S0.00.80:30.44/usr/local/apache/bin/httpd-k start

968nobody2001356216305442348S0.00.80:19.95/usr/local/apache/bin/httpd-k start

如果你只想查看命令名称而不是命令的绝对路径,请使用下面的 top 命令格式。

#top-b-o+%MEM|head-n20|tail-15

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

1064mysql2008860762103408388S6.75.462:40.93mysqld

23396varnish20028649211561683572S0.03.00:42.24cache-main

1105named2003117121082042424S0.02.80:16.41named

23377nobody200153240894322432S13.32.34:35.74nginx

23376nobody200147096833162416S0.02.12:18.09nginx

23375root200131028667641616S0.01.70:01.07nginx

23378nobody20013098864592592S0.01.70:00.51nginx

1135root20086708375722252S0.01.00:20.18cwpsrv

1133root20086708375442212S0.01.00:05.94cwpsrv

3034root20086704367401452S0.00.90:00.09cwpsrv

1067nobody2001356200315882352S0.00.80:56.04httpd

977nobody2001356088312682372S0.00.80:30.44httpd

968nobody2001356216305442348S0.00.80:19.95httpd

3) 奖励技巧:如何使用 ps_mem 命令在 Linux 中查找内存消耗最大的进程

ps_mem 程序 用于显示每个程序(而不是每个进程)使用的核心内存。该程序允许你检查每个程序使用了多少内存。它根据程序计算私有和共享内存的数量,并以最合适的方式返回已使用的总内存。

它使用以下逻辑来计算内存使用量。总内存使用量 = sum(用于程序进程的专用内存使用量) + sum(用于程序进程的共享内存使用量)。

#ps_mem

Private+Shared=RAM usedProgram

128.0KiB+27.5KiB=155.5KiBagetty

228.0KiB+47.0KiB=275.0KiBatd

284.0KiB+53.0KiB=337.0KiBirqbalance

380.0KiB+81.5KiB=461.5KiBdovecot

364.0KiB+121.5KiB=485.5KiBlog

520.0KiB+65.5KiB=585.5KiBauditd

556.0KiB+60.5KiB=616.5KiBsystemd-udevd

732.0KiB+48.0KiB=780.0KiBcrond

296.0KiB+524.0KiB=820.0KiBavahi-daemon(2)

772.0KiB+51.5KiB=823.5KiBsystemd-logind

940.0KiB+162.5KiB=1.1MiBdbus-daemon

1.1MiB+99.0KiB=1.2MiBpure-ftpd

1.2MiB+100.5KiB=1.3MiBmaster

1.3MiB+198.5KiB=1.5MiBpickup

1.3MiB+198.5KiB=1.5MiBbounce

1.3MiB+198.5KiB=1.5MiBpipe

1.3MiB+207.5KiB=1.5MiBqmgr

1.4MiB+198.5KiB=1.6MiBcleanup

1.3MiB+299.5KiB=1.6MiBtrivial-rewrite

1.5MiB+145.0KiB=1.6MiBconfig

1.4MiB+291.5KiB=1.6MiBtlsmgr

1.4MiB+308.5KiB=1.7MiBlocal

1.4MiB+323.0KiB=1.8MiBanvil(2)

1.3MiB+559.0KiB=1.9MiBsystemd-journald

1.8MiB+240.5KiB=2.1MiBproxymap

1.9MiB+322.5KiB=2.2MiBauth

2.4MiB+88.5KiB=2.5MiBsystemd

2.8MiB+458.5KiB=3.2MiBsmtpd

2.9MiB+892.0KiB=3.8MiBbash(2)

3.3MiB+555.5KiB=3.8MiBNetworkManager

4.1MiB+233.5KiB=4.3MiBvarnishd

4.0MiB+662.0KiB=4.7MiBdhclient(2)

4.3MiB+623.5KiB=4.9MiBrsyslogd

3.6MiB+1.8MiB=5.5MiBsshd(3)

5.6MiB+431.0KiB=6.0MiBpolkitd

13.0MiB+546.5KiB=13.6MiBtuned

22.5MiB+76.0KiB=22.6MiBlfd-sleeping

30.0MiB+6.2MiB=36.2MiBphp-fpm(6)

5.7MiB+33.5MiB=39.2MiBcwpsrv(3)

20.1MiB+25.3MiB=45.4MiBhttpd(5)

104.7MiB+156.0KiB=104.9MiBnamed

112.2MiB+479.5KiB=112.7MiBcache-main

69.4MiB+58.6MiB=128.0MiBnginx(4)

203.4MiB+309.5KiB=203.7MiBmysqld

---------------------------------

775.8MiB

=================================

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值