前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度剖析 CVM ksoftirqd/0进程导致的业务请求缓慢之谜

深度剖析 CVM ksoftirqd/0进程导致的业务请求缓慢之谜

原创
作者头像
SRE扫地僧
修改2024-01-30 09:10:40
2680
修改2024-01-30 09:10:40
举报
文章被收录于专栏:k8s_istiok8s_istio

知其然,更要知其所以然, ksoftirqd 进程会导致 CVM CPU 99%,背后的凶手是谁,让我们逐步揭开这个面纱。

业务表现:API请求变慢,影响用户访问。

现状

业务请求慢,首先查看对应服务器的资源占用情况,发现 ksoftirqd/0 进程 CPU 使用率为99.2%,是什么原因导致的呢?

代码语言:bash
复制
top - 16:48:51 up 1 day, 19:13,  1 user,  load average: 1.52, 1.93, 2.04
Tasks: 162 total,   4 running, 158 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,100.0 si,  0.0 st
%Cpu1  :  5.4 us,  2.3 sy,  0.0 ni, 90.0 id,  0.0 wa,  0.0 hi,  2.3 si,  0.0 st
MiB Mem :   1720.9 total,    175.1 free,    720.8 used,    825.0 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.    844.1 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     10 root      20   0       0      0      0 R  99.2   0.0   2415:06 [ksoftirqd/0]

找方案

问了 GPT,可能原因如下,先从网络流量上开始排查

ksoftirqd/0进程是一个内核线程,它负责处理第一个CPU(CPU0)上的软中断。当ksoftirqd/0的CPU使用率异常高时(在这个案例中为99.2%),通常意味着系统正在处理大量的软中断。这种情况通常与网络流量处理有关,但也可能涉及其他类型的系统活动。

以下是一些排查ksoftirqd/0高CPU使用率的步骤:

  1. 检查网络流量:首先应该检查服务器是否正在处理大量的网络流量。可以使用iftopnloadiptraf等工具来监控网络流量。
  2. 检查网卡配置:检查网卡是否使用了正确的驱动程序,并且配置是否正确。错误或过时的驱动程序可能会导致网卡效率低下,从而增加软中断的处理负担。
  3. 网卡卸载设置:现代网卡通常支持各种卸载技术,如校验和卸载、分散/聚集IO等,这些可以减轻CPU的负担。检查这些设置是否启用,并且是否正确配置。
  4. 内核版本和更新:确保你的系统运行的是最新的内核版本。旧版本的内核可能包含已知的性能问题或bug。
  5. 检查硬件问题:硬件问题,如网卡故障,也可能导致高CPU使用率。检查硬件日志和系统日志中是否有相关错误信息。
  6. 系统调优:系统的一些内核参数,如网络堆栈的大小和行为,可能需要根据你的具体负载进行调整。
  7. 分析软中断:使用/proc/softirqs文件来查看软中断的统计信息,这可以帮助识别是否有特定类型的软中断负载异常高。
  8. 使用工具进行深入分析:使用perfhtop等工具进行更深入的系统性能分析,可能会揭示更多信息。
  9. 检查系统日志:查看/var/log/messages或使用dmesg命令查看内核日志,可能会发现一些导致高CPU使用率的线索。
  10. 寻求专家帮助:如果以上步骤都无法确定问题所在,可能需要寻求Linux系统专家的帮助,他们可以提供更深入的系统分析和故障排除服务。

开始分析

iptraf - 交互式彩色界面的网络监控工具。

安装 iptraf:

代码语言:bash
复制
yum install iptraf

马上发现问题了, ICMPv6 的包太多了

解决问题

在安全组中禁止 icmpv6 协议,问题搞定了,CPU马上降下来了,请求也正常了

  • CPU使用率从80%降到 20%
  • 网络流量下降
  • 子机连接数下降10倍

后续

有问题就有原因,有答案,解决即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 现状
  • 找方案
  • 开始分析
  • 解决问题
  • 后续
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档