• 那是云首页
  • 快捷导航
  • 更多
    设为首页收藏本站
  • |
花生壳

#楼主# 2020-8-3 14:24

跳转到指定楼层
本帖最后由 momomomo 于 2020-8-3 15:12 编辑

注:本文基于 DS918+ 6.2.3-25426 测试通过,同时可以适用于其他系统以及其他型号的机器。

网上有不少这种教程了,一般都是说去设置 BIOS 来解决,不过经测试在关闭 C 状态支持动态节能技术 之后,网络复制速度倒是挺正常,但是 USB3.0 的读取速度依然很慢,而且波动很大,经常跑到几百KB/s。

通过查看资源监控里的磁盘利用率发现即使读取速度在几百 KB/s 的时候磁盘利用率依然达到 100%,这说明系统对 CPU 资源的调度明显出现了问题。


所以想到了可能是系统中断上面出了问题,于是 SSH 连接到群晖,使用 cat /proc/interrupts 命令发现大部分的系统中断都在使用 CPU0,而其他核心基本在围观,所以基本可以确定是这方面的问题了。

解决方法:

游客,如果您要查看本帖隐藏内容请回复


原理说明:

不建议关闭 CPU 的 C状态支持,实测在关闭后即使调整了 IRQ Affinity,USB3.0 依然不会满速,只是速度会稳定在一个可以接受的水平。

使用 cat /proc/interrupts 命令查看的几个中断号分别的对应关系:

0000:00:12.0 内置 SATA 控制器
0000:03:00.0 ASM1061  SATA 控制器
xhci_hcd USB3.0
eth0 网卡
i915 核心显卡


可以使用 cat /proc/irq/{irq_num}/smp_affinity 查看各个 中断绑定的 CPU,不开 irqbalance 服务的话默认是 f(使用全部四个核心),但是在四个核心全部绑定之后其实大部分时候使用的都是 CPU0,所以性能会很低。

irqbalance 其实是为了解决这个问题的,它可以动态调整中断和CPU核心的绑定关系,可能是群晖系统带的这个 irqbalance 有问题(也可能是配置问题),导致CPU核心的分配的并不是很合理,所以性能依然不稳定。

顺便说一下,前面说了通过网络复制速度正常保持在 100MB/s 左右是因为 eth0 对应的 IRQ 绑定到 CPU2 上了,而 xhci_hcd 是绑定在 CPU0 和 CPU1 的(其实只有 CPU0 在被使用)。

所以我们就禁用  irqbalance 服务,然后手动指定中断和CPU核心的绑定关系即可。

/proc/irq/{irq_num}/smp_affinity 这个文件内容就是指定 IRQ 绑定到哪个 CPU 核心,对于四核心的 J3455 来说,就是一个 4bit 的16进制数字。

使用哪个核心就在这个数字的对应 bit 位设置 1,如二进制 0b1111 表示 0xf 即使用 0-3 四个核心。

我们要做的就是把上面 5 个 IRQ Affinity 分配到这四个核心上(下表仅供参考,可以可以根据需要重新分配)。

IRQ 二进制 十六进制
0000:00:12.0 0010 2
0000:03:00.0 0010 2
xhci_hcd 1000 8
eth0 0100 4
i915 0001 1

将 /proc/irq/{irq_num}/smp_affinity 的值设置一个确定的 CPU 核心上之后,再次测试 USB3.0 的速度就正常了。

评分

参与人数 1贡献 +1 收起 理由
云中鹤 + 1 赞一个!

查看全部评分

「真诚赞赏,手留余香」
那是云论坛 - 国内知名的NAS交流平台
http://www.nasyun.com
分享淘帖
回复 印象

使用道具

0

精华

2

回帖

23

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
22
精华
0
hooligan3203 发表于 2024-5-27 22:02 来自 中国广西玉林
正好碰到这个问题,还是nas云厉害,好几次都是在这找到大神给的解决方案,谢谢
回复 支持 反对 印象

使用道具 举报

0

精华

1

回帖

16

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
15
精华
0
susidong 发表于 2024-5-21 19:20 来自 中国江苏南京
看看是什么内容,学习学习!
回复 支持 反对 印象

使用道具 举报

0

精华

16

回帖

183

积分

入门用户

Rank: 1

云币
0
贡献
13
活跃
110
精华
0
k_9999 发表于 2024-4-3 18:13 来自 中国河南郑州
还是不稳定,最后还是升级BIOS,关闭Intel 动态节能技术,usb3.0满速了。
回复 支持 反对 印象

使用道具 举报

0

精华

16

回帖

183

积分

入门用户

Rank: 1

云币
0
贡献
13
活跃
110
精华
0
k_9999 发表于 2024-3-21 16:40 来自 中国河南郑州
本帖最后由 k_9999 于 2024-4-3 18:15 编辑


7.2下 命令是
systemctl status irqbalance
systemctl stop irqbalance
systemctl disable irqbalance

改了后虽然usb速度快了,但还是不稳定
回复 支持 反对 印象

使用道具 举报

0

精华

16

回帖

183

积分

入门用户

Rank: 1

云币
0
贡献
13
活跃
110
精华
0
k_9999 发表于 2024-3-21 16:21 来自 中国河南郑州
希望这个方法有用。升级7.2后usb卡的不行
回复 支持 反对 印象

使用道具 举报

0

精华

12

回帖

37

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
31
精华
0
落落寡欢 发表于 2024-2-16 18:38 来自 中国新疆昌吉回族自治州
感谢分享~~~~~~~~~~~~~
回复 印象

使用道具 举报

0

精华

1

回帖

6

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
5
精华
0
ltf199763 发表于 2024-2-15 14:21 来自 中国安徽合肥
先马后看              
回复 支持 反对 印象

使用道具 举报

0

精华

2

回帖

11

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
10
精华
0
wangcc 发表于 2023-11-20 22:54 来自 中国江苏扬州
感谢·感谢·感谢·感谢·感谢·感谢·感谢·感谢·
回复 支持 反对 印象

使用道具 举报

0

精华

20

回帖

115

积分

入门用户

Rank: 1

云币
0
贡献
0
活跃
105
精华
0
天朝无敌 发表于 2023-8-7 19:21 来自 中国山西临汾
感谢分享,被这个问题困扰好久
回复 支持 反对 印象

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 搜索 官方QQ群
懒人地图| 手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备2020018196号-1 |网站地图