侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux atop命令教程:如何监控系统资源的负载情况(附实例详解和注意事项)

Linux atop命令介绍

atop是一个交互式的系统监控工具,它可以显示系统资源的负载情况,包括CPU,内存,磁盘和网络等。它还可以显示每个进程和线程的资源使用情况,甚至可以显示已经关闭或完成的进程的资源消耗。atop的一个优点是它可以在后台持续运行,记录和报告系统的活动,这对于长期分析服务器的性能很有帮助。

atop的全称是Advanced System and Process Monitor,它是由Gerlof Langeveld开发的,最初发布于2001年。

Linux atop命令适用的Linux版本

atop命令可以在大多数Linux发行版上运行,但是一些发行版可能没有预装atop,需要手动安装。例如,Debian/Ubuntu用户可以使用以下命令安装atop:

[linux@bashcommandnotfound.cn ~]$ sudo apt install atop

CentOS/Fedora用户可以使用以下命令安装atop:

[linux@bashcommandnotfound.cn ~]$ sudo yum install atop

如果你使用的是其他发行版,你可以使用你的标准包管理器,后面跟上atop关键字来安装atop。

另外,atop还可以使用netatop内核模块来监控TCP,UDP和网络带宽的使用情况。如果你想使用这个功能,你需要额外安装netatop模块,具体方法可以参考[https://www.atoptool.nl/netatop.php]。

Linux atop命令的基本语法

atop命令的基本语法如下:

atop [options]

其中,options可以是以下参数之一或多个:

  • -1:显示每秒的平均值,而不是累计值。
  • -a:只显示活跃的进程,即资源使用超过阈值的进程。
  • -c:显示每个进程的完整命令行,而不是程序名。
  • -d:显示磁盘相关的信息,包括每个磁盘的读写速度和利用率。
  • -m:显示内存相关的信息,包括每个进程的内存占用和交换空间使用情况。
  • -n:显示网络相关的信息,包括每个网络接口的流量和利用率。
  • -s:显示调度相关的信息,包括每个进程的优先级和状态。
  • -v:显示各种信息,包括每个进程的父进程ID,用户,启动时间等。
  • -y:显示线程相关的信息,包括每个线程的资源使用情况和标识符。
  • -h:显示帮助信息,包括所有可用的参数和快捷键。

Linux atop命令的常用选项或参数说明

atop命令有很多选项或参数,可以用来控制输出的内容和格式。这里我们只介绍20个最常用的选项或参数,如果你想了解更多的选项或参数,你可以使用-h参数查看帮助信息。

选项或参数说明
-1显示每秒的平均值,而不是累计值。这对于分析系统的瞬时性能很有用。
-a只显示活跃的进程,即资源使用超过阈值的进程。这可以帮助你快速找出消耗资源最多的进程。
-c显示每个进程的完整命令行,而不是程序名。这可以帮助你了解进程的具体参数和选项。
-d显示磁盘相关的信息,包括每个磁盘的读写速度和利用率。这可以帮助你分析磁盘的性能和瓶颈。
-m显示内存相关的信息,包括每个进程的内存占用和交换空间使用情况。这可以帮助你分析内存的使用和压力。
-n显示网络相关的信息,包括每个网络接口的流量和利用率。这可以帮助你分析网络的性能和瓶颈。
-s显示调度相关的信息,包括每个进程的优先级和状态。这可以帮助你分析进程的运行情况和调度策略。
-v显示各种信息,包括每个进程的父进程ID,用户,启动时间等。这可以帮助你了解进程的来源和属性。
-y显示线程相关的信息,包括每个线程的资源使用情况和标识符。这可以帮助你分析多线程程序的性能和问题。
-g按照指定的组名来显示进程的资源使用情况。这可以帮助你分析某个组的总体性能和负载。
-u按照指定的用户名来显示进程的资源使用情况。这可以帮助你分析某个用户的总体性能和负载。
-p按照指定的进程ID来显示进程的资源使用情况。这可以帮助你分析某个进程的详细性能和负载。
-P按照指定的CPU编号来显示CPU的资源使用情况。这可以帮助你分析某个CPU的详细性能和负载。
-d按照指定的磁盘编号来显示磁盘的资源使用情况。这可以帮助你分析某个磁盘的详细性能和负载。
-n按照指定的网络接口名来显示网络的资源使用情况。这可以帮助你分析某个网络接口的详细性能和负载。
-b以批处理模式运行atop,不显示任何输出,只记录系统的活动到日志文件中。这可以帮助你在后台收集系统的性能数据,以便以后分析。
-r从指定的日志文件中读取系统的活动,以回放模式显示输出。这可以帮助你在任何时间回顾系统的历史性能和问题。
-w将系统的活动记录到指定的日志文件中,以追加模式写入。这可以帮助你自定义日志文件的位置和名称。
-S改变atop的采样间隔,单位是秒。默认的采样间隔是10秒,你可以根据需要调整这个值,但是不要太小,以免影响系统的性能。
-M改变atop的内存模式,有两种模式可选:normal和lazy。normal模式下,atop会在每次采样间隔后释放内存,以保持内存占用的稳定。lazy模式下,atop会在内存不足时才释放内存,以提高性能和效率

Linux atop命令的实例

实例1:查看系统的总体资源使用情况

如果你只想查看系统的总体资源使用情况,你可以直接运行atop命令,不加任何参数。这样,你就可以看到CPU,内存,磁盘,网络等资源的负载情况,以及每个进程和线程的资源消耗情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop

实例2:查看每秒的平均资源使用情况

如果你想查看每秒的平均资源使用情况,而不是累计的资源使用情况,你可以使用-1参数来运行atop命令。这样,你就可以看到每秒的平均CPU,内存,磁盘,网络等资源的负载情况,以及每个进程和线程的资源消耗情况。这对于分析系统的瞬时性能很有用。

[linux@bashcommandnotfound.cn ~]$ atop -1

实例3:只查看活跃的进程

如果你只想查看活跃的进程,即资源使用超过阈值的进程,你可以使用-a参数来运行atop命令。这样,你就可以快速找出消耗资源最多的进程,以及它们的资源使用情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -a

实例4:查看每个进程的完整命令行

如果你想查看每个进程的完整命令行,而不是程序名,你可以使用-c参数来运行atop命令。这样,你就可以了解进程的具体参数和选项,以及它们的资源使用情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -c

实例5:查看磁盘相关的信息

如果你想查看磁盘相关的信息,包括每个磁盘的读写速度和利用率,你可以使用-d参数来运行atop命令。这样,你就可以分析磁盘的性能和瓶颈,以及每个进程和线程的磁盘读写情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -d

实例6:查看内存相关的信息

如果你想查看内存相关的信息,包括每个进程的内存占用和交换空间使用情况,你可以使用-m参数来运行atop命令。这样,你就可以分析内存的使用和压力,以及每个进程和线程的内存消耗情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -m

实例7:查看网络相关的信息

如果你想查看网络相关的信息,包括每个网络接口的流量和利用率,你可以使用-n参数来运行atop命令。这样,你就可以分析网络的性能和瓶颈,以及每个进程和线程的网络通信情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -n

实例8:查看调度相关的信息

如果你想查看调度相关的信息,包括每个进程的优先级和状态,你可以使用-s参数来运行atop命令。这样,你就可以分析进程的运行情况和调度策略,以及每个进程和线程的调度信息。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -s

实例9:查看各种信息

如果你想查看各种信息,包括每个进程的父进程ID,用户,启动时间等,你可以使用-v参数来运行atop命令。这样,你就可以了解进程的来源和属性,以及它们的资源使用情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -v

实例10:查看线程相关的信息

如果你想查看线程相关的信息,包括每个线程的资源使用情况和标识符,你可以使用-y参数来运行atop命令。这样,你就可以分析多线程程序的性能和问题,以及每个线程的资源消耗情况。你可以使用上下方向键来滚动线程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -y

实例11:按照指定的组名来显示进程的资源使用情况

如果你想按照指定的组名来显示进程的资源使用情况,你可以使用-g参数来运行atop命令,后面跟上组名。这样,你就可以分析某个组的总体性能和负载,以及每个进程和线程的资源使用情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -g root

实例12:按照指定的用户名来显示进程的资源使用情况

如果你想按照指定的用户名来显示进程的资源使用情况,你可以使用-u参数来运行atop命令,后面跟上用户名。这样,你就可以分析某个用户的总体性能和负载,以及每个进程和线程的资源使用情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -u alice

实例13:按照指定的进程ID来显示进程的资源使用情况

如果你想按照指定的进程ID来显示进程的资源使用情况,你可以使用-p参数来运行atop命令,后面跟上进程ID。这样,你就可以分析某个进程的详细性能和负载,以及它的资源使用情况。你可以使用上下方向键来滚动进程列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -p 1234

这样,你就可以查看进程ID为1234的进程的资源使用情况,包括CPU,内存,磁盘,网络等。

实例14:按照指定的CPU编号来显示CPU的资源使用情况

如果你想按照指定的CPU编号来显示CPU的资源使用情况,你可以使用-P参数来运行atop命令,后面跟上CPU编号。这样,你就可以分析某个CPU的详细性能和负载,以及它的资源使用情况。你可以使用上下方向键来滚动CPU列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -P 0

这样,你就可以查看CPU编号为0的CPU的资源使用情况,包括CPU利用率,负载,频率等。

实例15:按照指定的磁盘编号来显示磁盘的资源使用情况

如果你想按照指定的磁盘编号来显示磁盘的资源使用情况,你可以使用-d参数来运行atop命令,后面跟上磁盘编号。这样,你就可以分析某个磁盘的详细性能和负载,以及它的资源使用情况。你可以使用上下方向键来滚动磁盘列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -d 1

这样,你就可以查看磁盘编号为1的磁盘的资源使用情况,包括磁盘读写速度,利用率,请求队列等。

实例16:按照指定的网络接口名来显示网络的资源使用情况

如果你想按照指定的网络接口名来显示网络的资源使用情况,你可以使用-n参数来运行atop命令,后面跟上网络接口名。这样,你就可以分析某个网络接口的详细性能和负载,以及它的资源使用情况。你可以使用上下方向键来滚动网络接口列表,或者使用左右方向键来切换不同的资源视图。

[linux@bashcommandnotfound.cn ~]$ atop -n eth0

这样,你就可以查看网络接口名为eth0的网络的资源使用情况,包括网络流量,利用率,错误数等。

实例17:以批处理模式运行atop,不显示任何输出,只记录系统的活动到日志文件中

如果你想以批处理模式运行atop,不显示任何输出,只记录系统的活动到日志文件中,你可以使用-b参数来运行atop命令。这样,你就可以在后台收集系统的性能数据,以便以后分析。你可以使用-w参数来指定日志文件的位置和名称,或者使用-S参数来指定采样间隔。

[linux@bashcommandnotfound.cn ~]$ atop -b -w /var/log/atop/mylog -S 60

这样,你就可以让atop以批处理模式运行,每隔60秒记录一次系统的活动,将日志文件保存在/var/log/atop/mylog中。

实例18:从指定的日志文件中读取系统的活动,以回放模式显示输出

如果你想从指定的日志文件中读取系统的活动,以回放模式显示输出,你可以使用-r参数来运行atop命令,后面跟上日志文件的位置和名称。这样,你就可以在任何时间回顾系统的历史性能和问题。你可以使用-t参数来指定回放的时间点,或者使用-b和-e参数来指定回放的开始和结束时间。

[linux@bashcommandnotfound.cn ~]$ atop -r /var/log/atop/mylog -t 12:00

这样,你就可以从/var/log/atop/mylog中读取系统的活动,从12:00开始回放输出。你可以使用空格键来暂停或继续回放,或者使用左右方向键来快进或快退。

实例19:改变atop的采样间隔,单位是秒

如果你想改变atop的采样间隔,单位是秒,你可以使用-S参数来运行atop命令,后面跟上采样间隔的值。默认的采样间隔是10秒,你可以根据需要调整这个值,但是不要太小,以免影响系统的性能。

[linux@bashcommandnotfound.cn ~]$ atop -S 30

这样,你就可以让atop以30秒为采样间隔来显示输出。

实例20:改变atop的内存模式,有两种模式可选:normal和lazy

如果你想改变atop的内存模式,有两种模式可选:normal和lazy。normal模式下,atop会在每次采样间隔后释放内存,以保持内存占用的稳定。lazy模式下,atop会在内存不足时才释放内存,以提高性能和效率。你可以使用-M参数来指定atop的内存模式,后面跟上normal或lazy。例如:

[linux@bashcommandnotfound.cn ~]$ atop -M lazy

这样,你就可以让atop以lazy模式运行,只在内存不足时释放内存。注意,这个参数只对批处理模式有效,即使用-b参数来运行atop的情况。如果你在交互模式下使用-M参数,atop会忽略它,并显示一个警告信息。

Linux atop命令的注意事项

在使用atop命令时,有一些注意事项需要了解,以避免出现错误或问题。以下是一些常见的注意事项:

  • atop命令需要root权限才能运行,否则会提示“permission denied”。你可以使用sudo或su命令来获取root权限,或者将atop命令的权限设置为setuid root。
  • atop命令会在后台持续运行,记录和报告系统的活动,除非你使用-q参数来退出。你可以使用-r参数来回放atop的日志文件,或者使用-w参数来指定日志文件的位置和名称。atop的默认日志文件位置是/var/log/atop/atop_YYYYMMDD,其中YYYYMMDD是日期。
  • atop命令会根据屏幕的大小来自动调整输出的列数,如果你想固定列数,你可以使用-C参数来指定列数,或者使用-f参数来冻结列数。
  • atop命令会根据资源的使用情况来自动调整输出的颜色,如果你想关闭颜色,你可以使用-z参数来禁用颜色,或者使用-Z参数来指定颜色方案。
  • atop命令会根据进程的资源使用情况来自动调整输出的排序,如果你想手动排序,你可以使用-o参数来指定排序的资源,或者使用-O参数来指定排序的顺序。
0

评论区