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参数来指定排序的顺序。
评论区