个人使用Nas黑群晖的历史4:速度!速度!还是速度!
从初用手机分享文件只有7MB/s,到100mbps网络的11MB/s,后来升级到了1000mbps的115MB/s,随着数据量增大,当更换到10G网络时,速度的提升变得不那么容易了,颇费了一番周折,我想记录下,这个过程,也许有人看到会有帮助。
如何提升速度?使用场景:
Nas有很多使用场景,每个人的用法也不尽相同,如果是为了观影,千兆网络足够,甚至绝大多数情况百兆也行,蓝光原盘的码率也只有6-8M,但是随着数据量的增加,每次移动数据,整理或者访问时千兆网络就显得捉襟见肘了。比如在一个Nas上有100T的数据,当我想要检索访问时,100MB的速度,要完读一次,需要十多天,这是完全无法接受的。升级网络变成了必须。我的访问场景是用PC的windows系统,通过SMB挂在映射磁盘。这应该是比较典型的场景。本文都以次展开,主要讨论如果遇到了速度不达标,应该如何排查,以及在Nas选配时,如何能与自己的目标访问速度匹配。
哪些地方会成为速度的瓶颈?
如果想从应用级别达到满意的速度,应该系统性考虑速度的瓶颈在哪里,这就需要对系统中每个传输环节来注意考量。不言自明的一个前提是,应用的最低速度受限于系统中的最低速度。在千兆以前,速度似乎不是什么难题,比较常见都能跑到110MB,这就是千兆网络的理论速度了,但是如果升级了万兆故事就来了,下文分别从硬件到软件来聊聊系统的速度瓶颈。
硬件:
根据通常的数据流向,当一次访问发起时,数据时这样传输的:
硬盘- 》南桥/Sata转PCI或pcie-》CPU-》内存-》CPU-》南桥/pcie-》网卡—网线—网卡-》南桥/pcie-》CPU-》内存-》CPU-》硬盘。
这个传输路径是典型的路径,并非所有都是这样,而这个路径中的每一个步骤,都有可能是让你整体访问速度降低的瓶颈。
1.硬盘-》南桥:10年之后的机械硬盘普遍使用sata3,6gbps,半双工,出去协议开销,接口极限速度大概550MB,sata2 3gbps,接口极限速度大概260MB。
2.南桥-》CPU intel这边叫做DMI,AMD直接用pcie,版本一一对应,DMI1.0/PCIE1.0*4 1GB(2004),DMI2.0/PCIE2.0*4 2GB(2011), DMI3.0 PCIE3*4 4GB(2015),DMI4.0 PCIE3*8 8GB(2021)
CPU-内存 或者 内存-CPU 与DDR的频率和通道数相关,消费类最多2通道,DDR 400:3.2GB;DDR2 800:6.4GB;DDR3 1600:12.8GB;DDR4 3200:25.6GB;DDR5 6400:51.2GB,双通道翻倍,在万兆网卡的环境中,内存访问速度不会是瓶颈,如果上40G网卡,多通道内存会对访问速度有影响。
南桥/pcie-》网卡,这里的速度要看pcie的版本和通道数,千兆网卡pcie随便一个单通道就可以,但是对于2.5G/5G/10G,对pcie速度要求超过网卡的速度,10G网卡如果是pcie4.0单通道即可。pcie3.0 需要至少2通道才能跑满,如果是pcie2.0 需要4通道。双10G网口的网卡,会给出pcie 2.0 *8通道。常见的二手服务器卡x540都是这个规格。如果10G网卡插在南桥的pcie上,则会占用南桥到CPU的带宽,对于10G网卡是不推荐的。增加延迟,且会噪声南桥数据量过大。
这里做个总结,CPU和内存之间的带宽,在1GB的速度是不用关心的,如果使用40G网卡,就要关注了,双通道的内存对4G读写是有帮助的。
最容易忽视的两个问题:
1.没关注DMI总线带宽,如果使用较老的硬件,或者奔腾赛扬CPU,DMI版本较低,DMI2.0理论速度2GB, 实际还要打个折扣,实测只有1.5G。DMI是全双工接口,不用考虑双向交互的限制。
2.高速网卡插在了南桥引出的PCIE上,这里的PCIE因为共享DMI总线的带宽,无论如何都不能超过DMI总线的带宽。
硬盘速度
上述是传输链路的速度,再看下硬盘的速度。
机械硬盘以HC550为例,速度曲线如下,外圈最高250MB,内圈最高120MB

这个结果已经是机械硬盘中比较优秀的,如果是5400转,或者是2.5寸机械硬盘,那么速度还会严重下降,可能会低至60MB。
固态硬盘速度很好,即使sata接口的老古董,也轻松跑上300MB,空盘上500MB很轻松。M2接口的NVME盘 轻松上GB,对已用容量敏感。通常不是速度的瓶颈。
软件:
这里涉及到了windows 系统,smb协议,Nas 黑群晖系统。
请注意,smb的协议以及windows 资源管理器,对速度也是有限制的。smb 1.0 10MB;smb2.0 200MB,smb 3.0 >2GB, windows资源管理器限制2GB。
smb如果开启签名或者加密会消耗大量cpu算力,打开smb压缩,对部分内容传输速度有提升。
群晖系统的限制不容易给出具体的结论,从官网得知,很多机型可以访问速度到6-7GB,因此群晖的瓶颈很高,对于10G网络还是很轻松。
如何得到更快的访问速度?
上述讨论了软件和硬件的限制,那么如何带着这些限制,来提高速度?显而易见的方法是提升瓶颈,NAS当前大多使用机械硬盘,机械硬盘的速度很低。
1. 最容易的就是组raid,这里以raid5为例,理论速度可以提升到单盘的(n-1)倍。
2.全换固态成本又太高,那么可以增加SSD作为读写缓存,对提高速度很有帮助,尤其对小文件。
坑和Tips
说了不少理论上的东西,再说说我在折腾过程中使用的小技巧以及遇到的坑:
PCI千兆网卡速度达跑不满,曾经尝试了PCI网卡,不是PCIE网卡,速度只能60-70MB, 更神奇的是,在组SMB多通道时,加入了PCI网卡,速度只降到25MB,原因至今不清楚。
SMB多通道对于不想升级10网卡的情况,很好用,速度叠加,成本不高,功耗也低。
USB千兆网卡基本能跑满,前提是单个,如果超过了3个,而且主机只有一个USB host,那么有可能无法同时跑满,这是应为USB3.0 的限制,而且USB的千兆网卡会消耗CPU算力,无法像PCIE千兆网卡一样,使用DMA传输,这是由于USB协议和驱动两者共同决定的。USB网卡同时使用最好不要超过三个。
X540这种老的万兆网卡功耗很高,由此引出的问题是,需要很好的散热,曾用过4*4小风扇散热,在使用过程中,夏天会掉驱动,表现就是在设备管理器中,这个网卡有个叹号,无法连接。重新启用后就好用了。但是不过很久,又开始出现了叹号,并且,如果使用了双网口,发热更厉害。后来换了5*5的暴力扇解决了,稳定使用了。虽然这个东西便宜,但是功耗真大,单网口10W,双网口17W,如果是在NAS中上期开机使用,耗电成本很高,不如买新的10G电口网卡,只有300+,功耗1W多。
10G网卡如果插在南桥上,会损失速度,我在老平台上测试的。
PCIE3.0 X1跑不满10G网口,至少x2.
速度排查顺序和步骤
网速不达标时,先查看协商速率,如果协商速率不够,大概率是网线的问题。
当协商速率明确后,就可以跑测速了,iperf这种,或者nas上有些hometools小工具,10G网口如果能测试到9Gbps就算合格了,不用太折腾了,这个和千兆网口不一样,如果测速上不去,需要看下MTU,改到9014这种大包。
当测速够了之后,建立SMB访问,可以先从NVME的固态开始测,读写两地都是NVME,硬盘不会是速度的瓶颈,如果不达标,那么就要看下SMB的版本问题,保证是SMB3. 同时因为SMB在高速下对CPU要求高,所以,也需要注意CPU占用,如果满了就是CPU性能不行了。
对于机械盘,必须建立raid存储才能跑满10G,8盘的raid5读写可以满足1GB的样子。如果此时跑不满,就要看看硬盘的占用率了。机械盘总有波动也属于正常,如果NAS套件不放在阵列里还好,但是没办法避免群晖的系统占用。
如果硬盘占用没有满,但是速度还是上不去,还是要排除硬盘的问题。我曾遇到过硬盘显示占用不满 ,但是速度上去不,发现部分硬盘是不从南桥的sata接出来的,而是用了pcie转sata的转接卡,这个转接卡在多块硬盘同时读写时,速度很低,阵列中任意一块硬盘速度受限,那么整个整列速度就被限制了。一个比较容易的验证方法是,在NAS内部拷贝到SSD中,查看读写速度。
这里需要注意的是,内存大小也会影响访问速度,需要查看内存的占用率,至少保证又2G以上空闲内存。
两个10G网口组SMB多通道性能损失严重,并且不稳定,实测只能到1.5GB左右,我的硬件是DMI2,只有2G,怀疑是DMI的瓶颈,没有继续排查。
写不动了,下一篇继续。
三个千兆网口组SMB多通道截图

Noctilux12
校验提示文案
beanwang
校验提示文案
槽点真帝
校验提示文案
神智吾知
校验提示文案
值友1950604117
校验提示文案
tangggo
校验提示文案
隔壁唠王
校验提示文案
雨鱼1988国酿精品
校验提示文案
E3大法好v
校验提示文案
E3大法好v
校验提示文案
雨鱼1988国酿精品
校验提示文案
槽点真帝
校验提示文案
隔壁唠王
校验提示文案
tangggo
校验提示文案
值友1950604117
校验提示文案
beanwang
校验提示文案
神智吾知
校验提示文案
Noctilux12
校验提示文案