【Linux性能优化】常用工具和实战指令

作者:唐叔在学习

专栏:唐叔的后端成长之路

大家好,我是唐叔!今天咱们来聊聊 Linux性能优化 那些事儿。你是不是也遇到过服务器卡成狗,CPU 100%,内存爆满,磁盘IO飙高,但就是不知道问题出在哪?别急,今天我就手把手教你用 Linux性能定位工具 快速揪出系统瓶颈,让你的服务器飞起来!

📌 本文重点:

  • Linux性能分析 常用工具大全
  • CPU、内存、磁盘、网络 四大维度精准定位
  • 实战命令 + 场景分析,小白也能轻松上手
  • 关键词:Linux性能优化、服务器卡顿、CPU负载高、内存泄漏、磁盘IO、网络延迟

文章目录

    • [1. 先看整体:你的Linux服务器现在健康吗?](#1. 先看整体:你的Linux服务器现在健康吗?)
      • [(1)top ------ 最基础的性能监控](#(1)top —— 最基础的性能监控)
      • [(2)htop ------ 更强大的 top 替代品](#(2)htop —— 更强大的 top 替代品)
      • [(3)vmstat ------ 查看系统整体状态](#(3)vmstat —— 查看系统整体状态)
    • [2. CPU性能分析:谁在疯狂吃CPU?](#2. CPU性能分析:谁在疯狂吃CPU?)
      • [(1)pidstat ------ 定位高CPU进程](#(1)pidstat —— 定位高CPU进程)
      • [(2)perf ------ 深入分析CPU热点(火焰图)](#(2)perf —— 深入分析CPU热点(火焰图))
      • [(3)mpstat ------ 查看多核CPU负载](#(3)mpstat —— 查看多核CPU负载)
    • [3. 内存分析:内存泄漏?OOM了?](#3. 内存分析:内存泄漏?OOM了?)
      • [(1)free ------ 查看内存使用情况](#(1)free —— 查看内存使用情况)
      • [(2)pmap ------ 查看进程内存占用](#(2)pmap —— 查看进程内存占用)
      • [(3)smem ------ 按PSS统计内存](#(3)smem —— 按PSS统计内存)
    • [4. 磁盘IO分析:磁盘慢成蜗牛?](#4. 磁盘IO分析:磁盘慢成蜗牛?)
      • [(1)iostat ------ 监控磁盘IO](#(1)iostat —— 监控磁盘IO)
      • [(2)iotop ------ 查看哪个进程狂写磁盘](#(2)iotop —— 查看哪个进程狂写磁盘)
      • [(3)blktrace ------ 深入分析块设备IO](#(3)blktrace —— 深入分析块设备IO)
    • [5. 网络分析:网卡打满了?](#5. 网络分析:网卡打满了?)
      • [(1)ss(替代netstat)------ 查看网络连接](#(1)ss(替代netstat)—— 查看网络连接)
      • [(2)iftop ------ 实时流量监控](#(2)iftop —— 实时流量监控)
      • [(3)tcpdump ------ 抓包分析](#(3)tcpdump —— 抓包分析)
    • [🎯 总结:Linux性能优化黄金法则](#🎯 总结:Linux性能优化黄金法则)

1. 先看整体:你的Linux服务器现在健康吗?

🔍 工具推荐:tophtopvmstat

当你发现服务器变慢,第一步就是 全局观察,看看是CPU、内存、磁盘还是网络出了问题。

(1)top ------ 最基础的性能监控

bash 复制代码
top
  • P:按CPU使用率排序
  • M:按内存使用排序
  • 1:查看每个CPU核心的负载

📌 唐叔解读:

  • 如果 %CPU 长期接近100%,说明CPU是瓶颈。
  • 如果 %MEM 很高,可能是内存泄漏。
  • load average(负载平均值)> CPU核心数,说明系统过载。

(2)htop ------ 更强大的 top 替代品

bash 复制代码
htop  # 需安装:`yum install htop` 或 `apt install htop`
  • 彩色显示,更直观
  • 支持鼠标点击,交互更方便

(3)vmstat ------ 查看系统整体状态

bash 复制代码
vmstat 1 5  # 每秒1次,输出5次
  • r:运行队列长度(>CPU核心数说明CPU忙)
  • si/so:Swap交换(频繁交换说明内存不足)
  • wa:IO等待(高说明磁盘是瓶颈)

2. CPU性能分析:谁在疯狂吃CPU?

🔍 工具推荐:pidstatperfmpstat

(1)pidstat ------ 定位高CPU进程

bash 复制代码
pidstat -u 1  # 每秒刷新CPU使用率
  • %CPU:进程占用的CPU百分比
  • Command:查看是哪个进程在搞事情

(2)perf ------ 深入分析CPU热点(火焰图)

bash 复制代码
perf top          # 实时查看函数调用热点
perf record -g    # 记录性能数据,生成火焰图

🔥 火焰图分析:

  • 宽峰:代表该函数占用CPU高
  • 平顶:可能是锁竞争或CPU瓶颈

(3)mpstat ------ 查看多核CPU负载

bash 复制代码
mpstat -P ALL 1  # 查看每个CPU核心的使用率
  • 如果某个核心 100%,可能是单线程程序导致的瓶颈。

3. 内存分析:内存泄漏?OOM了?

🔍 工具推荐:freepmapsmem

(1)free ------ 查看内存使用情况

bash 复制代码
free -h  # 人类可读格式
  • available:可用内存(重点关注)
  • Swap 使用高?说明物理内存不足!

(2)pmap ------ 查看进程内存占用

bash 复制代码
pmap -x <PID>  # 查看进程的详细内存分配
  • RSS:实际物理内存占用
  • PSS:更准确的内存统计(共享库按比例计算)

(3)smem ------ 按PSS统计内存

bash 复制代码
smem -s pss  # 按实际内存占用排序
  • top更准确,适合分析 内存泄漏

4. 磁盘IO分析:磁盘慢成蜗牛?

🔍 工具推荐:iostatiotopblktrace

(1)iostat ------ 监控磁盘IO

bash 复制代码
iostat -xz 1  # 查看磁盘吞吐和延迟
  • %util:磁盘利用率(>80%说明IO瓶颈)
  • await:IO平均等待时间(越高越慢)

(2)iotop ------ 查看哪个进程狂写磁盘

bash 复制代码
iotop  # 需root权限
  • 类似top,但针对磁盘IO排序。

(3)blktrace ------ 深入分析块设备IO

bash 复制代码
blktrace -d /dev/sda -o trace  # 记录IO事件
  • 适合分析 磁盘延迟高 的问题。

5. 网络分析:网卡打满了?

🔍 工具推荐:netstatsstcpdumpiftop

(1)ss(替代netstat)------ 查看网络连接

bash 复制代码
ss -tulnp  # 查看监听端口和连接
  • -t:TCP连接
  • -u:UDP连接

(2)iftop ------ 实时流量监控

bash 复制代码
iftop -i eth0  # 查看网卡流量
  • 类似top,但显示 网络带宽占用

(3)tcpdump ------ 抓包分析

bash 复制代码
tcpdump -i eth0 port 80 -w capture.pcap  # 抓取80端口流量
  • 适合分析 网络延迟、丢包 问题。

🎯 总结:Linux性能优化黄金法则

问题类型 推荐工具 关键指标
CPU高 toppidstatperf %CPUload average
内存泄漏 freepmapsmem availableSwap
磁盘IO慢 iostatiotop %utilawait
网络延迟 ssiftoptcpdump 带宽、连接数

📢 唐叔建议:

  1. 先全局(top/htop)→ 再细分(CPU/内存/磁盘/网络)
  2. 工具是武器,思路是兵法,平时多练手,遇到问题才不慌!

🚀 你的服务器还在卡顿吗?赶紧试试这些工具吧!
📌 关注唐叔,更多技术文章持续更新!
👍 如果觉得有用,点赞 + 收藏,支持一下!

#Linux性能优化 #服务器卡顿 #CPU负载高 #内存泄漏 #磁盘IO #网络延迟 #Linux命令 #性能分析

相关推荐
龙门吹雪1 分钟前
Docker 安装 canal 详细步骤
运维·docker·容器·canal·mysql binlog 日志·增量数据订阅消费
椒盐螺丝钉1 分钟前
TypeScript类型兼容性
运维·前端·typescript
老黄编程17 分钟前
ubuntu如何查看一个内核模块被什么模块依赖(内核模块信息常用命令)?
linux·运维·ubuntu
Freed&1 小时前
Ansible 生产级自动化指南:Playbook、Handlers、Jinja2 全解析
运维·自动化·ansible
b***25111 小时前
储能电池包的自动化产线探秘|深圳比斯特自动化
运维·自动化
ZeroNews内网穿透1 小时前
新版发布!“零讯”微信小程序版本更新
运维·服务器·网络·python·安全·微信小程序·小程序
工控小楠1 小时前
涡街流量计温度数据的协议桥梁:Modbus RTU 转 Profinet 网关的自动化应用
运维·自动化
<但凡.1 小时前
Linux 修炼:进程控制(一)
linux·运维·服务器·bash
m0_464608262 小时前
Ansible实现自动化运维
运维·自动化·ansible
m0_464608262 小时前
Ansible Playbook:自动化配置管理的利器
运维·自动化·ansible