内容大纲
内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
1. top命令概述
top命令是Linux系统中最常用的实时系统监控工具,它可以实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
风哥提示:
# 实时显示进程信息:CPU、内存、运行时间等
# 系统整体信息:负载、进程数、CPU使用率、内存使用率
# 交互式操作:排序、过滤、杀死进程等
# 配置选项:刷新间隔、显示字段等
2. top命令基本使用
使用top命令查看系统实时状态。
更多视频教程www.fgedu.net.cn
# 1. 启动top命令
[root@localhost ~]# top
top – 10:00:00 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
# 2. 查看特定用户的进程
[root@localhost ~]# top -u mysql
top – 10:00:10 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 5 total, 0 running, 5 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
3457 mysql 20 0 1048576 262144 51200 S 0.3 3.1 0:45.67 mysqld
3458 mysql 20 0 524288 131072 25600 S 0.2 1.5 0:23.89 mysqld
3459 mysql 20 0 262144 65536 12800 S 0.1 0.8 0:12.34 mysqld
3460 mysql 20 0 131072 32768 6400 S 0.1 0.4 0:06.78 mysqld
# 3. 查看特定进程
[root@localhost ~]# top -p 3456
top – 10:00:20 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
# 4. 设置刷新间隔
[root@localhost ~]# top -d 5
top – 10:00:25 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
# 5. 批次模式显示
[root@localhost ~]# top -n 1 -b
top – 10:00:30 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
3. top命令交互操作
学习交流加群风哥QQ113257174
在top命令中使用交互式操作。
# 1. 按CPU使用率排序(按P键)
# 在top界面中按P键,进程将按CPU使用率排序
# 2. 按内存使用率排序(按M键)
# 在top界面中按M键,进程将按内存使用率排序
# 3. 按运行时间排序(按T键)
# 在top界面中按T键,进程将按运行时间排序
# 4. 显示所有CPU(按1键)
# 在top界面中按1键,将显示每个CPU的使用情况
# 5. 显示线程信息(按H键)
# 在top界面中按H键,将显示线程信息
# 6. 杀死进程(按k键)
# 在top界面中按k键,然后输入要杀死的进程ID
# 7. 改变进程优先级(按r键)
# 在top界面中按r键,然后输入进程ID和新的优先级
# 8. 显示特定用户的进程(按u键)
# 在top界面中按u键,然后输入用户名
# 9. 切换颜色显示(按z键)
# 在top界面中按z键,将切换颜色显示
# 10. 退出top(按q键)
# 在top界面中按q键,将退出top
4. top命令高级功能
使用top命令的高级功能。
# 1. 自定义显示字段
[root@localhost ~]# top -o %CPU
top – 10:00:40 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
# 2. 显示指定数量的进程
[root@localhost ~]# top -n 10
top – 10:00:50 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
6789 root 20 0 65536 5120 2048 S 0.1 0.1 0:00.02 sshd
7890 root 20 0 32768 2048 1024 S 0.1 0.0 0:00.01 bash
8901 root 20 0 16384 1024 512 S 0.0 0.0 0:00.00 cron
9012 root 20 0 8192 512 256 S 0.0 0.0 0:00.00 anacron
0123 root 20 0 4096 256 128 S 0.0 0.0 0:00.00 systemd-journal
# 3. 使用配置文件
[root@localhost ~]# cat > ~/.toprc << 'EOF'
# top配置文件
top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=3.0, Curwin=0
Def fieldscur=AEHIOQTWKNMBcdfgGplrsuvyzX
winflags=12345678, sortindx=18, maxtasks=0
summclr=1, msgsclr=1, headclr=1, taskclr=1
EOF
# 4. 使用配置文件启动top
[root@localhost ~]# top
top - 10:01:00 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
更多学习教程公众号风哥教程itpux_com
5. top命令实战案例
使用top命令监控系统性能。
# 1. 启动top命令
[root@localhost ~]# top
top – 10:01:10 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
# 2. 按CPU使用率排序(按P键)
# 在top界面中按P键,进程将按CPU使用率排序
# 3. 按内存使用率排序(按M键)
# 在top界面中按M键,进程将按内存使用率排序
# 4. 显示所有CPU(按1键)
# 在top界面中按1键,将显示每个CPU的使用情况
# 5. 查看特定用户的进程(按u键,然后输入mysql)
# 在top界面中按u键,然后输入mysql
# 6. 查找高CPU使用率的进程
[root@localhost ~]# top -b -n 1 | head -20
top – 10:01:20 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 root 20 0 123456 10240 4096 S 2.5 0.1 0:00.05 systemd
2345 root 20 0 65536 5120 2048 S 1.0 0.1 0:00.03 kworker/u4:0
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
4567 nginx 20 0 262144 51200 20480 S 0.3 0.6 0:12.34 nginx
5678 root 20 0 131072 10240 4096 R 0.2 0.1 0:00.01 top
# 7. 查找高内存使用率的进程
[root@localhost ~]# top -b -n 1 -o %MEM | head -20
top – 10:01:30 up 1 day, 2:30, 4 users, load average: 0.10, 0.15, 0.12
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.5 us, 1.0 sy, 0.0 ni, 96.0 id, 0.5 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 8192.0 total, 4096.0 free, 2048.0 used, 2048.0 buff/cache
MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 8192.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3456 mysql 20 0 2097152 524288 102400 S 0.5 6.3 1:23.45 mysqld
3457 mysql 20 0 1048576 262144 51200 S 0.3 3.1 0:45.67 mysqld
3458 mysql 20 0 524288 131072 25600 S 0.2 1.5 0:23.89 mysqld
3459 mysql 20 0 262144 65536 12800 S 0.1 0.8 0:12.34 mysqld
3460 mysql 20 0 131072 32768 6400 S 0.1 0.4 0:06.78 mysqld
# 8. 创建监控脚本
[root@localhost ~]# cat > /usr/local/bin/top-monitor.sh << 'EOF'
#!/bin/bash
# script.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
# top监控脚本
LOG_FILE="/var/log/top-monitor.log"
ALERT_EMAIL="admin@fgedu.net.cn"
# 记录日志函数
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> $LOG_FILE
}
# 检查CPU使用率
check_cpu() {
CPU_USAGE=$(top -b -n 1 | grep “Cpu(s)” | awk ‘{print $2}’ | sed ‘s/us,//’)
if [ $(echo “$CPU_USAGE > 80” | bc) -eq 1 ]; then
log “WARNING: CPU usage is ${CPU_USAGE}%”
echo “CPU usage is ${CPU_USAGE}%” | mail -s “WARNING: CPU usage alert” $ALERT_EMAIL
fi
}
# 检查内存使用率
check_memory() {
MEMORY_USAGE=$(free | grep Mem | awk ‘{printf(“%.0f”), $3/$2 * 100.0}’)
if [ “$MEMORY_USAGE” -gt 80 ]; then
log “WARNING: Memory usage is ${MEMORY_USAGE}%”
echo “Memory usage is ${MEMORY_USAGE}%” | mail -s “WARNING: Memory usage alert” $ALERT_EMAIL
fi
}
# 主函数
main() {
log “Starting top monitoring…”
check_cpu
check_memory
log “Top monitoring completed.”
}
# 执行主函数
main
EOF
# 9. 设置脚本执行权限
[root@localhost ~]# chmod +x /usr/local/bin/top-monitor.sh
# 10. 配置定时任务
[root@localhost ~]# echo “*/5 * * * * root /usr/local/bin/top-monitor.sh” > /etc/cron.d/top-monitor
# 11. 重启cron服务
[root@localhost ~]# systemctl restart crond
# 12. 测试监控脚本
[root@localhost ~]# /usr/local/bin/top-monitor.sh
# 13. 查看日志
[root@localhost ~]# tail -f /var/log/top-monitor.log
[2026-04-03 10:01:40] Starting top monitoring…
[2026-04-03 10:01:45] Top monitoring completed.
提示
from PG视频:www.itpux.com
top命令是实时监控系统的强大工具,可以快速发现系统性能问题。建议定期使用top命令检查系统状态,及时发现异常进程。对于长期监控,可以结合脚本和定时任务实现自动化监控。
