HeadPic:Man on Hiking Adventure During Beautiful Sunrise Free Photo

前言

之前上传文件到NAS经常遇到体积稍微大一些就会时而满速传输,时而掉速为0kb的情况,折腾了挺久终于找到原因了

原因

原因是freenas创建的数据集默认块大小是128k,相对于我的磁盘空间来说不合适,显得小了,导致文件碎片极多,处理速度相当慢,以至于不能及时的将数据写入磁盘,导致传输速度降至0kb

探究过程

一开始还以为是我用来测试的那块淘汰笔记本机械硬盘太差的原因,导致传输不稳定
后来换了希捷酷鹰4t后依旧如此,遂认为是FreeNAS的阵列机制导致的
在后来又加了几块希捷酷鹰4t,还是一样,终于发觉不正常

内存脏数据缓冲区设置

网上检索了一番后,根据風の音的文章设置了内存的最大脏数据缓冲区为1G
进入FreeNAS Web管理页面-系统(System)-微调(Tunables)

  1. 添加(ADD)一条规则
  2. 变量(Variable)为vfs.zfs.dirty_data_max
  3. 值为(Value)1073741824
  4. 选择类型(Type)为sysctl
  5. 点击保存(SAVE)
  6. 最后重启FreeNAS

结果问题依旧

数据块大小

在FreeNAS官方论坛上搜索了一下发现在帖子New to FreeNAS - slow write speeds里有人提到默认块大小可能有问题
我就改了一下,将我的pool默认的128K块大小设置为1M,随后问题解决
进入FreeNAS Web管理页面-存储(Seagate)-存储池(pools)

  1. 点击pool最右边的三个点,选择编辑选项
  2. 翻到最下面的记录大小,设置为1M
  3. 点击保存(SAVE)

这里再说一句,快照目录这个选项推荐设置为Invisible(不可见),因为我之前设置为Visible(可见),导致我在使用命令行修改整个数据集的文件权限时,疯狂报错,一大堆的文件提示权限为只读,不可更改
即便我当时用的是root账户,一开始还以为是快照问题,删了几千个快照后,报错是变少了,但还是存在,因为我那个数据集还开了副本
不过改过来后就一切正常了

测试

我的内存为单条16G的RECC

连续放几个单文件大小接近30G的电影,全程满速
2G总大小的零碎小文件也几乎跑满了千兆网

TIM截图20200809185516.png

完美


版权属于:本文为原创文章,版权归 AUK CL 所有。
文章地址: https://aukcl.win/archives/513/
所有原创文章由知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
您可以自由转载或修改,但禁止一切形式的商业使用,同时,务必请注明原文地址及作者信息。

Last modification:August 10, 2020
如果觉得我的文章对你有用,请随意赞赏