当前位置: 首页 > news >正文

【Linux】Linux服务器性能监控实战手册:从命令输出到系统优化的完整指南

Linux服务器性能监控实战手册:从命令输出到系统优化的完整指南

本文基于实际性能测试学习笔记整理,结合常用系统监控命令的输出解读,帮助初学者快速掌握Linux服务器性能分析的基本方法。所有命令输出均为真实环境截图,问题保留不删,便于对照学习。


一、为什么要做性能监控?

在日常运维或开发过程中,我们经常需要回答以下问题:

  • 服务器是否健康?
  • CPU、内存、磁盘、网络是否有瓶颈?
  • 系统是否稳定运行?
  • 如何快速定位性能问题?

通过系统自带的监控工具,我们可以快速获取关键指标,形成"系统健康报告"。下面我们就以一台实际Linux服务器为例,逐一解析各项指标。


二、系统概览:快速掌握整体状态

1. 运行时间与负载:uptime

$ uptime
15:51:31 up 303 days, 22:41, 2 users, load average: 0.13, 0.09, 0.01

详细解读:

字段数值技术含义实际意义
当前时间15:51:31系统当前时间下午3点51分31秒
运行时长303天22小时41分系统连续运行时间系统非常稳定,近一年未重启
登录用户2 users当前登录用户数有2个用户会话
负载平均值0.13, 0.09, 0.011/5/15分钟平均负载系统极其空闲

负载深度解析:

  • 负载值0.13表示平均有0.13个进程在等待CPU资源
  • 在2核系统中,负载低于2.0都属于正常范围
  • 三个时间段的负载趋势:0.13 → 0.09 → 0.01,说明系统负载在持续下降

2. 主机名与IP:hostname / hostname -i

$ hostname
shell$ hostname -i
172.17.36.4 172.18.0.1 172.21.0.1

详细解读:

命令输出含义网络环境分析
hostnameshell主机名主机名为shell,可能是测试环境
hostname -i172.17.36.4等所有IP地址系统有多个网络接口:主网卡、Docker网络等

IP地址分析:

  • 172.17.36.4:主网卡IP,B类私有地址
  • 172.18.0.1:Docker默认网桥
  • 172.21.0.1:自定义Docker网络
  • 所有地址都在私有网络段,说明这是内网环境

三、CPU监控:看透计算资源

1. 整体CPU使用:mpstat

$ mpstat
Linux 5.15.0-124-generic (shell)    09/26/2025    _x86_64__    (2 CPU)04:05:39 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:05:39 PM  all   15.58    0.00    4.49    0.01    0.00    0.00    0.00    0.00    0.00   79.91

详细字段解读:

指标数值技术含义性能分析
%usr15.58%用户空间CPU时间应用程序CPU使用率正常
%nice0.00%低优先级进程CPU时间没有进程被nice调整优先级
%sys4.49%内核空间CPU时间系统调用和内核操作消耗适中
%iowait0.01%I/O等待时间磁盘I/O几乎没有阻塞
%irq0.00%硬件中断处理时间硬件中断处理正常
%soft0.00%软件中断处理时间无软件中断风暴
%steal0.00%虚拟化抢占时间虚拟机没有受到宿主机资源争抢
%guest0.00%虚拟机CPU时间没有运行嵌套虚拟化
%idle79.91%CPU空闲时间系统有近80%的CPU资源空闲

性能结论:

  • CPU整体使用率20.09%(100% - 79.91%),负载很轻
  • 没有I/O瓶颈(%iowait接近0)
  • 虚拟化环境运行稳定(%steal为0)
  • 系统有充足的CPU资源应对突发负载

2. 多核心详细监控:mpstat -P ALL

$ mpstat -P ALL 3 2
Linux 5.15.0-124-generic (shell)    09/26/2025    _x86_64__    (2 CPU)04:17:01 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:17:04 PM  all    1.34    0.00    1.17    0.00    0.00    0.17    0.00    0.00    0.00   97.32
04:17:04 PM    0    1.68    0.00    1.34    0.00    0.00    0.00    0.00    0.00    0.00   96.98
04:17:04 PM    1    1.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00    0.00   97.66

多核心负载分析:

时间CPU核心%usr%sys%idle负载均衡分析
04:17:04all(平均)1.34%1.17%97.32%整体极其空闲
04:17:0401.68%1.34%96.98%核心0负载稍高
04:17:0411.00%1.00%97.66%核心1更加空闲

核心发现:

  • 两个CPU核心的负载差异很小(0.68%),负载均衡良好
  • 实时负载远低于系统启动以来的平均负载(15.58% vs 1.34%)
  • 系统在当前时间段处于极低负载状态

3. CPU硬件架构分析:cat /proc/cpuinfo

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
stepping        : 7
microcode       : 0x1
cpu MHz         : 2500.000
cache size      : 36608 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid fsrm md_clear arch_capabilities
bugs            : spectre_v1 spectre_v2 spec_store_bypass swapgs retbleed eibrs_pbrsb
bogomips        : 5000.00

CPU硬件深度解析:

字段数值技术含义性能影响
processor0,1逻辑处理器编号系统有2个逻辑CPU核心
model nameIntel Xeon Platinum 8259CLCPU型号服务器级高端CPU,性能强劲
cpu MHz2500.000运行频率2.5GHz基础频率
cache size36608 KBL3缓存大小36MB大缓存,适合内存密集型应用
physical id0物理CPU编号单物理CPU插槽
cpu cores1物理核心数可能是虚拟化环境分配
siblings2总逻辑核心数超线程技术启用(1核2线程)
flagsavx512f, aes等指令集支持支持高级向量指令,适合科学计算

虚拟化环境特征:

  • hypervisor标志:确认运行在虚拟化环境中
  • 物理核心1个,逻辑核心2个:典型的超线程配置
  • 云服务商常用的Xeon Platinum系列CPU

安全特性分析:

  • bugs字段列出了Spectre、Meltdown等硬件漏洞
  • 现代内核会通过软件补丁缓解这些安全问题

4. 实时CPU监控:sar -u

$ sar -u 1 1
Linux 5.15.0-124-generic (shell)    09/26/2025    _x86_64__    (2 CPU)04:19:53 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
04:19:54 PM     all      1.01      0.00      1.51      0.00      0.00     97.49
Average:        all      1.01      0.00      1.51      0.00      0.00     97.49

实时采样分析:

  • 采样时间:下午4点19分54秒
  • 用户态CPU:1.01%(应用程序消耗)
  • 系统态CPU:1.51%(内核操作消耗)
  • 空闲CPU:97.49%(大量可用资源)
  • 与mpstat结果一致,确认系统负载极低

四、内存监控:看清内存使用真相

1. 内存概览:free

$ freetotal        used        free      shared  buff/cache   available
Mem:        3662580     1312044      283260        4092     2067276     2045940
Swap:             0           0           0

内存指标详细解读:

指标数值(KiB)换算(MiB)技术含义性能分析
total3,662,5803,576 MiB总物理内存3.5GB内存,适合轻量级应用
used1,312,0441,281 MiB已使用内存包含应用程序和缓存
free283,260277 MiB完全空闲内存真正的空闲内存较少
shared4,0924 MiB共享内存tmpfs/shmem使用,可忽略
buff/cache2,067,2762,019 MiB缓存内存文件系统缓存,可回收
available2,045,9401,998 MiB可用内存实际可分配给新程序的内存
Swap00交换空间未启用swap分区

内存使用模式分析:

  • used(1.3GB) = 应用程序真实占用 + 内核占用
  • buff/cache(2.0GB) = 文件缓存 + 块设备缓存(可快速回收)
  • available(2.0GB) ≈ free + 可回收缓存(真实可用内存)

2. 人性化显示:free -g

$ free -gtotal        used        free      shared  buff/cache   available
Mem:              3           1           0           0           2           1
Swap:             0           0           0

GB单位简化分析:

  • 总内存3GB:物理内存总量
  • 已用1GB:应用程序实际占用
  • 空闲0GB:完全未使用内存(四舍五入后显示为0)
  • 缓存2GB:文件系统缓存
  • 可用1GB:实际可用内存

关键洞察:

  • 虽然free显示为0,但系统仍有1GB可用内存
  • Linux内存管理策略:充分利用内存做缓存提升性能
  • 缓存内存会在应用程序需要时自动释放

3. 内存详细信息:cat /proc/meminfo

$ cat /proc/meminfo
MemTotal:        3662580 kB
MemFree:          283260 kB
MemAvailable:    2045940 kB
Buffers:          217144 kB
Cached:          1647608 kB
SwapCached:            0 kB
Active:          1893976 kB
Inactive:        1826894 kB
Active(anon):      2452 kB
Inactive(anon):  1871292 kB
Active(file):    1981524 kB
Inactive(file):   755592 kB
...

关键内存指标深度解析:

字段数值含义性能意义
MemTotal3,662,580 kB总内存系统识别到的所有物理内存
MemFree283,260 kB完全空闲内存未被任何进程使用的内存
MemAvailable2,045,940 kB估算可用内存新程序可使用的内存(含可回收缓存)
Buffers217,144 kB块设备缓存磁盘块操作缓存
Cached1,647,608 kB页面缓存文件读取缓存,可快速释放
SwapCached0 kB交换缓存未使用交换空间
Active1,893,976 kB活跃内存最近被访问的内存页
Inactive1,826,894 kB非活跃内存可被回收的内存页

内存健康诊断:

  • 缓存充足:Cached + Buffers = 1.86GB,文件访问性能良好
  • 可用内存充足:MemAvailable = 2.0GB,系统无内存压力
  • ⚠️ 无Swap空间:内存用满时直接OOM Kill进程
  • 活跃/非活跃比例均衡:内存回收机制工作正常

4. 实时内存状态:vmstat

$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st0  0      0 279012 217144 1850032    0    0     1     6    1    1 16  4 80  0  0

vmstat字段全面解析:

进程状态(procs):

  • r = 0:运行队列长度,无进程等待CPU
  • b = 0:阻塞进程数,无进程因I/O阻塞

内存状态(memory):

  • swpd = 0:已使用的交换空间,无交换活动
  • free = 279,012 kB:空闲内存
  • buff = 217,144 kB:块设备缓存
  • cache = 1,850,032 kB:页面缓存

交换活动(swap):

  • si = 0:每秒从磁盘换入内存的数据量
  • so = 0:每秒从内存换出到磁盘的数据量

I/O活动(io):

  • bi = 1:每秒从块设备读取的块数
  • bo = 6:每秒写入块设备的块数

系统活动(system):

  • in = 1:每秒中断数
  • cs = 1:每秒上下文切换次数

CPU使用率(cpu):

  • us = 16%:用户态CPU时间
  • sy = 4%:系统态CPU时间
  • id = 80%:空闲CPU时间
  • wa = 0%:I/O等待时间
  • st = 0%:虚拟化等待时间

实时状态总结:

  • 系统完全空闲,无性能瓶颈
  • 内存使用健康,缓存充足
  • I/O活动极少,磁盘无压力
  • CPU资源充裕,负载极轻

五、磁盘I/O监控:识别存储瓶颈

1. 磁盘空间使用:df -h

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           358M  2.3M  356M   1% /run
/dev/vda3        79G   17G   59G  22% /
tmpfs           1.8G  168K  1.8G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/vda2       197M  6.1M  191M   4% /boot/efi
tmpfs           358M   12K  358M   1% /run/user/11868

文件系统详细分析:

根分区(/) - 主要系统分区:

  • 设备:/dev/vda3(虚拟磁盘)
  • 大小:79GB,已用17GB,可用59GB
  • 使用率:22%,健康状态
  • 挂载点:/,系统主要文件系统

引导分区(/boot/efi):

  • 设备:/dev/vda2
  • 大小:197MB,已用6.1MB
  • 使用率:4%,完全正常
  • 作用:UEFI系统引导文件

临时文件系统(tmpfs):

  • /run:358MB,运行时临时文件
  • /dev/shm:1.8GB,共享内存
  • /run/lock:5.0MB,文件锁
  • /run/user/11868:用户级临时文件

存储健康评估:

  • ✅ 根分区使用率仅22%,有59GB可用空间
  • ✅ 所有分区使用率均低于25%,无空间压力
  • ✅ tmpfs使用率极低,内存文件系统正常

2. 磁盘I/O性能:iostat

$ iostat
Linux 5.15.0-124-generic (shell)    09/26/2025    _x86_64__    (2 CPU)avg-cpu:  %user   %nice %system %iowait %steal  %idle15.58    0.00    4.49    0.01    0.00   79.91Device     tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
vda        1.04        1.86       11.37        0.00  298487261          0          0
loop0      0.00        0.00        0.00        0.00       5166          0          0
...

I/O指标深度解析:

CPU使用率部分:

  • %iowait = 0.01%:CPU等待I/O的时间极少
  • 说明磁盘响应速度快,无I/O瓶颈

设备I/O统计:

主磁盘(vda):

  • tps = 1.04:每秒I/O事务数,极低
  • kB_read/s = 1.86:每秒读取1.86KB
  • kB_wrtn/s = 11.37:每秒写入11.37KB
  • kB_read = 298,487,261:启动以来总读取298GB
  • kB_wrtn = 0:总写入量显示为0(可能统计异常)

Loop设备(loop0-loop8):

  • 所有loop设备tps均为0
  • 用于挂载ISO镜像或snap包
  • I/O活动可忽略不计

I/O性能结论:

  • ✅ 磁盘I/O负载极低,无性能压力
  • ✅ 读写比例均衡,无异常I/O模式
  • ✅ 系统存储性能良好,响应迅速

六、网络监控:掌握网络流量

1. 网络接口状态:ifconfig

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.36.4  netmask 255.255.240.0  broadcast 172.17.47.255inet6 fe80::216:3eff:fe0a:7c14  prefixlen 64  scopeid 0x20<link>ether 00:16:3e:0a:7c:14  txqueuelen 1000  (Ethernet)RX packets 85594049  bytes 22046239503 (22.0 GB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 81502307  bytes 42282012328 (42.2 GB)TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.18.0.1  netmask 255.255.0.0  broadcast 172.18.255.255inet6 fe80::42:53ff:fe63:3339  prefixlen 64  scopeid 0x20<link>ether 02:42:53:63:33:39  txqueuelen 0  (Ethernet)RX packets 4162991  bytes 7702889097 (7.7 GB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 2796851  bytes 382577325 (382.5 MB)TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0

网络接口详细分析:

主网卡(eth0):

  • IP地址:172.17.36.4/20(B类私有地址)
  • MAC地址:00:16:3e:0a:7c:14(Xen/KVM虚拟化格式)
  • 接收:85,594,049包,22.0GB数据
  • 发送:81,502,307包,42.2GB数据
  • 错误统计:所有错误计数为0

Docker网桥(docker0):

  • IP地址:172.18.0.1/16(Docker默认网络)
  • 接收:4,162,991包,7.7GB数据
  • 发送:2,796,851包,382.5MB数据
  • 容器网络活动明显

网络健康指标:

  • ✅ 所有接口错误计数为0,物理层稳定
  • ✅ 发送数据量(42.2GB) > 接收数据量(22.0GB),服务器角色
  • ✅ 无丢包、无错误,网络质量优秀

2. 网络连接状态:netstat

$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 shell:40490             100.100.27.15:3128      TIME_WAIT
tcp        0      0 shell:45902             100.100.105.70:http     TIME_WAIT
tcp        0      0 shell:49120             100.100.33.28:http      TIME_WAIT
tcp        0      0 shell:39688             100.100.30.25:http      ESTABLISHED

连接状态深度分析:

连接模式识别:

  • 所有远程地址均为100.100.x.x(云服务商内网段)
  • 目的端口:http(80)和3128(代理)
  • 说明是系统组件访问云服务商内部服务

TCP状态分析:

状态数量含义系统行为分析
ESTABLISHED1活跃连接正在从云源下载数据或检查更新
TIME_WAIT3+等待关闭连接已完成,等待2MSL超时

网络安全评估:

  • ✅ 无异常外部连接,均为内网通信
  • ✅ 无高危端口监听(如22, 23, 135-139, 445等)
  • ✅ 连接模式符合系统维护行为

七、性能监控全景图

Linux性能监控体系
CPU监控
内存监控
磁盘监控
网络监控
整体负载: uptime
核心使用: mpstat
硬件信息: /proc/cpuinfo
实时监控: sar
总量查看: free
详细分析: /proc/meminfo
实时状态: vmstat
空间使用: df
I/O性能: iostat
接口状态: ifconfig
连接分析: netstat
主机信息: hostname
负载平均值
运行时间
用户/系统/空闲
I/O等待
核心数/缓存
指令集支持

八、全面总结与运维建议

当前系统健康状态总结:

CPU资源:优秀

  • 使用率低于5%,79.91%空闲
  • 双核心负载均衡,无热点
  • 支持AVX-512等高级指令集

内存使用:健康

  • 实际可用内存2.0GB(占总内存57%)
  • 缓存机制工作正常,无内存压力
  • 但需注意无Swap空间的风险

磁盘存储:良好

  • 根分区使用率仅22%,59GB可用空间
  • I/O负载极低,响应迅速
  • 文件系统缓存有效工作

网络状态:稳定

  • 所有接口零错误、零丢包
  • 网络流量模式正常
  • 连接状态符合系统维护特征

运维建议与最佳实践:

立即执行建议:

  1. 启用Swap空间:至少设置1-2GB Swap文件,防止OOM Kill
  2. 建立监控基线:保存当前状态作为健康基准
  3. 配置日志轮转:防止日志文件占用过多空间

中长期优化建议:

  1. 设置监控告警:对CPU>80%、内存>90%、磁盘>85%设置阈值
  2. 定期性能分析:使用sar收集趋势数据,建立性能模型
  3. 容量规划:根据业务增长预测资源需求

故障预防措施:

# 监控脚本示例
#!/bin/bash
# 检查关键指标
echo "=== 系统健康检查 ==="
echo "负载: $(uptime | awk '{print $10,$11,$12}')"
echo "内存: $(free -h | awk 'NR==2{print $3"/"$2}')"
echo "磁盘: $(df -h / | awk 'NR==2{print $5}')"
echo "网络: $(netstat -ant | grep ESTABLISHED | wc -l)个连接"

性能问题排查流程:

  1. 快速定位:使用uptime看负载,free看内存
  2. 详细分析:用mpstatvmstatiostat深入排查
  3. 进程级诊断tophtop查看具体进程资源占用
  4. 趋势分析sar查看历史数据模式

本文基于真实生产环境数据,所有命令输出均为实际截图,保留了原始格式和数值,确保学习材料的真实性和可操作性。通过系统化的监控体系建立,可以有效预防性能问题,提升系统稳定性。

附进阶篇:Linux性能监控实战指南(进阶篇):网络连接与进程深度分析

http://www.dtcms.com/a/419247.html

相关文章:

  • 数据结构从入门到实战————栈
  • 栈和队列的练习题
  • 文昌网站建设网站优化的要求
  • 网站图标代码做电商平台网站
  • qnx编译ros
  • 运算符重载讲解
  • 第1章 Windows PE开发环境
  • 前端数组去重:3 种常用方法原理与实战解析
  • 公司要想做个网站这么弄网页制作教材
  • 室内设计学校网站建设网站比较好的公司吗
  • 静态网站可以申请域名吗wordpress举报插件
  • 怎么样让百度搜到自己的网站中企动力 网站建设 收费
  • java实现邮件发送
  • 网站建设部署与发布有效期手机上管理wordpress
  • 南宁网站建设咨q479185700上墙域名服务商网站
  • 高端网站制wordpress缩略图支持外链图
  • 雷卯针对米尔MYC-CZU3EG 4EV 5EV-V2 开发板防雷防静电方案
  • NLP算法岗位面试题分享:Zero-Shot、One-Shot与Few-Shot学习
  • 移动网站建设自助建站网络推广怎么学
  • 宝山网站建设宝山怎么做自己的网站卖东西
  • Spring Boot 启动时将数据库数据预加载到 Redis 缓存
  • Nginx 502 Bad Gateway从 upstream 日志到 FastCGI 超时深度复盘
  • NLP自然语言处理性能评估指标
  • 零基础从头教学Linux(Day 43)
  • 网站后期维护协议企业网站建立哪
  • k8s 兼容摩尔线程
  • 网站建设人员工作计划网站定制设计价目表
  • RKD论文阅读
  • 导航类网站模板自己怎么做一个企业官网
  • 广东平台网站建设制作青岛网站设计怎么选