尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

负载排查和分析二

负载排查和分析二
📅 发布时间:2026/6/19 19:36:45

负载排查和分析二

明白了,我来帮你做两件事:

  1. 改进中断部分:完善硬中断、软中断触发机制和它们之间的关联关系,增加图示和说明。

  2. 优化整个文档美观性:用清晰的表格、层次分明的标题、缩进流程图、代码块高亮,保证可读性和美观性。

下面是改进后的完整文档草稿:


Linux 网络优化与性能分析完全指南


1️⃣ 中断与软/硬中断机制

1.1 中断(IRQ)概念

  • 定义:CPU 在执行任务时,外设或内核事件请求 CPU 立即响应。

  • 作用:及时处理外设请求和系统事件,保证系统响应及时、稳定。


1.2 硬中断(Hard IRQ)

  • 触发方式:外设通过总线(如 PCIe)向 CPU 发送中断信号。

  • 执行上下文:CPU 当前执行的任务被打断,立即进入中断上下文。

  • 作用:

    • 快速响应设备事件,如网卡收包、磁盘 I/O、定时器。

    • 优先级高,必须短时间完成。

  • 查看方法:

cat /proc/interrupts

1.3 软中断(Soft IRQ)

  • 触发方式:

    1. 硬中断处理完成后,硬中断处理程序将部分任务延迟到软中断执行。

    2. 内核通过 ksoftirqd 线程在非中断上下文中处理。

  • 作用:

    • 处理硬中断后延迟任务,如网络协议栈、定时任务。

    • 可分发到多个 CPU 核心,提高 CPU 利用率。

  • 优化手段:

    • RPS(Receive Packet Steering):将网络软中断分发到多个 CPU。

    • RFS(Receive Flow Steering):按流绑定 CPU,提高 cache locality。

  • 查看方法:

cat /proc/softirqs

1.4 硬中断与软中断触发关系

+----------------+
| 外设事件触发    |
+----------------+|v
+----------------+
| 硬中断处理 IRQ |
| (CPU 打断当前任务) |
+----------------+|v
+----------------+
| 软中断触发 SoftIRQ |
| (延迟处理任务, ksoftirqd) |
+----------------+|v
+----------------+
| 用户态应用 / 网络协议栈处理 |
+----------------+

1.5 硬/软中断对比

项目硬中断软中断
触发方式 外设直接发中断信号 硬中断处理后触发
执行上下文 当前 CPU 上下文 ksoftirqd 内核线程
优先级 高 中
作用 立即响应设备事件 延迟处理任务,如网络收包
调整方法 IRQ 绑核 /proc/irq/*/smp_affinity_list RPS/RFS /sys/class/net/*/queues/rx-*

2️⃣ 网络优化基础

2.1 网卡 Offload

  • 作用:减轻 CPU 负载,让网卡处理部分协议。

  • 参数:

    • TSO: TCP 分段

    • GSO: 通用分段

    • GRO: 通用接收聚合

  • 查看:

ethtool -k eth0
  • 开启:

ethtool -K eth0 tso on gso on gro on

2.2 IRQ 绑核

  • 作用:将硬中断绑定到指定 CPU,提高多核性能。

  • 示例:

echo 2-15 > /proc/irq/<IRQ>/smp_affinity_list

2.3 RPS / RFS

  • 作用:将软中断分发到多核,提高网络吞吐。

  • 配置:

    • rps_cpus:CPU 掩码

    • rps_flow_cnt:RFS flow 数量

  • 查看:

cat /sys/class/net/eth0/queues/rx-*/rps_cpus
cat /sys/class/net/eth0/queues/rx-*/rps_flow_cnt

2.4 TCP/UDP Buffer

  • 作用:增大内核缓冲区,提升高并发性能。

  • 参数:

    • net.core.rmem_max

    • net.core.wmem_max

    • net.ipv4.tcp_rmem

    • net.ipv4.tcp_wmem


3️⃣ 网络优化脚本(查询/设置/打印状态)

#!/bin/bash
# network_optimize.sh
NIC="eth0"
CPULIST="2-15"
RMEM_MAX=16777216
WMEM_MAX=16777216
TCP_RMEM="4096 87380 16777216"
TCP_WMEM="4096 87380 16777216"
RPS_CPUS="ffff"
RPS_FLOW_ENTRIES=32768echo "=== 网络优化: $NIC ==="
...

(保留前面完整脚本内容,可直接执行)


4️⃣ 动态软中断统计脚本

#!/bin/bash
# softirq_stats.sh
awk '
...
' /proc/softirqs

5️⃣ 动态硬中断统计脚本

#!/bin/bash
# hardirq_stats.sh
awk '
...
' /proc/interrupts

6️⃣ 使用说明

  • 网络优化:./network_optimize.sh

  • 软中断统计:./softirq_stats.sh

  • 硬中断统计:./hardirq_stats.sh

  • 诊断优化:根据占比高的中断类型调整 RPS/RFS、IRQ 绑核或硬件升级


7️⃣ 性能分析(Perf 全套流程)

7.1 Step1: 基础统计

perf stat -a -d sleep 5

全面指标分析:

指标含义分析方向
cycles CPU 时钟周期 CPU 总体负载
instructions 执行指令数 CPI = cycles/instructions
cache-references 缓存访问次数 缓存利用效率
cache-misses 缓存未命中 高 → CPU stall / NUMA 远程访问
branch-misses 分支错误 高 → pipeline stall
context-switches 上下文切换次数 高但 syscall 正常 → 调度/锁争用
cpu-migrations 进程迁移次数 高 → NUMA 或负载均衡影响
page-faults 页面错误次数 高 → 内存不足或 NUMA 远程访问
minor-faults 非阻塞页错误 大量 → 内存压力
major-faults 阻塞页错误 大量 → I/O 或内存压力
syscalls 系统调用次数 高 → I/O/网络/文件瓶颈
cycles.stalled CPU 停顿周期 pipeline stall 或 cache miss

7.2 Step2 ~ 7.5

  • Step2:perf trace -a 分析系统调用

  • Step3:perf sched record -a -g sleep 10 + perf sched latency 调度/锁分析

  • Step4:perf top -a 热点分析

  • Step5:perf record -a -g sleep 10 + perf report 深入分析


7.6 分支思路总结

现象分析方法可能原因
syscalls 高 perf trace -a I/O/网络/文件系统瓶颈
context-switch 高 perf sched record/latency 调度/锁争用
page-fault 高 /proc/softirqs + perf top 内存/NUMA 远程访问
CPI 高但 syscall/ctx/fault 正常 perf top -a CPU stall、cache miss、NUMA

8️⃣ 网络优化 + 性能诊断闭环流程图

+---------------------+
|     网络收包        |
|  (NIC Hard IRQ)     |
+---------+-----------+|v
+---------------------+
|  硬中断绑核 / RPS   |
|  irq_affinity / RPS |
+---------+-----------+|v
+---------------------+
| ksoftirqd / SoftIRQ |
| (网络、调度任务)    |
+---------+-----------+|v
+---------------------+
|   TCP/UDP Buffer    |
| rmem/wmem/tcp_*     |
+---------+-----------+|v
+---------------------+
| 用户态应用 / syscall |
| perf stat/top 分析  |
+---------+-----------+|v
+---------------------+
| 调度 / 锁分析       |
| perf sched/latency  |
+---------+-----------+|v
+---------------------+
| 深入热点分析         |
| perf record/report   |
+---------------------+

 

相关新闻

  • 深入解析:老树发新芽:六西格玛培训为石油机械制造注入持久活力
  • YC大佬分享的 10 个 vibe coding技巧,看完收获巨大
  • 负载排查和优化

最新新闻

  • 7月1日超龄用工新规落地,企业劳动合同管理必须跨过这道合规关
  • 微信网页版访问终极指南:wechat-need-web插件完整使用教程
  • OBS Spout2插件:打破Windows视频制作生态壁垒的专业级纹理共享技术方案
  • 白银市奢侈品手表包包回收价格差距高达15%:实测对比告诉你哪家店报价最实在 - 谊识预商贸
  • HS2-HF_Patch终极指南:Honey Select 2汉化去码增强补丁完全解析
  • 白银市闲置手表包包奢侈品变现,整理了5家靠谱回收店联系方式 - 谊识预商贸

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号