【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服务器现在健康吗?

🔍 工具推荐:top、htop、vmstat

当你发现服务器变慢,第一步就是 全局观察,看看是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?

🔍 工具推荐:pidstat、perf、mpstat

(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了?

🔍 工具推荐:free、pmap、smem

(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分析:磁盘慢成蜗牛?

🔍 工具推荐:iostat、iotop、blktrace

(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. 网络分析:网卡打满了?

🔍 工具推荐:netstat、ss、tcpdump、iftop

(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高 top、pidstat、perf %CPU、load average
内存泄漏 free、pmap、smem available、Swap
磁盘IO慢 iostat、iotop %util、await
网络延迟 ss、iftop、tcpdump 带宽、连接数

📢 唐叔建议:

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

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

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

相关推荐
꯭自꯭闭꯭2 小时前
达梦SQL优化相关
linux·运维·数据库·sql
ZhangJun953 小时前
在 32GB 内存电脑上本地搭建 Qwen3.6-35B-A3B 大模型踩坑实录
运维·人工智能·阿里云·ai·软件构建
一条破秋裤3 小时前
Linux 共享内存通信:POSIX 共享内存与 mmap
linux·运维·服务器
贵州山魈羡民3 小时前
【玩转手机】通过 Podroid 上的 Alpine 部署 1Panel,把微型服务器装进口袋
运维·服务器
小白的码BUG之路3 小时前
Docker -- 构建nacos镜像
运维·docker·容器
谷哥的小弟4 小时前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing5 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
和裕5 小时前
全纸结构重型纸箱能否满足 1 吨以上设备出口熏蒸豁免要求?通关合规性全解析
大数据·运维·网络·人工智能·算法
FPGA小徐6 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
呉師傅7 小时前
得力P2500、M2500系列打印机硒鼓加粉及清零方法【纯享版】
运维·网络·windows·电脑