【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命令 #性能分析

相关推荐
zyl837212 小时前
Docker 使用手册
运维·docker·容器
古月方枘Fry2 小时前
MGRE实验
运维·服务器
stolentime3 小时前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
bush44 小时前
嵌入式linux学习记录四
linux·运维·学习
lihao lihao5 小时前
软硬链接
linux·运维·服务器
TOWE technology5 小时前
智能安防监控系统如何做好防雷?——视频信号SPD综合应用方案解析
运维·服务器·防雷产品·信号保护·信号防雷·spd
楼田莉子5 小时前
Docker学习:Docker介绍及其架构介绍
运维·后端·学习·docker·容器·架构
大明者省6 小时前
IIS 端口绑定正常访问的原理说明与常见误区澄清
运维·服务器·笔记
晚风吹红霞6 小时前
Linux软件包管理器详解 —— yum与apt的使用及软件生态
linux·运维·服务器
曦夜日长7 小时前
Linux系统篇,进程概念(一):计算机体系、操作系统的认识、程序的加载过程
linux·运维·网络