atop
atop 是一个高级的系统监控工具,类似于 top,但功能更为强大。它不仅能监控 CPU、内存、磁盘、网络等的使用情况,还能保存历史记录以便以后查看。它对性能瓶颈的分析尤其有用。
- 安装 atop
不同的 Linux 发行版有不同的安装方式。
在 Ubuntu/Debian 系统上:
bash复制代码sudo apt install atop
在 CentOS/RedHat 系统上:
bash复制代码sudo yum install atop
在 Fedora 系统上:
bash复制代码sudo dnf install atop
在 Arch Linux 系统上:
bash复制代码sudo pacman -S atop - 启动 atop
启动 atop 很简单,只需运行:
bash复制代码sudo atop
atop 会实时显示系统各项资源的使用情况,并每 10 秒刷新一次(默认刷新间隔)。可以通过命令行参数来定制其行为。 - atop 显示的信息
顶部的全局信息:
- PRC:显示系统上的进程信息,包括每秒创建的进程和上下文切换数量。
- CPU:显示 CPU 使用情况。分为用户空间、系统空间、硬件中断和软件中断的 CPU 占用。
- CPL:显示系统的负载(即 CPU 队列长度),包括 1、5 和 15 分钟的平均负载。
- MEM:显示内存的总体使用情况,包括总内存、已使用内存、缓存、和交换区的使用情况。
- SWP:显示交换分区(Swap)信息。
- DSK:显示磁盘的 IO 信息,包括每秒读写的块数。
- NET:显示网络的发送和接收数据。
每个进程的信息: - PID:进程的 ID。
- THR:进程的线程数。
- SYSCPU:进程使用的系统 CPU 时间。
- USRCUP:进程使用的用户 CPU 时间。
- VSS:虚拟内存使用量。
- RSS:实际使用的物理内存。
- RDDSK:进程从磁盘读取的字节数。
- WRDSK:进程写入磁盘的字节数。
- NET:进程的网络活动,包括每秒发送和接收的字节数。
- ST:系统状态,D 代表不可中断睡眠,R 代表运行中,S 代表休眠,Z 代表僵尸进程。
- 常用参数
- -r
:以原始模式查看历史数据。
bash复制代码sudo atop -r /var/log/atop/atop_YYYYMMDD - -w
:将系统状态写入日志文件,默认保存到 /var/log/atop/。
bash复制代码sudo atop -w /var/log/atop/atop.log 10
这会每 10 秒记录一次系统状态。 - -d
:显示磁盘统计信息。
bash复制代码sudo atop -d - -m
:显示内存统计信息。
bash复制代码sudo atop -m - -n
:显示网络统计信息。
bash复制代码sudo atop -n - -s
:显示交换分区的使用情况。
bash复制代码sudo atop -s - -u
:显示用户 CPU 使用信息。
bash复制代码sudo atop -u - -p
:只显示指定进程的状态。
bash复制代码sudo atop -p - -c
:显示进程的命令行。
bash复制代码sudo atop -c
在日志模式下查看历史数据
如果 atop 被配置为记录日志,你可以通过以下命令查看历史数据:
bash复制代码sudo atop -r /var/log/atop/atop_YYYYMMDD交互命令
当 atop 运行时,你可以按键切换不同的视图:
- c:显示/隐藏命令行参数。
- d:显示磁盘使用情况。
- n:显示网络使用情况。
- m:显示内存使用情况。
- t:按 CPU 使用率排序进程。
- u:按用户 CPU 使用率排序进程。
- q:退出 atop。
- 结合 cron 自动记录
你可以通过 cron 定期执行 atop 来保存系统性能的历史数据。编辑 crontab 文件:
bash复制代码sudo crontab -e
添加一行:
bash复制代码*/10 * * * * /usr/bin/atop -a -w /var/log/atop/atop.log 600
这会每 10 分钟执行一次 atop,并保存系统状态到日志。
8. 总结
atop 是一个功能强大的性能监控工具,它不仅能够实时监控系统性能,还能保存数据以便日后分析。通过掌握其各种参数和交互命令,能够轻松地分析系统的性能瓶颈,尤其在 CPU、内存、磁盘 IO 和网络负载方面。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.