文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在 Linux 中找到最消耗内存和 CPU 资源的进程

2024-12-02 00:14

关注

Linux 是一种开源且非常流行的操作系统,是在 Internet 上部署服务器和应用程序的首选方案。它非常受欢迎,因为它的命令行界面和内置工具可以帮助您快速执行任务并节省大量时间。

有时,由于高内存和 CPU 使用率,您的应用程序或网站非常缓慢或无响应。在这种情况下,您可以使用 ps 和 top 命令来确定哪些进程正在占用系统上的所有资源。

在这篇文章中,我们将解释如何在 Linux 中找到最消耗内存和 CPU 资源的进程。

先决条件

使用 ps 命令按内存和 CPU 使用率查找排名靠前的进程

ps 是一个 Linux 命令行实用程序,具有许多选项,可帮助您以不同格式显示输出。

要列出 Linux 中所有正在运行的进程,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ ps aux

这将向您展示所有正在运行的进程的概览:

您可以使用带有–sort参数的 ps 命令按内存和 CPU 使用率对输出进行排序。

使用 sort 参数的语法是:

ps aux --sort

要按 CPU 使用率查找运行次数最多的进程,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ ps aux --sort -%cpu

输出:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
linuxmi 1891 3.1 6.7 3992296 269128 ? Ssl 07:27 0:21 /usr/bin/gnom
linuxmi 2186 1.8 4.1 1268748 167000 ? Sl 07:27 0:13 /snap/snap-st
root 1362 1.5 1.1 455372 44384 ? Ssl 07:23 0:14 /usr/libexec/
linuxmi 1648 1.2 2.1 357848 87008 tty2 Sl+ 07:27 0:09 /usr/lib/xorg
linuxmi 3696 1.0 0.1 19928 5720 pts/2 Ss 07:39 0:00 bash

要按内存使用情况查找运行次数最多的进程,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ ps aux --sort -%mem

输出:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
linuxmi 1891 3.3 6.8 3992304 271720 ? Ssl 07:27 0:27 /usr/bin/gnom
linuxmi 2186 1.6 4.1 1268748 167000 ? Sl 07:27 0:13 /snap/snap-st
linuxmi 1648 1.6 2.2 357308 88936 tty2 Rl+ 07:27 0:13 /usr/lib/xorg
linuxmi 2352 0.1 2.1 764304 85808 ? Ssl 07:27 0:01 /usr/libexec/
linuxmi 2435 0.8 1.9 1199048 77292 ? Ssl 07:27 0:06 /usr/libexec/
linuxmi 1847 0.0 1.9 604112 76340 ? Ssl 07:27 0:00 /usr/libexec/

如果只想显示前 10 个内存消耗最大的进程,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ ps aux --sort -%mem | head -10

如果您只想显示命令名称而不是命令的完整路径,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ ps -eo pid,ppid,cmd,comm,%mem,%cpu --sort=-%mem | head -10

输出:

PID    PPID CMD                         COMMAND         %MEM %CPU
6310 5891 /usr/bin/gnome-shell gnome-shell 6.8 16.1
6528 5891 /snap/snap-store/582/usr/bi snap-store 2.6 8.4
5944 5935 /usr/lib/xorg/Xorg vt2 -dis Xorg 2.1 5.9
6658 5891 /usr/libexec/xdg-desktop-po xdg-desktop-por 2.1 1.4
6272 5891 /usr/libexec/gnome-remote-d gnome-remote-de 1.9 0.5
7249 5891 /usr/libexec/gnome-terminal gnome-terminal- 1.8 3.8
6719 6310 gjs /usr/share/gnome-shell/ gjs 1.7 1.8
6467 6285 /usr/libexec/evolution-data evolution-alarm 1.7 1.2
6120 5891 /snap/snapd-desktop-integra snapd-desktop-i 1.5 1.1

使用 top 命令按内存和 CPU 使用率查找排名靠前的进程

top 是另一个内置的 Linux 命令行实用程序,可用于显示 Linux 中所有正在运行的进程。您可以使用 top 命令的各种选项来根据您的要求过滤输出。

您可以使用带有-o标志的 top 命令来显示最消耗内存的进程:

linuxmi@linuxmi:~/www.linuxmi.com$ top -o %MEM

输出:

top - 07:51:04 up 28 min,  1 user,  load average: 0.35, 0.74, 0.54
任务: 300 total, 3 running, 297 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.5 us, 5.2 sy, 0.0 ni, 89.9 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
MiB Mem : 3890.2 total, 1039.1 free, 1170.5 used, 1680.6 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 2468.3 avail Mem
进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
6310 linuxmi 20 0 4064512 277496 132776 S 7.6 7.0 0:21.48 gnome-s+
6528 linuxmi 20 0 1137864 104216 67168 S 0.0 2.6 0:04.68 snap-st+
5944 linuxmi 20 0 359812 90444 56248 S 7.6 2.3 0:11.92 Xorg
6658 linuxmi 20 0 763856 85380 65372 S 0.0 2.1 0:00.85 xdg-des+
7249 linuxmi 20 0 1202060 76628 58760 R 4.6 1.9 0:05.55 gnome-t+
6272 linuxmi 20 0 604112 76256 61388 S 0.0 1.9 0:00.35 gnome-r+
6719 linuxmi 20 0 2840584 69488 50784 S 0.0 1.7 0:01.46 gjs
6467 linuxmi 20 0 920600 68768 52932 S 0.0 1.7 0:00.72 evoluti+
6120 linuxmi 20 0 224424 60256 44948 S 0.0 1.5 0:00.74 snapd-d+
7459 linuxmi 20 0 897360 58708 46240 S 0.0 1.5 0:00.58 update-+
1362 root 20 0 455504 44548 19876 S 0.0 1.1 0:23.34 package+
6046 linuxmi 20 0 570112 40568 33368 S 0.0 1.0 0:00.13 goa-dae+
6462 linuxmi 20 0 298024 39556 30536 S 0.0 1.0 0:00.97 vmtoolsd

如果您只想显示前 10 个内存消耗的进程,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ top -o %MEM | head -n 16

输出:

top - 07:54:12 up 31 min,  1 user,  load average: 0.01, 0.38, 0.43
任务: 297 total, 1 running, 296 sleeping, 0 stopped, 0 zombie
%Cpu(s): 10.0 us, 10.0 sy, 0.0 ni, 80.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3890.2 total, 1037.7 free, 1171.8 used, 1680.7 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 2467.0 avail Mem
进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
6310 linuxmi 20 0 4064524 277464 132776 S 5.6 7.0 0:23.08 gnome-s+
6528 linuxmi 20 0 1137864 104216 67168 S 0.0 2.6 0:04.71 snap-st+
5944 linuxmi 20 0 362476 90444 56248 S 0.0 2.3 0:13.51 Xorg
6658 linuxmi 20 0 763600 85380 65372 S 0.0 2.1 0:00.87 xdg-des+
7249 linuxmi 20 0 1202444 77116 58828 S 0.0 1.9 0:06.73 gnome-t+
6272 linuxmi 20 0 604112 76256 61388 S 0.0 1.9 0:00.35 gnome-r+
6719 linuxmi 20 0 2840584 69392 50784 S 0.0 1.7 0:01.53 gjs

6467 linuxmi 20 0 920600 68768 52932 S 0.0 1.7 0:00.72 evoluti+
6120 linuxmi 20 0 224424 60256 44948 S 0.0 1.5 0:00.74 snapd-d+

如果您只想显示前 10 个 CPU 消耗量最高的进程,请运行以下命令:

linuxmi@linuxmi:~/www.linuxmi.com$ top -o %CPU | head -n 16

输出:

top - 07:57:03 up 34 min,  1 user,  load average: 0.20, 0.31, 0.40
任务: 299 total, 1 running, 298 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.3 us, 13.2 sy, 0.0 ni, 81.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3890.2 total, 1060.1 free, 1149.1 used, 1681.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 2489.7 avail Mem
进程号 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
7732 linuxmi 20 0 21916 4596 3724 R 11.8 0.1 0:00.04 top
6310 linuxmi 20 0 4064572 277584 132776 S 5.9 7.0 0:29.58 gnome-s+
7249 linuxmi 20 0 1203916 78376 58948 S 5.9 2.0 0:10.31 gnome-t+
1 root 20 0 166496 11688 8152 S 0.0 0.3 0:06.31 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.07 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par+
5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
7 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker+

结论

在这篇文章中,我们解释了如何在 Linux 中找到最消耗 CPU 和内存的进程。您可以使用这些命令来解决 Linux 中与性能相关的问题。

来源:Linux公社内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯