列出系统中 CPU 占用高的进程列表来确定。我认为只有两种方法能实现:使用 top 命令ps 命令。出于一些理由,我更倾向于用 top 命令而不是 ps 命令。但是两个工具都能达到你要的目的,所以你可以根据需求决定使用哪个。

1 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程

在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个。top 命令提供了 Linux 系统运行中的进程的动态实时视图。它能显示系统的概览信息和 Linux 内核当前管理的进程列表。它显示了大量的系统信息,如 CPU 使用、内存使用、交换内存、运行的进程数、目前系统开机时间、系统负载、缓冲区大小、缓存大小、进程 PID 等等。默认情况下,top 命令的输出结果按 CPU 占用进行排序,每 5 秒中更新一次结果。如果你想要一个更清晰的视图来更深入的分析结果,以批处理模式运行 top 命令 是最好的方法。

  1. # top -b | head -50
  2. top - 00:19:17 up 14:23, 1 user, load average: 2.46, 2.18, 1.97
  3. Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie
  4. %Cpu0 : 10.4 us, 3.0 sy, 0.0 ni, 83.9 id, 0.0 wa, 1.3 hi, 1.3 si, 0.0 st
  5. %Cpu1 : 17.0 us, 3.0 sy, 0.0 ni, 78.7 id, 0.0 wa, 0.3 hi, 1.0 si, 0.0 st
  6. %Cpu2 : 13.0 us, 4.0 sy, 0.0 ni, 81.3 id, 0.0 wa, 0.3 hi, 1.3 si, 0.0 st
  7. %Cpu3 : 12.3 us, 3.3 sy, 0.0 ni, 82.5 id, 0.3 wa, 0.7 hi, 1.0 si, 0.0 st
  8. %Cpu4 : 12.2 us, 3.0 sy, 0.0 ni, 82.8 id, 0.7 wa, 0.3 hi, 1.0 si, 0.0 st
  9. %Cpu5 : 6.4 us, 2.7 sy, 0.0 ni, 89.2 id, 0.0 wa, 0.7 hi, 1.0 si, 0.0 st
  10. %Cpu6 : 26.7 us, 3.4 sy, 0.0 ni, 68.6 id, 0.0 wa, 0.7 hi, 0.7 si, 0.0 st
  11. %Cpu7 : 15.6 us, 4.0 sy, 0.0 ni, 78.8 id, 0.0 wa, 0.7 hi, 1.0 si, 0.0 st
  12. KiB Mem : 16248556 total, 1448920 free, 8571484 used, 6228152 buff/cache
  13. KiB Swap: 17873388 total, 17873388 free, 0 used. 4596044 avail Mem
  14. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  15. 2179 daygeek 20 3106324 613584 327564 S 79.5 3.8 14:19.76 Web Content
  16. 1714 daygeek 20 4603372 974600 403504 S 20.2 6.0 65:18.91 firefox
  17. 1227 daygeek 20 4192012 376332 180348 S 13.9 2.3 20:43.26 gnome-shell
  18. 18324 daygeek 20 3296192 766040 127948 S 6.3 4.7 9:18.12 Web Content
  19. 1170 daygeek 20 1008264 572036 546180 S 6.0 3.5 18:07.85 Xorg
  20. 4684 daygeek 20 3363708 1.1g 1.0g S 3.6 7.2 13:49.92 VirtualBoxVM
  21. 4607 daygeek 20 4591040 1.7g 1.6g S 3.0 11.0 14:09.65 VirtualBoxVM
  22. 1211 daygeek 9 -11 2865268 21032 16588 S 2.0 0.1 10:46.37 pulseaudio
  23. 4562 daygeek 20 1096888 28812 21044 S 1.7 0.2 4:42.93 VBoxSVC
  24. 1783 daygeek 20 3123888 376896 134788 S 1.3 2.3 39:32.56 Web Content
  25. 3286 daygeek 20 3089736 404088 184968 S 1.0 2.5 41:57.44 Web Content

上面的命令的各部分解释:

  • top:命令
  • -b:批次档模式
  • head -50:显示输出结果的前 50 个
  • PID:进程的 ID
  • USER:进程的归属者
  • PR:进程的等级
  • NI:进程的 NICE 值
  • VIRT:进程使用的虚拟内存
  • RES:进程使用的物理内存
  • SHR:进程使用的共享内存
  • S:这个值表示进程的状态: S = 睡眠,R = 运行,Z = 僵尸进程
  • %CPU:进程占用的 CPU 比例
  • %MEM:进程使用的 RAM 比例
  • TIME+:进程运行了多长时间
  • COMMAND:进程名字

如果你想看命令的完整路径而不是命令名字,以运行下面的格式 top 命令:

  1. # top -c -b | head -50
  2. top - 00:28:49 up 14:33, 1 user, load average: 2.43, 2.49, 2.23
  3. Tasks: 305 total, 1 running, 304 sleeping, 0 stopped, 0 zombie
  4. %Cpu0 : 11.7 us, 3.7 sy, 0.0 ni, 82.3 id, 0.0 wa, 1.0 hi, 1.3 si, 0.0 st
  5. %Cpu1 : 13.6 us, 3.3 sy, 0.0 ni, 81.1 id, 0.7 wa, 0.3 hi, 1.0 si, 0.0 st
  6. %Cpu2 : 10.9 us, 2.6 sy, 0.0 ni, 85.1 id, 0.0 wa, 0.3 hi, 1.0 si, 0.0 st
  7. %Cpu3 : 16.0 us, 2.6 sy, 0.0 ni, 80.1 id, 0.0 wa, 0.3 hi, 1.0 si, 0.0 st
  8. %Cpu4 : 9.2 us, 3.6 sy, 0.0 ni, 85.9 id, 0.0 wa, 0.3 hi, 1.0 si, 0.0 st
  9. %Cpu5 : 15.6 us, 2.9 sy, 0.0 ni, 80.5 id, 0.0 wa, 0.3 hi, 0.7 si, 0.0 st
  10. %Cpu6 : 11.6 us, 4.3 sy, 0.0 ni, 82.7 id, 0.0 wa, 0.3 hi, 1.0 si, 0.0 st
  11. %Cpu7 : 8.0 us, 3.0 sy, 0.0 ni, 87.3 id, 0.0 wa, 0.7 hi, 1.0 si, 0.0 st
  12. KiB Mem : 16248556 total, 1022456 free, 8778508 used, 6447592 buff/cache
  13. KiB Swap: 17873388 total, 17873388 free, 0 used. 4201560 avail Mem
  14. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  15. 18527 daygeek 20 3151820 624808 325748 S 52.8 3.8 59:26.72 /usr/lib/firefox/firefox -contentproc -childID 18 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /+
  16. 1714 daygeek 20 4764668 910940 443228 S 21.5 5.6 68:59.33 /usr/lib/firefox/firefox --new-window
  17. 1227 daygeek 20 4193108 377344 181404 S 11.6 2.3 21:47.36 /usr/bin/gnome-shell
  18. 1170 daygeek 20 1008820 572700 546844 S 5.6 3.5 19:05.10 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3
  19. 18324 daygeek 20 3300288 789344 127948 S 5.0 4.9 9:46.89 /usr/lib/firefox/firefox -contentproc -childID 16 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /+
  20. 4684 daygeek 20 3363708 1.1g 1.0g S 3.6 7.2 14:10.18 /usr/lib/virtualbox/VirtualBoxVM --comment CentOS7 --startvm 002f47b8-2af2-48f5-be1d-67b67e03514c --no-startvm-errormsgbox
  21. 4607 daygeek 20 4591040 1.7g 1.6g S 3.0 11.0 14:28.86 /usr/lib/virtualbox/VirtualBoxVM --comment Ubuntu-18.04 --startvm e8c32dbb-8b01-41b0-977a-bf28b9db1117 --no-startvm-errormsgbox
  22. 1783 daygeek 20 3132640 451924 132168 S 2.6 2.8 39:49.66 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/l+
  23. 1211 daygeek 9 -11 2865268 21272 16828 S 2.0 0.1 11:01.29 /usr/bin/pulseaudio --daemonize=no
  24. 4562 daygeek 20 1096888 28812 21044 S 1.7 0.2 4:49.33 /usr/lib/virtualbox/VBoxSVC --auto-shutdown
  25. 16865 daygeek 20 3073364 430596 124652 S 1.3 2.7 8:04.02 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /+
  26. 2179 daygeek 20 2945348 429644 172940 S 1.0 2.6 15:20.90 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 7821 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /us+

2 使用 ps 命令找出 Linux 中 CPU 占用高的进程

ps 是进程状态process status的缩写,它能显示系统中活跃的/运行中的进程的信息。它提供了当前进程及其详细信息,诸如用户名、用户 ID、CPU 使用率、内存使用、进程启动日期时间、命令名等等的快照。

  1. # ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head
  2. PID PPID %MEM %CPU CMD
  3. 18527 1714 4.2 40.3 /usr/lib/firefox/firefox -contentproc -childID 18 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
  4. 1714 1152 5.6 8.0 /usr/lib/firefox/firefox --new-window
  5. 18324 1714 4.9 6.3 /usr/lib/firefox/firefox -contentproc -childID 16 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
  6. 3286 1714 2.0 5.1 /usr/lib/firefox/firefox -contentproc -childID 14 -isForBrowser -prefsLen 8078 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
  7. 1783 1714 3.0 4.5 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
  8. 1227 1152 2.3 2.5 /usr/bin/gnome-shell
  9. 1170 1168 3.5 2.2 /usr/lib/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -nolisten tcp -background none -noreset -keeptty -verbose 3
  10. 16865 1714 2.5 2.1 /usr/lib/firefox/firefox -contentproc -childID 15 -isForBrowser -prefsLen 10002 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab
  11. 2179 1714 2.7 1.8 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 7821 -prefMapSize 213431 -parentBuildID 20191031132559 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 1714 true tab

上面的命令的各部分解释:

  • ps:命令名字
  • -e:选择所有进程
  • -o:自定义输出格式
  • –sort=-%cpu:基于 CPU 使用率对输出结果排序
  • head:显示结果的前 10 行
  • PID:进程的 ID
  • PPID:父进程的 ID
  • %MEM:进程使用的 RAM 比例
  • %CPU:进程占用的 CPU 比例
  • Command:进程名字

如果你只想看命令名字而不是命令的绝对路径,以运行下面的格式 ps 命令:

  1. # ps -eo pid,ppid,%mem,%cpu,comm --sort=-%cpu | head
  2. PID PPID %MEM %CPU COMMAND
  3. 18527 1714 4.1 40.4 Web Content
  4. 1714 1152 5.7 8.0 firefox
  5. 18324 1714 4.9 6.3 Web Content
  6. 3286 1714 2.0 5.1 Web Content
  7. 1783 1714 3.0 4.5 Web Content
  8. 1227 1152 2.3 2.5 gnome-shell
  9. 1170 1168 3.5 2.2 Xorg
  10. 16865 1714 2.4 2.1 Web Content
  11. 2179 1714 2.7 1.8 Web Content

在 Linux 中找出 CPU 占用高的进程的更多相关文章

  1. 如何在 Linux 中找出 CPU 占用高的进程

    1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程 在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个.top 命令提供了 Linux ...

  2. 在 Linux 中找出内存消耗最大的进程

    1 使用 ps 命令在 Linux 中查找内存消耗最大的进程 ps 命令用于报告当前进程的快照.ps 命令的意思是"进程状态".这是一个标准的 Linux 应用程序,用于查找有关在 ...

  3. 如何在 Linux 中找出最近或今天被修改的文件

    1. 使用 ls 命令,只列出你的 home 文件夹中今天的文件. ls -al --time-style=+%D | grep `date +%D` 其中: -a- 列出所有文件,包括隐藏文件 -l ...

  4. Linux中找出占用内存最多的前N个进程

    一.使用ps命令 ps -aux | sort -k4nr | head -N *命令详解: 1. head:-N可以指定显示的行数,默认显示10行. 2. ps:参数a指代all——所有的进程,u指 ...

  5. 查找Linux中内存和CPU使用率最高的进程

    下面的命令会查看到按照RAM和CPU降序方式的前最高几名进程的列表: [root@iZ25pvjcsyhZ ~]# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem ...

  6. Java中的CPU占用高和内存占用高的问题排查

    下面通过模拟实例分析排查Java应用程序CPU和内存占用过高的过程.如果是Java面试,这2个问题在面试过程中出现的概率很高,所以我打算在这里好好总结一下. 1.Java CPU过高的问题排查 举个例 ...

  7. [转帖]Linux中buff/cache内存占用过高解决办法

    Linux中buff/cache内存占用过高解决办法 https://www.cnblogs.com/rocky-AGE-24/p/7629500.html /proc/sys/vm/drop_cac ...

  8. SQL Server中查询CPU占用高的SQL语句

    SQL Server中查询CPU占用高的情况,会用到sys.sysprocesses ,dm_exec_sessions ,dm_exec_requests 一.查看当前的数据库用户连接有多少 USE ...

  9. 转载:SQL Server中查询CPU占用高的SQL语句

    SQL Server中查询CPU占用高的SQL语句 SQL Server 表变量的用法 究竟什么是敏捷测试--朱少民

随机推荐

  1. 在 SQL Server 中使用 Try Catch 处理异常

    如何在 SQL Server 中使用 Try Catch 处理错误? 从 SQL Server 2005 开始,我们在TRY 和 CATCH块的帮助下提供了结构错误处理机制.使用TRY-CATCH的语 ...

  2. 如何用车辆违章查询API接口进行快速开发

    最近公司项目有一个车辆违章查询显示的小功能,想着如果用现成的API就可以大大提高开发效率,所以在网上的API商店搜索了一番,发现了 APISpace,它里面的车辆违章查询API非常符合我的开发需求. ...

  3. python开发环境配置(Windows)

    简介 由于在搭建pyhon开发环境时会出现各种各样的问题,因此将这些问题记录下来 1.下载python 从官网下载对应系统的python版本(最新稳定版即可):官网地址为:python下载地址, 建议 ...

  4. 20220727-Java中多态总结

    目录 方法的多态 对象的多态 多态的注意事项和细节 向下转型 Java动态绑定机制 多态polymorphism:方法或者对象具有多种形态 方法的多态 方法的重载可以体现多态 代码示例 // 通过方法 ...

  5. SpringBoot整合RabbitMQ实现六种工作模式

    RabbitMQ主要有六种种工作模式,本文整合SpringBoot分别介绍工作模式的实现. 前提概念 生产者 消息生产者或者发送者,使用P表示: 队列 消息从生产端发送到消费端,一定要通过队列转发,使 ...

  6. 手动注入bean到spring容器

    ApplicationContext applicationContext = SpringContextUtils.getApplicationContext(); //将applicationCo ...

  7. odoo14 重启服务后权限不见了

    1 Odoo14权限更新有两个地方: 2 一.你在编写xml权限记录的时候没有将noupdate设置为'1'这样导致你每次升级模块,你的权限都会重置一遍. 3 二.你在运行odoo-bin服务的时候, ...

  8. 【原创】Python 二手车之家车辆档案数据爬虫

    本文仅供学习交流使用,如侵立删! 二手车之家车辆档案数据爬虫 先上效果图 环境 win10 python3.9 lxml.retrying.requests 需求分析 需求: 主要是需要车辆详情页中车 ...

  9. Python 阿里云盾滑块验证

    本文仅供学习交流使用,如侵立删! 记一次阿里云盾滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.pyautogui 分析 最近在做中国庭审公开网数据分析的时 ...

  10. 开源云真机平台-Sonic应用实践

    前言 Sonic是一款开源.支持分布式部署.在线自动化测试的私有云真机平台.偶然接触到这个平台是源于虫师的一篇公众号文章<基于Linux 部署 Sonic>,于是结合文章内容和官网尝试搭建 ...