监控系统资源
top/htop
实时显示系统进程资源占用情况,包括CPU、内存、负载等。htop是top的增强版,支持交互式操作和颜色高亮。
关键指标:%CPU(进程CPU占用)、%MEM(内存占用)、LOAD AVERAGE(系统负载)。
vmstat
统计内存、进程、CPU活动等信息。常用命令:
bash
vmstat 1 5 # 每秒采样一次,共5次
输出字段含义:r(运行队列长度)、b(阻塞进程数)、swpd(虚拟内存使用量)、free(空闲内存)。
iostat
监控磁盘I/O和CPU使用情况。需安装sysstat包:
bash
iostat -dx 1 # 显示磁盘扩展统计,每秒刷新
关键字段:%util(磁盘利用率)、await(I/O平均等待时间)。
内存分析
free
查看内存使用情况:
bash
free -h # 人类可读格式
重点关注available(可用内存),而非free(完全空闲内存)。
smem
统计进程实际内存占用(RSS/PSS/USS)。安装命令:
bash
sudo apt install smem # Debian/Ubuntu
smem -s pss -r # 按PSS排序
磁盘性能
df/du
df -h查看磁盘空间使用率,du -sh *统计目录大小。
iotop
类似top的磁盘I/O监控工具,需root权限:
bash
sudo iotop -o # 只显示活跃I/O进程
网络分析
netstat/ss
查看网络连接状态。推荐使用ss(更高效):
bash
ss -tulnp # 显示TCP/UDP监听端口及进程
iftop
实时监控网络流量:
bash
sudo iftop -i eth0 # 指定网卡
进程分析
pidstat
监控进程资源占用(CPU/内存/磁盘等):
bash
pidstat -urd -p <PID> 1 # 综合监控
strace
跟踪进程系统调用:
bash
strace -p <PID> -c # 统计系统调用耗时
内核参数调优
sysctl
动态修改内核参数:
bash
sysctl -w vm.swappiness=10 # 降低swap使用倾向
sysctl -p # 应用/etc/sysctl.conf配置
常用调优参数:
net.ipv4.tcp_fin_timeout=30(减少TIME_WAIT时间)vm.dirty_ratio=10(控制脏页写入阈值)
日志分析
dmesg
查看内核日志,排查硬件/驱动问题:
bash
dmesg -T | tail -20 # 显示时间戳及最近20条
journalctl
Systemd日志工具:
bash
journalctl -u nginx --since "1 hour ago" # 服务日志过滤
自动化工具
sar
长期性能数据收集(需安装sysstat):
bash
sar -A # 显示所有历史记录
nmon
交互式多维度监控工具,支持导出报告:
bash
nmon -f -s 10 -c 60 # 每10秒采样,共60次