1. 首页 > IT综合教程 > 正文

69. Linux系统性能监控培训

一、性能监控概述

Linux系统性能监控是运维工作的核心内容,通过监控CPU、内存、磁盘、网络等指标,及时发现和解决性能瓶颈。

1.1 性能监控维度

监控维度 关键指标 常用工具
CPU 使用率、负载、上下文切换 top, vmstat, mpstat
内存 使用率、缓存、交换分区 free, vmstat, top
磁盘 IOPS、吞吐量、使用率 iostat, df, iotop
网络 带宽、连接数、丢包率 iftop, netstat, ss

二、CPU监控

2.1 top命令

# 启动top
top

# 常用快捷键
P  # 按CPU使用率排序
M  # 按内存使用率排序
T  # 按运行时间排序
1  # 显示所有CPU核心
c  # 显示完整命令
k  # 终止进程
q  # 退出

# 批处理模式
top -b -n 1 > top_output.txt

# 指定用户
top -u nginx

# 指定进程
top -p 12345,12346

# 设置刷新间隔
top -d 5
# 输出示例
top – 10:00:00 up 30 days, 2:15, 3 users, load average: 0.52, 0.58, 0.59
Tasks: 156 total, 1 running, 155 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.3 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
MiB Mem : 7823.5 total, 256.3 free, 4096.2 used, 3471.0 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 3421.2 avail Mem

2.2 vmstat命令

# 基本使用
vmstat

# 指定间隔和次数
vmstat 2 5

# 显示活跃/非活跃内存
vmstat -a

# 显示磁盘统计
vmstat -d

# 显示事件计数器
vmstat -s

# 输出说明
# procs: r(运行队列), b(阻塞进程)
# memory: swpd(交换), free(空闲), buff(缓冲), cache(缓存)
# swap: si(从交换读入), so(写入交换)
# io: bi(块读入), bo(块写出)
# system: in(中断), cs(上下文切换)
# cpu: us(用户), sy(系统), id(空闲), wa(等待IO)

2.3 mpstat命令

# 安装
yum install -y sysstat

# 查看所有CPU
mpstat

# 查看指定CPU
mpstat -P 0

# 查看所有CPU核心
mpstat -P ALL

# 指定间隔
mpstat 2 5

# 输出说明
# %usr: 用户态CPU时间
# %nice: nice值调整的用户态时间
# %sys: 内核态CPU时间
# %iowait: IO等待时间
# %irq: 硬中断时间
# %soft: 软中断时间
# %steal: 虚拟化偷取时间
# %guest: 虚拟机时间
# %idle: 空闲时间

三、内存监控

3.1 free命令

# 查看内存
free

# 以MB显示
free -m

# 以GB显示
free -g

# 以人类可读格式
free -h

# 显示总计
free -t

# 定时刷新
free -s 2

# 输出说明
# total: 总内存
# used: 已使用
# free: 空闲
# shared: 共享内存
# buff/cache: 缓冲/缓存
# available: 可用内存(包含可回收缓存)
# 输出示例
total used free shared buff/cache available
Mem: 7.8Gi 4.0Gi 256Mi 128Mi 3.5Gi 3.4Gi
Swap: 2.0Gi 0B 2.0Gi

3.2 内存分析

# 查看内存详细信息
cat /proc/meminfo

# 查看进程内存
ps aux --sort=-%mem | head -10

# 查看进程内存映射
pmap -x 12345

# 查看slab内存
slabtop

# 清理缓存
sync && echo 3 > /proc/sys/vm/drop_caches

# 查看大页内存
cat /proc/meminfo | grep Huge

# 查看NUMA信息
numactl --hardware

四、磁盘监控

4.1 iostat命令

# 查看所有设备
iostat

# 查看指定设备
iostat /dev/sda

# 显示扩展统计
iostat -x

# 显示所有设备扩展统计
iostat -x ALL

# 指定间隔
iostat -x 2 5

# 只显示磁盘
iostat -d

# 只显示CPU
iostat -c

# 输出说明
# tps: 每秒传输数
# kB_read/s: 每秒读取KB
# kB_wrtn/s: 每秒写入KB
# %util: 设备利用率
# await: 平均IO等待时间

4.2 磁盘使用监控

# 查看磁盘使用
df -h

# 查看inode使用
df -i

# 查看目录大小
du -sh /var/log

# 查看当前目录下各目录大小
du -h --max-depth=1

# 查看最大的文件
du -ah /var | sort -rh | head -20

# 查看磁盘分区
lsblk
fdisk -l

# 查看磁盘IO
iotop

# 查看进程IO
pidstat -d 2

五、网络监控

5.1 网络连接监控

# 查看所有连接
netstat -an

# 查看TCP连接
netstat -tunlp

# 查看连接状态统计
netstat -nat | awk '{print $6}' | sort | uniq -c

# 使用ss命令
ss -tunlp
ss -s

# 查看特定端口
netstat -tunlp | grep :80
ss -tunlp | grep :80

# 查看连接数
netstat -an | grep ESTABLISHED | wc -l

# 查看TIME_WAIT连接
netstat -an | grep TIME_WAIT | wc -l

5.2 网络流量监控

# 安装iftop
yum install -y iftop

# 监控网卡流量
iftop -i eth0

# 显示端口
iftop -P

# 安装nload
yum install -y nload

# 查看流量
nload eth0

# 使用sar监控网络
sar -n DEV 2 5

# 查看网络错误
sar -n EDEV 2 5

# 查看网络统计
cat /proc/net/dev

六、进程监控

6.1 ps命令

# 查看所有进程
ps aux

# 查看进程树
ps axjf
pstree

# 按CPU排序
ps aux --sort=-%cpu | head -10

# 按内存排序
ps aux --sort=-%mem | head -10

# 查看指定用户进程
ps -u nginx

# 查看指定进程
ps -p 12345 -o pid,ppid,cmd,%cpu,%mem

# 查看线程
ps -eLf
ps -T -p 12345

6.2 进程管理

# 查看进程详情
cat /proc/12345/status

# 查看进程打开的文件
lsof -p 12345

# 查看进程网络连接
lsof -i -a -p 12345

# 查看进程线程
pidstat -t -p 12345

# 终止进程
kill 12345
kill -9 12345
killall nginx
pkill -f "nginx"

# 调整进程优先级
nice -n 10 command
renice -n 5 -p 12345

七、sar系统活动报告

7.1 sar基本使用

# 安装
yum install -y sysstat

# 启用数据收集
systemctl start sysstat
systemctl enable sysstat

# CPU统计
sar -u

# 内存统计
sar -r

# 磁盘统计
sar -d

# 网络统计
sar -n DEV

# 查看历史数据
sar -f /var/log/sa/sa15

# 指定时间范围
sar -s 10:00:00 -e 12:00:00

# 输出到文件
sar -u 2 5 > cpu_stats.txt

八、最佳实践

监控项 告警阈值 处理建议
CPU使用率 >80% 优化程序或扩容
内存使用率 >90% 增加内存或优化
磁盘使用率 >85% 清理或扩容
磁盘IO等待 >30% 优化IO或升级磁盘
注意事项:

  • 建立基线数据便于对比
  • 设置合理的告警阈值
  • 定期检查性能趋势
  • 保留历史监控数据

九、总结

性能监控是系统运维的核心技能。通过本培训文档,您应该掌握了:

学习交流加群风哥QQ113257174

  • CPU监控工具使用
  • 内存监控和分析
  • 磁盘IO监控
  • 网络监控方法
  • 进程监控和管理
  • sar系统活动报告
IT运维培训文档系列 | 第69篇 | Linux系统性能监控培训

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息