Linux系统监控是确保服务器稳定运行的关键,通过常用命令可以实时查看系统资源使用情况、进程状态及网络流量等信息,以下是Linux常用监控命令的详细介绍,涵盖CPU、内存、磁盘、网络及进程等维度的监控方法。

CPU监控命令
CPU是系统的核心,监控其使用率、负载及进程占用情况至关重要。
- top:动态显示系统进程资源占用,按CPU使用率排序,可实时查看进程PID、用户、CPU及内存占用,默认每3秒刷新一次,通过“P”键按CPU排序,“M”键按内存排序。
- htop:top的增强版,支持彩色显示、进程树形结构及鼠标操作,更直观地展示多核CPU使用情况。
- mpstat:多核CPU详细统计,需安装sysstat包,通过
mpstat -P ALL 1查看每核CPU使用率、空闲及系统调用次数。 - uptime:快速查看系统负载,输出包含1分钟、5分钟、15分钟的平均负载值,负载过高时需排查异常进程。
内存监控命令
内存不足会导致系统性能下降,常用命令如下:
- free:显示内存及交换分区使用情况,
free -h以人类可读格式(GB/MB)展示,查看可用内存、缓冲区及缓存占用。 - vmstat:虚拟内存统计,
vmstat 1每秒输出数据,包括内存空闲(free)、缓冲(buff)、缓存(cache)及交换分区(si/so)情况。 - smem:精确计算内存占用,区分物理内存、共享内存及虚拟内存,适合分析进程实际内存消耗。
磁盘监控命令
磁盘I/O性能直接影响数据读写效率,需关注使用率、IOPS及等待时间。
- df:磁盘文件系统使用情况,
df -h显示各分区总容量、已用空间及挂载点,快速识别磁盘满载问题。 - du:目录或文件占用空间,
du -sh *统计当前目录下各文件夹大小,du -sh /path查看指定路径总占用。 - iostat:磁盘I/O统计,需安装sysstat包,
iostat -xz 1显示设备使用率(%util)、读写速率(kB/s)及等待时间(await)。 - iotop:类似top的磁盘I/O监控,实时显示每个进程的读写速度,需root权限运行。
网络监控命令
网络流量异常可能预示安全风险或性能瓶颈,常用命令包括:

- netstat:网络连接状态,
netstat -tuln查看监听端口,netstat -an显示所有连接(包括ESTABLISHED状态)。 - ss:netstat的替代工具,速度更快,
ss -tuln查看端口监听,ss -s汇总网络连接统计。 - iftop:实时流量监控,显示各主机间的带宽占用,需安装iftop包,支持按端口或IP筛选。
- nethogs:按进程统计网络流量,实时显示每个进程的上传/下载速度,适合定位异常流量进程。
- tcpdump:抓包分析,
tcpdump -i eth0 port 80抓取eth0网卡80端口的TCP数据包,用于网络调试。
进程监控命令
进程是系统资源占用的直接载体,需重点关注异常进程。
- ps:静态进程快照,
ps -ef显示所有进程(含PID、PPID、CPU占用),ps aux包含更详细的内存信息。 - pgrep:按条件查找进程,
pgrep -u username查找指定用户的进程,pgrep -f "keyword"匹配进程名包含关键字的进程。 - pidstat:进程资源统计,
pidstat -u 1实时监控各进程CPU占用,pidstat -r 1监控内存使用情况。 - lsof:列出打开文件的进程,
lsof -i :80查看占用80端口的进程,lsof /var/log/syslog查看操作syslog文件的进程。
综合监控工具
- glances:跨平台监控工具,整合CPU、内存、磁盘、网络及进程数据,以仪表盘形式展示,支持Web界面(
glances -w)。 - dstat:多功能统计工具,
dstat -tcmdn同时显示CPU、磁盘、内存、网络及进程数,自定义输出格式。
相关问答FAQs
Q1: 如何快速定位CPU占用100%的进程?
A1: 使用top命令后按“P”键按CPU排序,或通过ps aux --sort=-%cpu按CPU占用降序排列,找到高CPU占用进程后结合kill -9 PID终止异常进程(谨慎操作)。
Q2: 磁盘I/O等待高(await值大)如何排查?
A2: 先使用iostat -xz 1确认哪个设备(如sda)的await值过高,再用iotop查看具体进程的I/O操作,或通过lsof -p PID分析异常进程是否在频繁读写文件,必要时检查磁盘健康状态(如smartctl -a /dev/sda)。

