Linux是一个开源且非常流行的操作系统,是在Internet上部署服务器和应用程序的首选解决方案。它非常受欢迎,因为它的命令行界面和内置工具可以帮助您快速执行任务并节省大量时间。有时,由于内存和CPU使用率过高,您的应用程序或网站非常缓慢或无响应。在这种情况下,您可以使用ps和top命令来确定哪些进程占用了系统上的所有资源。在本文中,我们将解释如何在Linux中找到内存和CPU消耗最多的进程。先决条件运行Linux的服务器在服务器上配置的root密码使用ps命令按内存和CPU使用率查找排名靠前的进程ps是一个Linux命令行实用程序,有许多选项可以帮助您以不同格式显示输出。要列出Linux中所有正在运行的进程,请运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$psaux这将向您显示所有正在运行的进程的概览:您可以将命令与--sort一起使用ps命令withparameters按内存和CPU使用率对输出进行排序。使用sort参数的语法是:psaux--sort要按CPU使用率查找运行最多的进程,请运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$psaux--sort-%cpuoutput:USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDlinuxmi18913.16.73992296269128?SSL07:270:21/usr/bin/gnomlinuxmi21861.84.11268748167000?小睡/小睡07:107:2-stroot13621.51.145537244384?ssl07:230:14/usr/libexec/linuxmi16481.22.135784887008tty2Sl+07:270:09/usr/lib/xorglinuxmi36961.00.152720ppts19928ts:390:00bash找到运行最多的按内存使用情况处理进程,运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$psaux--sort-%memOutput:USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDlinuxmi18913.36.83992304271720?SSL07:270:27/usr/bin/gnomlinuxmi21861.64.11268748167000?Sl07:270:13/snap/snap-stlinuxmi16481.62.235730888936tty2Rl+07:270:13/usr/lib/xorglinuxmi23520.12.176430485808?SSL07:270:01/usr/libexec/linuxmi24350.81.9119904877292?SSL07:270:06/usr/libexec/linuxmi18470.960411276340?ssl07:270:00/usr/libexec/如果只想显示前10个内存消耗进程,请运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$psaux--sort-%mem|head-10如果只想显示命令名称而不显示命令的完整路径,请运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$ps-eopid,ppid,cmd,comm,%内存,%cpu--sort=-%mem|head-10输出:PIDPPIDCMDCOMMAND%MEM%CPU63105891/usr/bin/gnome-shellgnome-shell6.816.165285891/snap/snap-store/582/usr/bisnap-store2.68.459445935/usr/lib/xorg/Xorgvt2-disXorg2.15.966585891/usr/libexec/xdg-desktop-poxdg-desktop-por2.11.462725891/usr/libexec/gnome-remote-dgnome-remote-de1.90.572495891/usr/libexec/gnome终端gnome终端1.83.867196310gjs/usr/share/gnome-shell/gjs1.71.864676285/usr/libexec/evolution-dataevolution-alarm1.71.261205891/snap/snapd-desktop-integrasnapd-desktop-i1.51.1使用top命令按内存和CPU使用率查找顶级进程top是另一个内置的Linux命令行实用程序,可用于显示Linux中所有正在运行的进程您可以使用top命令的各种选项根据您的要求过滤输出。您可以使用带有-o标志的top命令来显示内存消耗最多的进程:linuxmi@linuxmi:~/www.linuxmi.com$top-o%MEMoutput:top-07:51:04up28min,1用户,平均负载:0.35、0.74、0.54任务:总计300,运行3,睡眠297,停止0,僵尸0%Cpu(s):4.5us,5.2sy,0.0ni,89.9id,0.0wa,0.0hi,0.3si,0.0stMiB内存:总计3890.2,免费1039.1,已使用1170.5,1680.6buff/cacheMiB交换:总计2048.0,免费2048.0,已使用0.0。2468.3availMem进程号USERPRNIVIRTRESSHR%CPU%MEMTIME+COMMAND6310linuxmi2004064512277496132776S7.67.00:21.48gnome-s+6528linuxmi200113786410421667168S0.02.60:04.68snap-st+5944LinuxMi2003598129044456248S7.62.30:11.92XORG6658Linuxmi2007638568538065372S0.065372S0.02.10:00.857625661388S0.01.90:00.35gnome-r+6719linuxmi20028405846948850784S0.01.70:01.46gjs6467linuxmi2009206006876852932S0.01.70:00.72evoluti+6120linuxmi2002244246025644948S0.01.50:00.74snapd-d+7459linuxmi2008973605870846240S0.50:00.58UPDATE-+1362root2004555044454819876S0876S0.00:23.34包装401124056840114405684011240568401124056840114011401140114011401140114011405711that00.13goa-dae+6462linuxmi2002980243955630536S0.01.00:00.97vmtoolsdIfyoujustwanttoshowthetop10memoryconsumingprocesses,运行以下命令:linuxmi@linuxmi:~/www.linuxmi.com$top-o%MEM|head-n16输出:top-07:54:12up31min,1user,loadaverage:0.01,0.38,0.43tasks:297total,1running,296sleeping,0stopped,0zombie%Cpu(s):10.0us,10.0sy,0.0ni,80.0id,0.0wa,0.0hi,0.0si,0.0stMiB内存:总计3890.2,免费1037.7,1171.8used,1680.7buff/cacheMiB交换:总计2048.0,免费2048.0,已使用0.0。2467.0availMem进程号USERPRNIVIRTRESSHR%CPU%MEMTIME+COMMAND6310linuxmi2004064524277464132776S5.67.00:23.08gnome-s+6528linuxmi200113786410421667168s0.02.604.71SnAP-St+5944LinuxMi2003624765624S0.02.30:13.58l7636000/00x0.02.10:10:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:10:10:10:10:10:10:10:10:10:10:10.7249linuxmi20012024447711658828S0.01.90:06.73GNOME-T+6272LINUXMI2006041127625661388S0.01.90:00.35GNOME-R+6719Linuxmi20028405846939250784S0.01.01.70.01.70.01.701.701.701.701.701.7nlin:0:00.72evoluti+6120linuxmi2002244246025644948S0.01.50:00.74snapd-d+如果只想显示CPU消耗最高的前10个进程,运行以下命令:linuxmi@linuxmi~/www.linuxmi.com$顶部-o%CPU|head-n16输出:top-07:57:03up34min,1user,loadaverage:0.20,0.31,0.40任务:299total,1running,298sleeping,0stopped,0zombie%Cpu(s):5.3us,13.2sy,0.0ni,81.6id,0.0wa,0.0hi,0.0si,0.0stMiBMem:总计3890.2,免费1060.1,已使用1149.1,1681.0buff/cacheMiB交换:总计2048.0,免费2048.0,已使用0.02489.7可用mem进程用户prnivirtresshr%cpu%memtime+命令7732linuxmi2002191645963724r11.80.10:00.04顶部6310Linuxmi200406457227775722777584132776S5.97.00:29.0:29.58GNOMElin:29.58GNOMElinomelinomelinomelinomelinomelinome012039167837658948S5.92.00:10.31gnome-t+1root200166496116888152S0.00.30:06.31systemd2root200000S0.00.00root00-kthreadd2030.00.00:00.00rcu_gp4root0-20000I0.00.00:00.00rcu_par+5root0-20000I0.00.00:00.00netns7root0-20000I0.00.00:00.00kworker+结论在这篇文章中,我们解释了如何在Linux中找到最消耗CPU和内存的进程。您可以使用这些命令来解决Linux中与性能相关的问题。
