searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

adb读写缓慢问题分析

2025-02-07 09:35:29
8
0

问题分析

分析系统环境

银河麒麟操作系统

查看网络配置

查看网络情况,enp133s0f0和enp134s0f0配置mode4组成bond0。
image.png
image.png
查看./sos_commands/networking/ethtool_-S_enp133s0f0和./sos_commands/networking/ethtool_-S_enp134s0f0,发现两个网卡都存在大量的rxX_cache_full的情况。image.png
image.png
查看bond0的rxDrop情况。
image.png

查看enp133s0f0和enp134s0f0网卡队列情况和ring buffer个数,两个网卡的网卡队列数为63,ring buffer个数为1024。
image.png
查看./proc/net/softnet_stat发现第二列和第三列都存在很大的值,查看对应的内核参数net.core.netdev_max_backlog为10000和net.core.netdev_budget为300。
image.png

  • 第一列:processed:表示处理了多少个数据包。
  • 第二列:dropped:表示丢弃了多少个数据包,因为队列满了或者内存不足。
  • 第三列:time_squeeze:表示发生了多少次时间压缩,即软中断处理时间超过了预设的限制
    /proc/net/softnet_stat 的第三列值持续增加,这通常意味着软中断处理时间不足以处理所有入站数据包。在这种情况下,可以尝试增加 net.core.netdev_budget 的值,以允许在单次软中断中处理更多的数据包,从而减少因为处理不及时而推迟或丢弃的数据包数量。
    image.png
查看系统服务

发现irqbalance服务开启状态。
image.png

查看CPU情况

可见CPU是96核,分4个NUMA节点,每个numa节点24个CPU核。
image.png
查看./sys/class/net/enp133s0f0/device/numa_node和./sys/class/net/enp134s0f0/device/numa_node,可见两个网络接口都在numa node 2上。
image.png

分析sa日志

分析内存使用情况

sar -rh -f sa21,查看当时的内存使用情况,可见空闲内存较少,缓存较大。查看./proc/sys/vm/min_free_kbytes为524288,较小。
image.png
sar -rh -f sa20,查看前一天的内存使用情况,内存使用和问题发生时相同。

分析CPU使用情况

sar -u -f sa21,查看cpu使用情况,%system部分占用CPU较高。
image.png
sar -u -f sa20,查看前一天的CPU使用情况,前一天cpu使用情况和问题发生时类似。
image.png

分析负载情况

sar -q -f sa21,查看当时的系统负载,负载偏高。
image.png
sar -q -f sa20,查看前一天的系统负载情况,可见前一天的系统负载也偏高,和问题发生时没有明显差异
image.png

分析messages日志

查看messages日志,日志中没有明确的报错信息。

分析perf采集

0条评论
作者已关闭评论
李****堃
44文章数
7粉丝数
李****堃
44 文章 | 7 粉丝
原创

adb读写缓慢问题分析

2025-02-07 09:35:29
8
0

问题分析

分析系统环境

银河麒麟操作系统

查看网络配置

查看网络情况,enp133s0f0和enp134s0f0配置mode4组成bond0。
image.png
image.png
查看./sos_commands/networking/ethtool_-S_enp133s0f0和./sos_commands/networking/ethtool_-S_enp134s0f0,发现两个网卡都存在大量的rxX_cache_full的情况。image.png
image.png
查看bond0的rxDrop情况。
image.png

查看enp133s0f0和enp134s0f0网卡队列情况和ring buffer个数,两个网卡的网卡队列数为63,ring buffer个数为1024。
image.png
查看./proc/net/softnet_stat发现第二列和第三列都存在很大的值,查看对应的内核参数net.core.netdev_max_backlog为10000和net.core.netdev_budget为300。
image.png

  • 第一列:processed:表示处理了多少个数据包。
  • 第二列:dropped:表示丢弃了多少个数据包,因为队列满了或者内存不足。
  • 第三列:time_squeeze:表示发生了多少次时间压缩,即软中断处理时间超过了预设的限制
    /proc/net/softnet_stat 的第三列值持续增加,这通常意味着软中断处理时间不足以处理所有入站数据包。在这种情况下,可以尝试增加 net.core.netdev_budget 的值,以允许在单次软中断中处理更多的数据包,从而减少因为处理不及时而推迟或丢弃的数据包数量。
    image.png
查看系统服务

发现irqbalance服务开启状态。
image.png

查看CPU情况

可见CPU是96核,分4个NUMA节点,每个numa节点24个CPU核。
image.png
查看./sys/class/net/enp133s0f0/device/numa_node和./sys/class/net/enp134s0f0/device/numa_node,可见两个网络接口都在numa node 2上。
image.png

分析sa日志

分析内存使用情况

sar -rh -f sa21,查看当时的内存使用情况,可见空闲内存较少,缓存较大。查看./proc/sys/vm/min_free_kbytes为524288,较小。
image.png
sar -rh -f sa20,查看前一天的内存使用情况,内存使用和问题发生时相同。

分析CPU使用情况

sar -u -f sa21,查看cpu使用情况,%system部分占用CPU较高。
image.png
sar -u -f sa20,查看前一天的CPU使用情况,前一天cpu使用情况和问题发生时类似。
image.png

分析负载情况

sar -q -f sa21,查看当时的系统负载,负载偏高。
image.png
sar -q -f sa20,查看前一天的系统负载情况,可见前一天的系统负载也偏高,和问题发生时没有明显差异
image.png

分析messages日志

查看messages日志,日志中没有明确的报错信息。

分析perf采集

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
1
0