【Linux性能优化】常用工具和实战指令
作者:唐叔在学习
专栏:唐叔的后端成长之路
大家好,我是唐叔!今天咱们来聊聊 Linux性能优化 那些事儿。你是不是也遇到过服务器卡成狗,CPU 100%,内存爆满,磁盘IO飙高,但就是不知道问题出在哪?别急,今天我就手把手教你用 Linux性能定位工具 快速揪出系统瓶颈,让你的服务器飞起来!
📌 本文重点:
- Linux性能分析 常用工具大全
- CPU、内存、磁盘、网络 四大维度精准定位
- 实战命令 + 场景分析,小白也能轻松上手
- 关键词:Linux性能优化、服务器卡顿、CPU负载高、内存泄漏、磁盘IO、网络延迟
文章目录
- 1. 先看整体:你的Linux服务器现在健康吗?
- (1)top —— 最基础的性能监控
- (2)htop —— 更强大的 top 替代品
- (3)vmstat —— 查看系统整体状态
- 2. CPU性能分析:谁在疯狂吃CPU?
- (1)pidstat —— 定位高CPU进程
- (2)perf —— 深入分析CPU热点(火焰图)
- (3)mpstat —— 查看多核CPU负载
- 3. 内存分析:内存泄漏?OOM了?
- (1)free —— 查看内存使用情况
- (2)pmap —— 查看进程内存占用
- (3)smem —— 按PSS统计内存
- 4. 磁盘IO分析:磁盘慢成蜗牛?
- (1)iostat —— 监控磁盘IO
- (2)iotop —— 查看哪个进程狂写磁盘
- (3)blktrace —— 深入分析块设备IO
- 5. 网络分析:网卡打满了?
- (1)ss(替代netstat)—— 查看网络连接
- (2)iftop —— 实时流量监控
- (3)tcpdump —— 抓包分析
- 🎯 总结:Linux性能优化黄金法则
1. 先看整体:你的Linux服务器现在健康吗?
🔍 工具推荐:top
、htop
、vmstat
当你发现服务器变慢,第一步就是 全局观察,看看是CPU、内存、磁盘还是网络出了问题。
(1)top —— 最基础的性能监控
top
- 按
P
:按CPU使用率排序 - 按
M
:按内存使用排序 - 按
1
:查看每个CPU核心的负载
📌 唐叔解读:
- 如果
%CPU
长期接近100%,说明CPU是瓶颈。 - 如果
%MEM
很高,可能是内存泄漏。 load average
(负载平均值)> CPU核心数,说明系统过载。
(2)htop —— 更强大的 top 替代品
htop # 需安装:`yum install htop` 或 `apt install htop`
- 彩色显示,更直观
- 支持鼠标点击,交互更方便
(3)vmstat —— 查看系统整体状态
vmstat 1 5 # 每秒1次,输出5次
r
:运行队列长度(>CPU核心数说明CPU忙)si/so
:Swap交换(频繁交换说明内存不足)wa
:IO等待(高说明磁盘是瓶颈)
2. CPU性能分析:谁在疯狂吃CPU?
🔍 工具推荐:pidstat
、perf
、mpstat
(1)pidstat —— 定位高CPU进程
pidstat -u 1 # 每秒刷新CPU使用率
%CPU
:进程占用的CPU百分比Command
:查看是哪个进程在搞事情
(2)perf —— 深入分析CPU热点(火焰图)
perf top # 实时查看函数调用热点
perf record -g # 记录性能数据,生成火焰图
🔥 火焰图分析:
- 宽峰:代表该函数占用CPU高
- 平顶:可能是锁竞争或CPU瓶颈
(3)mpstat —— 查看多核CPU负载
mpstat -P ALL 1 # 查看每个CPU核心的使用率
- 如果某个核心 100%,可能是单线程程序导致的瓶颈。
3. 内存分析:内存泄漏?OOM了?
🔍 工具推荐:free
、pmap
、smem
(1)free —— 查看内存使用情况
free -h # 人类可读格式
available
:可用内存(重点关注)Swap
使用高?说明物理内存不足!
(2)pmap —— 查看进程内存占用
pmap -x <PID> # 查看进程的详细内存分配
RSS
:实际物理内存占用PSS
:更准确的内存统计(共享库按比例计算)
(3)smem —— 按PSS统计内存
smem -s pss # 按实际内存占用排序
- 比
top
更准确,适合分析 内存泄漏。
4. 磁盘IO分析:磁盘慢成蜗牛?
🔍 工具推荐:iostat
、iotop
、blktrace
(1)iostat —— 监控磁盘IO
iostat -xz 1 # 查看磁盘吞吐和延迟
%util
:磁盘利用率(>80%说明IO瓶颈)await
:IO平均等待时间(越高越慢)
(2)iotop —— 查看哪个进程狂写磁盘
iotop # 需root权限
- 类似
top
,但针对磁盘IO排序。
(3)blktrace —— 深入分析块设备IO
blktrace -d /dev/sda -o trace # 记录IO事件
- 适合分析 磁盘延迟高 的问题。
5. 网络分析:网卡打满了?
🔍 工具推荐:netstat
、ss
、tcpdump
、iftop
(1)ss(替代netstat)—— 查看网络连接
ss -tulnp # 查看监听端口和连接
-t
:TCP连接-u
:UDP连接
(2)iftop —— 实时流量监控
iftop -i eth0 # 查看网卡流量
- 类似
top
,但显示 网络带宽占用。
(3)tcpdump —— 抓包分析
tcpdump -i eth0 port 80 -w capture.pcap # 抓取80端口流量
- 适合分析 网络延迟、丢包 问题。
🎯 总结:Linux性能优化黄金法则
问题类型 | 推荐工具 | 关键指标 |
---|---|---|
CPU高 | top 、pidstat 、perf | %CPU 、load average |
内存泄漏 | free 、pmap 、smem | available 、Swap |
磁盘IO慢 | iostat 、iotop | %util 、await |
网络延迟 | ss 、iftop 、tcpdump | 带宽、连接数 |
📢 唐叔建议:
- 先全局(
top
/htop
)→ 再细分(CPU/内存/磁盘/网络) - 工具是武器,思路是兵法,平时多练手,遇到问题才不慌!
🚀 你的服务器还在卡顿吗?赶紧试试这些工具吧!
📌 关注唐叔,更多技术文章持续更新!
👍 如果觉得有用,点赞 + 收藏,支持一下!
#Linux性能优化 #服务器卡顿 #CPU负载高 #内存泄漏 #磁盘IO #网络延迟 #Linux命令 #性能分析