在Linux系统管理中,性能监控是确保系统运行平稳的重要环节。atop是一款强大的性能监控工具,可以提供详细的系统性能数据,包括CPU、内存、磁盘和网络的使用情况。本文将介绍如何安装、配置和使用atop来监控Linux系统的性能。

安装atop

在绝大多数Linux发行版本中,atop工具能够便捷地通过各自内置的软件包管理系统进行安装。

  • 在Debian/Ubuntu上:
sudo apt update
sudo apt install atop
  • 在CentOS/RHEL上:
sudo yum install atop

atop的配置

编辑配置文件,修改采样周期。

[root@k8s-master ~]# cat /etc/sysconfig/atop
LOGOPTS=""
LOGINTERVAL=600        #监控周期为600s,也就是每隔600s抓取一次数据,一般我们修改为30
LOGGENERATIONS=28      #日志保留时间为28,一般我们设置为7天
LOGPATH=/var/log/atop  #日志路径
  • LOGINTERVAL默认是600,可以修改成30,单位秒。
  • 默认atop日志保存周期为28天,可以根据实际修改LOGGENERATIONS的值为7,单位为天。

启动atop

安装完成后,可以通过以下命令启动atop

systemctl start atop

检查是否启动成功,active(running)表示运行正常。如下图所示:

理解atop的界面

如下图所示,展示了一部分监控指标及其相应数值。需要注意的是,这些数值会依据实际的采样周期和所使用的atop软件版本的不同而有所变化。

主要参数说明如下:

  • ATOP行:主机名、信息采样日期和时间点。

  • PRC行:进程整体运行情况。

  • #sysuser:内核态和用户态所占 CPU 的时间值。

  • #proc:进程总数。

  • #zombie:僵死进程的数量。

  • #exit:采样周期期间退出的进程数量。

  • CPU行:CPU 整体(即多核 CPU 作为一个整体 CPU 资源)的使用情况。CPU 行的各字段数值相加结果为 N*100%,N 为 CPU 核数。

  • #sysuser:内核态和用户态所占 CPU 的时间比例。

  • #irq:CPU被用于处理中断的时间比例。

  • #idle:CPU 处在完全空闲状态的时间比例。

  • #wait:CPU处在进程等待磁盘 IO ,导致 CPU 空闲状态的时间比例。

  • CPL行:CPU 负载情况。

  • #avg1avg5avg15:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量。

  • #csw:指示上下文交换次数。

  • #intr:指示中断发生次数。

  • MEM 行:内存的使用情况。

  • #tot:物理内存大小。

  • #free:空闲的物理内存大小

  • #cache :用于页缓存的内存大小。

  • #buff:用于文件缓存的内存大小。

  • #slab:系统内核占用的内存大小。

  • SWP行:交换空间的使用情况。

  • #tot:交换区总量。

  • #free:空闲交换空间大小。

  • DSK 行:磁盘使用情况,每一个磁盘设备对应一列。如果有 sdb 设备,那么增加一行 DSK 信息。

  • #sda:磁盘设备标识。

  • #busy:磁盘忙时比例。

  • #read 及 write:读、写请求数量。

  • NET行:多列 NET 展示了网络状况,包括传输层(TCP 和 UDP)、IP 层以及各活动的网口信息。

  • #xxxxxi:各层或活动网口收包数目。

  • #xxxxxo:各层或活动网口发包数目。

监控历史数据

atop还可以记录历史数据,以便后续分析。记录的文件通常存储在/var/log/atop/目录中。如下所示:

root@didiplus:~# ls -lh /var/log/atop/
total 460M
-rw-r--r-- 1 root root 53M Oct  3 00:00 atop_20241002
-rw-r--r-- 1 root root 47M Oct  4 00:00 atop_20241003
-rw-r--r-- 1 root root 51M Oct  5 00:00 atop_20241004
-rw-r--r-- 1 root root 66M Oct  6 00:00 atop_20241005
-rw-r--r-- 1 root root 50M Oct  7 00:00 atop_20241006
-rw-r--r-- 1 root root 54M Oct  8 00:00 atop_20241007
-rw-r--r-- 1 root root 62M Oct  9 00:00 atop_20241008
-rw-r--r-- 1 root root 57M Oct 10 00:00 atop_20241009
-rw-r--r-- 1 root root 24M Oct 10 10:41 atop_20241010

要查看历史数据,可以使用以下命令:

atop -r /var/log/atop/atop_YYYYMMDD

YYYYMMDD替换为所需的日期。例如我要查看10月2号,如下图所示:

 atop -r /var/log/atop/atop_20241002

自定义atop的参数

可以通过命令行参数自定义atop的行为。例如:

  • 使用-s参数可以设置刷新时间(单位为秒):
atop -s 5
  • 使用-P参数可以显示特定的进程信息,例如CPU或内存使用:
atop -P CPU

总结

atop是一款功能强大的Linux性能监控工具,能够提供实时和历史的系统性能数据。通过合理配置和使用atop,系统管理员可以更好地监控和优化系统性能,提高系统的稳定性和响应速度。

推荐阅读