Linux 服务器监控是确保系统稳定运行的关键环节,通过一系列命令可以实时获取系统资源、进程状态、网络流量等关键信息,以下将详细介绍常用的 Linux 服务器监控命令,涵盖 CPU、内存、磁盘、网络及进程等多个维度。
CPU 监控命令
CPU 是系统的核心,监控其使用率、负载及进程占用情况至关重要。top 命令是动态监控 CPU 的首选,它以全屏交互方式显示进程排序,默认按 CPU 占用降序排列,通过 top -c 可显示完整命令行,top -p <PID> 可指定监控特定进程,其输出中 %us(用户空间 CPU 占用)、%sy(内核空间 CPU 占用)、%id(空闲 CPU)等字段直观反映 CPU 负载,若需静态快照,uptime 命令可显示系统负载平均值(1分钟、5分钟、15分钟),负载值高于 CPU 核心数时可能表示过载。mpstat 命令(需安装 sysstat 包)能按 CPU 核心细分统计,如 mpstat -P ALL 1 5 表示每秒统计一次,共 5 次,输出各核心的 CPU 使用率,对于进程级 CPU 占用,ps aux --sort=-%cpu 可按 CPU 占用降序列出所有进程,结合 grep 可筛选特定进程。
内存监控命令
内存不足会导致系统性能下降,甚至触发 OOM(Out of Memory)。free 命令是查看内存使用的基础工具,free -h 以人类可读格式(GB/MB)显示总内存、已用、空闲、缓冲/缓存等字段。buff/cache 是内核缓冲和缓存,可被回收利用,因此可用内存 ≈ 空闲 + 缓冲/缓存。vmstat 命令可提供更详细的内存活动信息,如 vmstat 1 每秒输出一次,si(swap in)和 so(swap out)字段反映 swap 分区的使用频率,若持续非零则可能内存不足。smem 工具(需安装)可按进程、用户、命令等维度统计内存占用,区分物理内存和虚拟内存,更适合分析内存泄漏问题。
磁盘监控命令
磁盘 I/O 性能直接影响文件读写速度,监控需关注使用率、 I/O 速率及 inode 使用情况。df 命令用于查看文件系统磁盘空间,df -h 显示各分区的总容量、已用、可用及使用率,df -i 则查看 inode 使用情况,inode 耗尽会导致无法创建新文件。du 命令可统计目录或文件大小,du -sh * 查看当前目录下各文件/文件夹大小,du -h --max-depth=1 /path 限制递归深度,对于 I/O 性能,iostat(需 sysstat)是核心工具,iostat -xz 1 显示设备利用率、读写速率(kB/s/s)、I/O 请求(await)等字段,%util 接近 100% 表示 I/O 饱和。iotop 命令(需安装)以类似 top 的界面实时显示各进程的磁盘读写速率,适合定位高 I/O 进程。
网络监控命令
网络流量监控可帮助发现异常连接、带宽瓶颈及服务故障。ss 命令(替代 netstat)高效显示套接字状态,ss -tuln 查听 TCP/UDP 端口,ss -t 列出所有 TCP 连接,ss -anp | grep :80 查看 80 端口连接及进程。netstat -tuln 传统用法仍被广泛使用,netstat -s 显示网络协议统计信息(如 TCP 重传次数)。iftop 和 nethogs 是流量监控利器,iftop -i eth0 监控指定网卡实时流量(上行/下行),按连接排序;nethogs 则按进程统计网络带宽占用,适合定位消耗带宽的进程。ping 和 traceroute 用于测试网络连通性和路由路径,ping -c 4 8.8.8.8 发送 4 个包,traceroute -n 8.8.8.8 显示路由跳数。
进程与服务监控命令
进程是系统运行的基本单元,监控需关注僵尸进程、高资源占用及服务状态。ps aux 列出所有进程,ps -ef 格式化显示,ps aux | grep nginx 筛选 nginx 进程。pgrep 可通过进程名或属性查找 PID,如 pgrep -u nginx。systemctl 是服务管理核心命令,systemctl status nginx 查看服务状态,systemctl is-active nginx 判断是否运行,journalctl -u nginx 查看服务日志。htop(需安装)是 top 的增强版,支持颜色、进程树、鼠标操作,更直观。
以下为常用监控命令速查表:
| 监控维度 | 常用命令 | 核心功能 |
|---|---|---|
| CPU | top, mpstat, uptime | 动态进程排序、核心级 CPU 统计、系统负载平均值 |
| 内存 | free, vmstat, smem | 内存使用率、swap 活动进程级内存统计 |
| 磁盘 | df, du, iostat, iotop | 文件系统空间、目录大小、I/O 设备利用率、进程级磁盘读写 |
| 网络 | ss, iftop, nethogs | 套接字状态、实时流量、进程级带宽占用 |
| 进程/服务 | ps, systemctl, htop | 进程列表、服务状态、增强型进程管理 |
相关问答 FAQs
-
问:如何快速定位占用 CPU 最高的进程?
答:可通过top -b -n 1 | head -20(静态显示 top 前 20 行)或ps aux --sort=-%cpu | head -n 5(按 CPU 占用降序取前 5 个进程),结合kill -9 <PID>终止异常进程(谨慎使用)。 -
问:磁盘 I/O 瓶颈时,如何判断是哪个进程导致的?
答:使用iotop -oP(仅显示有 I/O 的进程)或pidstat -d -p <PID> 1(监控特定进程的 I/O),结合iostat -xz 1查看%util是否饱和,定位高 I/O 进程后可进一步分析其日志或业务逻辑。
