1. 监控CPU使用:top
用途
实时查看CPU占用率、进程资源消耗及系统负载。
示例及关键指标
bash
复制
top - 15:30:01 up 30 days, 2:15, 1 user, load average: 0.05, 0.10, 0.15 Tasks: 120 total, 1 running, 119 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.3 us, 0.7 sy, 0.0 ni, 96.8 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 7856.8 total, 102.3 free, ... MiB Swap: 2048.0 total, 2048.0 free, ... PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 123456 78900 5678 S 5.6 1.0 10:20.01 nginx
重点关注
-
load average
: 1/5/15分钟的平均负载(1核CPU时,>1表示过载)。 -
%Cpu(s)
:-
us
(用户进程)、sy
(系统进程)、id
(空闲)、wa
(IO等待)。 -
wa
高表示磁盘IO瓶颈。
-
-
按
P
(按CPU排序)、M
(按内存排序)。
替代命令
bash
复制
htop # 更友好的交互式工具(支持鼠标操作) mpstat -P ALL 1 # 查看每个CPU核心的利用率
2. 查看内存:free -h
用途
显示物理内存和Swap交换分区的使用情况。
示例及关键指标
bash
复制
total used free shared buff/cache available Mem: 7.7G 1.2G 100M 200M 6.4G 6.1G Swap: 2.0G 0B 2.0G
重点关注
-
available
: 系统可分配的内存(包含缓存和缓冲区的可用内存)。 -
buff/cache
: 缓存和缓冲区占用(Linux会利用空闲内存加速IO,必要时自动释放)。 -
Swap使用率高可能表示物理内存不足。
扩展命令
bash
复制
vmstat 1 # 动态查看内存、Swap、IO、CPU等综合信息 cat /proc/meminfo # 详细内存统计
3. 磁盘空间:df -h
用途
查看文件系统的磁盘空间使用情况。
示例及关键指标
bash
复制
Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 35G 15G 70% / tmpfs 3.9G 0 3.9G 0% /dev/shm
重点关注
-
Use%
: 使用率超过**80%**需警惕(可能导致服务异常)。 -
Avail
: 剩余可用空间。
扩展命令
bash
复制
du -sh /path # 查看目录占用空间(如 du -sh /var/log) df -i # 检查inode使用率(小文件过多可能导致inode耗尽)
4. 磁盘IO:iostat -dx 5
用途
监控磁盘读写速率、IO等待时间和利用率。
示例及关键指标
bash
复制
Device r/s w/s rkB/s wkB/s await %util sda 5.0 2.0 100.0 40.0 1.50 2.00
-
rkB/s
/wkB/s
: 每秒读/写数据量(KB)。 -
await
: IO操作平均等待时间(单位毫秒,>10ms可能异常)。 -
%util
: 磁盘利用率(接近100%表示磁盘满负载)。
安装与扩展
bash
复制
sudo apt install sysstat # Debian/Ubuntu sudo yum install sysstat # CentOS/RHEL iotop -oP # 按进程查看实时IO使用(需安装 iotop)
5. 网络带宽:iftop
用途
实时监控网络连接流量(按IP和端口排序)。
示例及关键指标
bash
复制
TX: 1.2Mb/s RX: 3.4Mb/s TOTAL: 4.6Mb/s 192.168.1.100:443 => 10.0.0.5:55678 500Kb/s <= 1.2Mb/s
-
TX
/RX
: 发送/接收速率。 -
高流量IP: 检查是否为正常业务流量(如异常需排查攻击或爬虫)。
安装与扩展
bash
复制
sudo apt install iftop # Debian/Ubuntu sudo yum install iftop # CentOS/RHEL nethogs eth0 # 按进程查看网络流量
组合使用技巧
-
一键生成资源报告:
bash
复制
echo "===== CPU & Memory ====="; top -bn1 | head -5; echo "===== Disk Space ====="; df -h; echo "===== Network ====="; sudo iftop -t -s 5
-
定时监控:
bash
复制
watch -n 5 "free -h; df -h" # 每5秒刷新内存和磁盘
-
日志记录:
bash
复制
iostat -dx 5 > io.log & # 后台记录磁盘IO到文件
总结
-
CPU负载高:检查
top
中占用率高的进程。 -
内存不足:
free -h
关注available
,优化程序或扩容。 -
磁盘满:
df -h
清理大文件或扩容。 -
IO瓶颈:
iostat
检查%util
和await
,优化数据库或存储。 -
网络异常:
iftop
定位高流量IP,排查攻击或配置限速。