HeadPic:Man on Hiking Adventure During Beautiful Sunrise Free Photo
前言
之前上传文件到NAS经常遇到体积稍微大一些就会时而满速传输,时而掉速为0kb的情况,折腾了挺久终于找到原因了
原因
原因是freenas创建的数据集默认块大小是128k,相对于我的磁盘空间来说不合适,显得小了,导致文件碎片极多,处理速度相当慢,以至于不能及时的将数据写入磁盘,导致传输速度降至0kb
探究过程
一开始还以为是我用来测试的那块淘汰笔记本机械硬盘太差的原因,导致传输不稳定
后来换了希捷酷鹰4t后依旧如此,遂认为是FreeNAS的阵列机制导致的
在后来又加了几块希捷酷鹰4t,还是一样,终于发觉不正常
内存脏数据缓冲区设置
网上检索了一番后,根据風の音的文章设置了内存的最大脏数据缓冲区为1G
进入FreeNAS Web管理页面-系统(System)-微调(Tunables)
- 添加(ADD)一条规则
- 变量(Variable)为
vfs.zfs.dirty_data_max
- 值为(Value)
1073741824
- 选择类型(Type)为
sysctl
- 点击保存(SAVE)
- 最后重启FreeNAS
结果问题依旧
数据块大小
在FreeNAS官方论坛上搜索了一下发现在帖子New to FreeNAS - slow write speeds里有人提到默认块大小可能有问题
我就改了一下,将我的pool默认的128K
块大小设置为1M
,随后问题解决
进入FreeNAS Web管理页面-存储(Seagate)-存储池(pools)
- 点击pool最右边的三个点,选择
编辑选项
- 翻到最下面的记录大小,设置为1M
- 点击保存(SAVE)
这里再说一句,快照目录这个选项推荐设置为Invisible(不可见),因为我之前设置为Visible(可见),导致我在使用命令行修改整个数据集的文件权限时,疯狂报错,一大堆的文件提示权限为只读,不可更改
即便我当时用的是root
账户,一开始还以为是快照问题,删了几千个快照后,报错是变少了,但还是存在,因为我那个数据集还开了副本
不过改过来后就一切正常了
测试
我的内存为单条16G的RECC
连续放几个单文件大小接近30G的电影,全程满速
2G总大小的零碎小文件也几乎跑满了千兆网
完美
版权属于:本文为原创文章,版权归 AUK CL 所有。
文章地址: https://aukcl.win/archives/513/
所有原创文章由知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
您可以自由转载或修改,但禁止一切形式的商业使用,同时,务必请注明原文地址及作者信息。