您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

如何在 Linux 中查看最消耗内存和 CUP 的进程

时间:2023-03-06 13:36:45  来源:微信公众号  作者:Linux码农

linux中,当占用过高的内存或者cpu时,会常常伴随着我们的服务处理变慢或者无响应,这个时候我们需要排查服务器中哪些进程占用过高导致的。或者有时候我们在测试我们的网站时,我们需要观察相关进程是否会出现内存增长过快。

top

top 命令包含更多的指标统计,相当于一个综合命令。

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

通过top命令我们可以快速实时知道服务器中哪些进程会占用过高内存和CPU信息。

# top
top - 09:15:26 up 10:40,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 177 total,   1 running, 176 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  3.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863088 total,   489784 free,   585660 used,   787644 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1098596 avAIl Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 10146 root    20   0  162028   2288   1524 R   6.2  0.1   0:00.02 top
     1 root      20   0  193908   7032   4212 S   0.0  0.4   0:02.74 systemd
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.18 ksoftirqd/0
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.05 migration/0
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
     9 root      20   0       0      0      0 S   0.0  0.0   0:01.36 rcu_sched
    10 root      rt   0       0      0      0 S   0.0  0.0   0:00.23 watchdog/0
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.22 watchdog/1
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.03 migration/1
    13 root      20   0       0      0      0 S   0.0  0.0   0:00.44 ksoftirqd/1
...

 

当我们想查看消耗内存前3的进程,我们可以执行如下命令

 



# top -o %MEM | head -n 3
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 root 20 0 4064524 277464 132776 S 5.6 7.0 0:23.08 gnome-s+ 
6528 root 20 0 1137864 104216 67168 S 0.0 2.6 0:04.71 snap-st+ 
5944 root 20 0 362476 90444 56248 S 0.0 2.3 0:13.51 Xorg 

同理,我们可以使用如下命令查看占用 CPU 前 3 的进程

我们也可以只查看某个具体进程的 top 信息

 

# top -p 12458 只查看 PID为 12458 的进程信息
top - 14:28:47 up 1 day, 15:34, 3 users, load average: 0.00,0.00,0.00
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 625344k total, 574124k used, 51220k free, 67024k buffers
Swap: 524280k total, Ok used, 524280k free, 409344k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12458 root 20 0 4520 1192 580 S 0.0 0.2 0:00.00 httpd

 

ps

ps 命令是“process status”的缩写,ps 命令用于显示当前系统的进程状态。

使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。

 

查找特定进程信息:

# ps -aux | grep ssh
root 1303 0.0 0.0 82468 1204 ? Ss Apr17 0:00 /usr/sbin/sshd
root 3260 0.0 0.0 52864 572 ? Ss Apr17 0:00 /usr/bin/ssh-agent 
root 24188 0.0 0.0 112652 956 pts/0 S+ 11:39 0:00 grep --color=auto ssh
...

 

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

 

# ps aux --sort -%cpu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1891 3.1 6.7 3992296 269128 ? Ssl 07:27 0:21 /usr/bin/gnom
root 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/
root 1648 1.2 2.1 357848 87008 tty2 Sl+ 07:27 0:09 /usr/lib/xorg
root 3696 1.0 0.1 19928 5720 pts/2 Ss 07:39 0:00 bash

...

同理,我们可以使用如下命令按内存的使用率进行排序

# ps aux --sort -%mem

我们可以根据我们应用程序的名字来获取内存和CPU的使用信

# ps aux | grep -E "manage|PID"
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1891 3.1 6.7 3992296 269128 ? Sl+ 07:27 0:21 ./manage

 

pidstat

pidstat 是 sysstat 工具的一个命令,用于监控全部或指定进程的 cpu、内存、线程、设备 IO 等系统资源的占用情况。pidstat 首次运行时显示自系统启动开始的各项统计信息,之后运行 pidstat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

cpu使用情况统计(-u)

使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样。

内存使用情况统计(-r)

使用-r选项,pidstat将显示各活动进程的内存使用统计:

# pidstat -r -p 13084 2 // 以2秒为周期显示进程13084 的内存使用信息
Linux 2.6.32.12-0.7-default (linux) 06/18/12 _x86_64_

15:08:18 PID minflt/s majflt/s VSZ RSS %MEM Command
15:08:19 13084 133835.00 0.00 15720284 15716896 96.26 core
15:08:20 13084 35807.00 0.00 15863504 15849756 97.07 core
15:08:21 13084 19273.87 0.00 15949040 15792944 96.72 core

以上各列输出的含义如下:

  • minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数
  • majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生
  • VSZ: 该进程使用的虚拟内存(以kB为单位)
  • RSS: 该进程使用的物理内存(以kB为单位)
  • %MEM: 该进程使用内存的百分比
  • Command: 拉起进程对应的命令


Tags: Linux   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08  Search: Linux  点击:(6)  评论:(0)  加入收藏
2024 年 Linux 和开源的六大趋势预测
让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造本年度的各种潮流。我们不能预见未来,所以无法精确预知将会发生什么,但根据目前...【详细内容】
2024-01-09  Search: Linux  点击:(92)  评论:(0)  加入收藏
对 Bash 感到厌倦?教你如何在 Linux 中更改默认 Shell
Bash 并不是唯一可供选择的 Shell。还存在数量众多的 Shell,它们都有一些独特的特性,例如 Zsh、Fish、Ksh 和 Xonsh。在你的系统中,你可以同时安装多个 Shell。要想将另一个 Sh...【详细内容】
2023-12-14  Search: Linux  点击:(199)  评论:(0)  加入收藏
适用于 Linux 的 LibreOffice 替代品
LibreOffice 是一个出色的开源文档套件。它预装在许多 Linux 发行版上,应该足以满足大多数用户的需求。然而,有些人可能不喜欢它的用户界面和功能集。某些用户可能想尝试其他...【详细内容】
2023-11-30  Search: Linux  点击:(122)  评论:(0)  加入收藏
十个最佳免费 Linux 防火墙工具
概述防火墙是保护网络边界的关键。防火墙会阻止敏感端口并过滤传入和传出流量,以阻止恶意连接并确保不会发生未经请求的数据交换。在自由开源软件的世界里,有很多防火墙解决方...【详细内容】
2023-11-28  Search: Linux  点击:(173)  评论:(0)  加入收藏
如何使用 Linux Xargs 命令,看这篇就够了
一、xargs 命令是什么?该xargs命令构建并执行通过标准输入提供的命令。它接受输入并将其转换为另一个命令的命令参数。此功能在文件管理中特别有用,可与rm、cp、mkdir和其他类...【详细内容】
2023-11-23  Search: Linux  点击:(176)  评论:(0)  加入收藏
揭秘 Linux 调度策略与 CFS 调度算法:解锁内核的奥秘
引言在当今计算机领域,Linux操作系统扮演着至关重要的角色,而其中的调度策略和内核结构体更是它多任务处理的核心。本文将引领你深入探索Linux中的调度策略,理解不同策略如何影...【详细内容】
2023-11-23  Search: Linux  点击:(216)  评论:(0)  加入收藏
使用 dialog 和 jq 在 Linux 上编写高效终端 TUI
为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此,文字用户界面Text User Interface(TUI)逐渐显示出其价值。它能减少用户输入命令时的误差,让终端操作更高效,提高生产力。以...【详细内容】
2023-11-19  Search: Linux  点击:(117)  评论:(0)  加入收藏
这些 Linux 基础命令你总得掌握吧
很多深度学习/机器学习/数据分析等领域(或者说大多数在Python环境下进行操作的领域)的初学者入门时是在Windows上进行学习,也得益于如Anaconda等工具把环境管理做的如此友善。...【详细内容】
2023-11-10  Search: Linux  点击:(169)  评论:(0)  加入收藏
如何在 Linux 下使用 WebP 图像
WebP 图像格式的定义2010 年 9 月,谷歌提出了 WebP 图像格式,其愿景是完全替代 JPEG、PNG 和 GIF 文件格式。就如你所见,WebP 是一个全能型的格式,继承了先前压缩算法的所有特性...【详细内容】
2023-09-25  Search: Linux  点击:(317)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(6)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(16)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(10)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(11)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(54)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(49)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(51)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(77)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(68)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(85)  评论:(0)  加入收藏
站内最新
站内热门
站内头条