atop介绍
atop
是一个强大的性能监控工具,它提供了多个参数来帮助用户以不同的方式查看和分析系统性能。以下是一些常用的 atop
参数:
常用命令
-r:读取历史记录文件。您可以使用这个参数后跟文件路径来查看过去的性能数据。
-l:指定日志文件的记录间隔时间(以分钟为单位)。
-b:指定开始查看记录的时间。
-e:指定结束查看记录的时间。
快捷键
以2.30
版本为例,有如下快捷键。其他版本快捷键略有不同,可以sudo atop
打开监控屏幕后,输入h
显示具体快捷键
g - 显示通用信息(默认)
m - 显示内存详细信息
d - 显示磁盘详细信息
n - 显示网络详细信息
s - 显示调度和线程组信息
v - 显示各种信息(父进程ID、用户/组、日期/时间、状态、退出代码)
c - 显示每个进程的完整命令行
o - 使用自定义的输出行定义
排序进程列表:
C - 按 CPU 活动排序
M - 按内存消耗排序
D - 按磁盘活动排序
N - 按网络活动排序
A - 按最活跃的系统资源排序(自动模式)
累计数据:
u - 按用户显示总资源消耗
p - 按程序(即相同进程名)显示总资源消耗
j - 按容器显示总资源消耗
进程选择(在标题行中显示的键):
U - 聚焦特定用户名(正则表达式)
P - 聚焦特定程序名(正则表达式)
J - 聚焦特定容器ID(CID)
/ - 聚焦特定命令行字符串(正则表达式)
I - 聚焦特定进程ID(PID)
系统资源选择(在标题行中显示的键):
S - 聚焦特定系统资源(正则表达式)
屏幕操作:
^L - 重绘屏幕
PgDn - 显示进程列表的下一页(或 ^F)
ArDn - 向下箭头显示进程列表的下一行
PgUp - 显示进系列表的上一页(或 ^B)
ArUp - 向上箭头显示进程列表的上一行
ArRt - 向右箭头显示完整命令行的下一个字符
ArLt - 向左箭头显示完整命令行的前一个字符
展示(在标题行中显示的键):
y - 显示单独的线程(切换)
a - 显示所有进程(默认:活动进程)(切换)
f - 显示固定数量的标题行(切换)
F - 抑制排序系统资源(切换)
G - 抑制输出中已退出的进程(切换)
x - 不使用颜色来指示高占用(切换)
1 - 显示平均每秒值而不是总值(切换)
R - 计算比例集大小(PSIZE)(切换)
通过这些快捷键,您可以快速地切换到不同的数据视图,以便更有效地监控和分析系统性能。
ubuntu中使用apt和dpgk管理atop包
在大多数情况下,使用 apt
命令会更方便,因为它会自动处理软件包的依赖问题。而 dpkg
则需要手动管理这些依赖。不过,当涉及到删除软件包时,两者都能够删除软件包和其配置文件,但 dpkg
不会自动删除由软件包的依赖项。
apt卸载atop
如果之前下载过atop包,那么需要卸载软件包
如要保留配置文件,请执行下面命令卸载,这个命令对于dpkg安装的包同样适用
sudo apt remove atop
如果需要完全卸载软件和配置文件,请执行下面的卸载命令,这个命令对于dpkg安装的包同样适用
sudo apt purge atop
apt方式安装
sudo apt install atop
atop安装后会在/usr/share/atop下生成两个文件 atop.daily
和 atop.wrapper
atop.daily
和 atop.wrapper
文件在 atop 的日常运行和日志管理中扮演着重要的角色。
atop.daily:
这个文件通常是一个脚本,负责atop
日志的日常轮换。它定义了atop
日志文件的生成频率和保留策略。例如,您可以在这个文件中设置日志文件的保存周期和过期时间,以及日志文件的命名规则。通常,atop.daily
会被定时任务(如cron
)调用,以确保日志文件按预期轮换和维护。
atop.wrapper:
这个文件是 atop的一个包装脚本,它通常用于启动atop
服务,并确保atop
以正确的参数运行。它可能包含了一些特定的环境设置或预配置的启动参数,以便atop
能够以预期的方式运行。在某些系统中,atop.wrapper
可能还负责处理权限提升,以便atop
可以以更高权限运行,从而收集更详细的系统信息
dpkg卸载软件包
还可以使用dkpg卸载dpgk安装的软件包,这个命令对于apt安装的包同样适用。
sudo dpkg --purge atop
不过由于dpkg并不能管理依赖,所以还是推荐使用apt卸载
dpkg方式安装
apt虽然安装更简单,但是,想要安装指定的版本使用apt安装不够方便,这个时候可以在atop官方网站下载rpm包
不过需要注意的是,dpkg 可以安装、卸载和管理 .deb 软件包,但它不会自动处理软件包的依赖关系。如果使用 dpkg 安装一个软件包,可能需要手动安装所有必需的依赖。
这里加入ubuntu系统是16.04,那么请下载1.26或相近的版本,这里我下载的是1.25版本
wget --no-check-certificate https://www.atoptool.nl/download/atop-1.25-1.x86_64.rpm
将rpm包转换为deb包,需要使用alien工具
sudo apt install alien
转换rpm包为deb
sudo alien -d atop-1.25-1.x86_64.rpm
使用dpkg安装atop
sudo dpkg -i atop_1.25-2_amd64.deb
查看atop是否可以成功运行
sudo atop
如果报错Not enough screen-lines available (need at least 94 lines),Resize window or start atop with the -l flagto limit system-resources
,请加上-l参数,或者也可以指定行数 -l 50
sudo atop -l
查看atop的版本
atop -V
Version: 2.3.0 - 2017/03/25 09:59:59 <gerlof.langeveld@atoptool.nl>
安装atop.service
dpkg安装的包,执行重启sudo systemctl restart atop.service
无效,所以这里需要把service加载到system配置中
新增service服务
sudo vim /etc/systemd/system/atop.service
[Unit]
Description=Atop Process Monitor
After=network.target
[Service]
ExecStart=/bin/sh -c 'exec /usr/bin/atop -a -w /var/log/atop/atop_$(date +%%Y%%m%%d).log 60'
ExecStartPost=/bin/sh -c 'find /var/log/atop/ -name "atop_*.log" -type f -mtime +7 -delete'
[Install]
WantedBy=multi-user.target
在这个配置中:
- ExecStart 使用 %Y%m%d 格式来指定日志文件名,这样每天都会生成一个新的日志文件,例如 atop_20240325.log。
- ExecStartPost 使用 find 命令来删除超过7天的日志文件,以避免日志文件占用太多空间。
重新加载 systemd 配置并启动 atop 服务:
sudo systemctl daemon-reload
sudo systemctl start atop.service
如果希望 atop 在系统启动时自动启动,可以使用以下命令来启用 atop 服务:
sudo systemctl enable atop.service
更新统计频率
如果是2.3.0的版本,请执行下面的命令,将INTERVAL=600
改成INTERVAL=60
,表示每1分钟统计一次
sudo vim /usr/share/atop/atop.daily
如果是1.26的版本,请执行下面的命令
sudo vim /etc/default/atop
如果是1.25版本,请执行下面的命令
sudo vim /etc/atop/atop.daily
如果不知道atop配置INTERVAL的文件在哪里,可以使用dpkg -L查询这个安装包所有相关的文件和目录,不管安装方式是dpgk方式安装,还是apt方式安装
dpkg -L atop
重启atop
sudo /etc/init.d/atop restart
或者
sudo systemctl restart atop.service
查看某个时间段内的统计信息
atop -r /var/log/atop/atop_YYYYMMDD -b 17:00 -e 18:00
参考: Linux命令之atop