当前位置: 首页 > 科技观察

如何在Linux中找到最耗内存的进程

时间:2023-03-16 12:01:28 科技观察

很多时候,您可能遇到过一个系统占用太多内存的情况。如果是这种情况,最好的办法是确定Linux机器上消耗过多内存的进程。我相信,您可能已经运行下面的命令来检查。如果没有,您还尝试过哪些其他命令?我希望你能在评论中更新这篇文章,它可能会帮助其他用户。这可以通过top命令和ps命令轻松识别。我过去常常同时使用这两个命令,这两个命令的结果是一样的。所以我建议你选择一个你喜欢的并使用它。1)如何在Linux中使用ps命令找出最耗内存的进程ps命令用于报告当前进程的快照。ps命令的意思是“进程状态”。这是一个标准的Linux应用程序,用于查找有关在Linux系统上运行的进程的信息。它用于列出当前正在运行的进程及其进程ID(PID)、进程所有者名称、进程优先级(PR)以及正在运行的命令的绝对路径等。下面的ps命令格式为您提供了有关top的更多信息内存消耗过程。#psaux--sort-rss|headUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDmysql10643.25.4886076209988?SSLOct2562:40/usr/sbin/mysqldvarnish233960.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-smalloc,256Mnamed11050.02.7311712108204?SSLOct250:16/usr/sbin/named-unamed-c/etc/named.confnobody233770.22.315309689432?SOct254:35nginx:workerprocessnobody233760.12.114709683316?SOct252:18nginx:workerprocessroot233750.01.713102866764?SsOct250:01nginx:主进程/usr/sbin/nginx-c/etc/nginx/nginx.confnobody233780.01.613098864592?SOct250:00nginx:缓存管理器processroot11350.00.98670837572?S05:370:20cwpsrv:工人processroot11330.00.98670837544?S05:370:05cwpsrv:workerprocess使用以下ps命令格式在输出中仅显示有关内存消耗进程的特定信息#ps-eopid,ppid,%mem,%cpu,cmd--sort=-%内存|headPIDPPID%MEM%CPUCMD106415.43.2/usr/sbin/mysqld23396233862.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-smalloc,256M110512.70.0/usr/sbin/named-unamed-c/etc/named.conf23377233752.30.2nginx:工作进程23376233752.10.1nginx:工作进程36259771.90.0/usr/local/bin/php-cgi/home/daygeekc/public_html/index.php2337511.7inessrbin0.0/nginx-c/etc/nginx/nginx.conf23378233751.60.0nginx:cachemanagerprocess113530340.90.0cwpsrv:workerprocess如果只想查看命令名而不是命令的绝对路径,请使用下面的ps命令格式。#ps-eopid,ppid,%mem,%cpu,comm--sort=-%mem|HEADPIDPPID%MEM%CPU命令106415.43.2MySQLD23396233862.90.0CACHE-MAIN110512.70.0NESE2337723375233752.30NGINX233752)Linux中如何使用top命令查找Linux系统内存消耗最多的进程Goodandbestknowncommand。它在交互式界面上显示正在运行的系统进程的实时视图。但是,如果要查找最耗内存的进程,请在批处理模式下使用top命令。您应该正确理解top命令输出以解决系统中的性能问题。#top-c-b-o+%MEM|头-n20|tail-15PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND1064mysql2008860762097408388S0.05.462:41.20/usr/sbin/mysqld23396varnish2002864921156168304:0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.05.462:41.20/usr/sbin/mysqld23396清漆/sbin/varnishd-P/var/run/varnish.pid-f/etc/varnish/default.vcl-a:82-T127.0.0.1:6082-S/etc/varnish/secret-smalloc,256M1105named2003117121082042424S0.02.80:16.41/usr/sbin/named-unamed-c/etc/named.conf23377没有人200153240894322432S0.02.34:35.74nginx:workerprocess23376nobody2413660S0.02.12:18.09nginx:workerprocess23375root200131028667641616S0.01.70:01.07nginx:masterprocess/usr/sbin/nginx-c/etc/nginx/nginx.conf23378nobody20013098864592S.0.091.70:00.51nginx:缓存管理器进程1135root20086708375722252S0.01.00:20.18cwpsrv:工作进程1133root20086708375442212S0.01.00:05.94cwpsrv:工作进程3034root20086704367401452S0.00.90:0usr0.09cwpsrv/bin/cwpsrv1067没有人2001356200315882352S0.00.80:56.06/usr/local/apache/bin/httpd-k开始977没有人2001356088312682372S0.00.00.80/local/4/bin/bin/bin-kstart968nobody2001356216305442348S0.00.80:19.95/usr/local/apache/bin/httpd-kstart如果只想看命令名而不是命令的绝对路径,使用下面的格式最高指挥部#top-b-o+%MEM|头-n20|tail-15PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND1064mysql2008860762103408388S6.75.462:40.93mysqld23396varnish20028649211561683572S0.02.03.00缓存0.02.02.00主缓存0.02.0203117121082042424S0.02.80:16.41named23377nobody200153240894322432S13.32.34:35.74nginx23376nobody200147096833162416S0.02.12:18.09nginx23375root200131028667641616S0.01.70:01.07nginx23378nobody20013098864592592S0.01.70:00.51nginx1135root20086708375722252S0.01.00:20.18cwpsrv1133root20086708375442212S0.01.00:05.94cwpsrv3034root20086704367401452S0.00.90:00.09cwpsrv1067没有人2001356200315882352S0.00.80:56.04httpd977没有人2001356088312682372S0.00.80:30.44httpd968nobody2001356216305442348S0.00.80:19.95httpd3)额外提示:如何使用ps_mem命令查找LinuxCore内存中最耗内存的进程,并非每个进程都使用)该程序允许您检查每个程序使用了多少内存。它根据程序计算私有和共享内存的数量,并以最合适的方式返回使用的总内存。它使用以下逻辑来计算内存使用量。总内存使用量=sum(程序进程的私有内存使用量)+sum(程序进程的共享内存使用量)。#ps_memPrivate+Shared=RAMusedProgram128.0KiB+27.5KiB=155.5KiBagetty228.0KiB+47.0KiB=275.0KiBatd284.0KiB+53.0KiB=337.0KiBirqbalance380.0KiB+81.5KiB=461.5KiBdovecot364。0KiB+121.5KiB=485.5KiBlog520.0KiB+65.5KiB=585.5KiBauditd556.0KiB+60.5KiB=616.5KiBsystemd-udevd732.0KiB+48.0KiB=780.0KiBcrond296.0KiB+524.0KiB0=82avahi-daemon(2)772.0KiB+51.5KiB=823.5KiBsystemd-logind940.0KiB+162.5KiB=1.1MiBdbus-daemon1.1MiB+99.0KiB=1.2MiBpure-ftpd1.2MiB+100.5KiB=1.3MiBmaster1.3MiB+198.5KiB=1.5MiB拾取1.3MiB+198.5KiB=1.5MiB反弹1.3MiB+198.5KiB=1.5MiB管道1.3MiB+207.5KiB=1.5MiBqmgr1.4MiB+198.5KiB=1.6MiB清理1.3MiB+5KiB=299.1.6MiB琐碎重写1.5MiB+145.0KiB=1.6MiB配置1.4MiB+291.5KiB=1.6MiBtlsmgr1.4MiB+308.5KiB=1.7MiB本地1.4MiB+323.0KiB=1.8MiB铁砧(2)1.3MiB+559.0KiB=1.9MiBsystemd-journald1.8MiB+240.5KiB=2.19MiBproxymap1322.5KiB=2.2MiBauth2.4MiB+88.5KiB=2.5MiBsystemd2.8MiB+458.5KiB=3.2MiBsmtpd2.9MiB+892.0KiB=3.8MiBbash(2)3.3MiB+555.5KiB=3.8MiBNetworkManager4.31MiB+2=4.3MiBvarnishd4.0MiB+662.0KiB=4.7MiBdhclient(2)4.3MiB+623.5KiB=4.9MiBrsyslogd3.6MiB+1.8MiB=5.5MiBsshd(3)5.6MiB+431.0KiB=6.0MiBpolkitd+15.40MiB5KiB=13.6MiB调谐22.5MiB+76.0KiB=22.6MiBlfd-睡眠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.9MiBnamed112.2MiB+479.5KiB=112.7MiB缓存主69.4MiB+58.6MiB=128.0MiBnginx(4)203.4MiB+309.5KiB=203.7MiBmysqld----------------------------------775.8MiB=================================