NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

newifi mini 外接usb硬盘性能优化

[复制链接]
72 1

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不才瞎写个,垂涎y1s,呵呵。下面开始,注意操作方法在文章尾部。
  家里的tp-link wr841n从买来就不好用,一直忍他2年了。。。看到newifi mini在某东搞活动就入了,本来想只要能比老路由稳定就可以了,但是newifi mini的表现已经远超过我的期望了。
  基本参数什么的大家都懂,就不罗嗦了。连接百度云远程推送也是我非常喜欢的功能之一。搭配的电源是12V2A的,直接上小移动硬盘就不用担心电不够的问题了。推荐安装的插件
  

                               
登录/注册后可看大图

  这几个都是很实用的,路由一天重启一次,嗯再也不怕死机了。磁盘休眠这个也非常实用,移动硬盘可以一直插在上面,在磁盘不工作30分钟后就会进入休眠状态,对于硬盘是很好的保护。
  然后说点小遗憾吧,
  首先,没有千兆口。同事说现在100来块钱的路由都是千兆口了,把我鄙视了一顿。。。
  其次,5G网络真心意义不大,当然也可能跟我笔记本网卡有关,同样300mbps连接,5G性能不及2.4G。所以我还是选择关了5G。而我的笔记本也不支持11ac,上不了最高的速率。
  最后,网上邻居性能不是很好。无线连接2.4G,300mbps网络下,下载4M,上传3M左右。因为我连接的是usb2.0的移动硬盘,所以瓶颈肯定不在硬盘。
  于是倒腾之旅开始了。虽然openwrt咱不熟,linux本身还不在话下的。折腾之前,现装一个白插件:
  

                               
登录/注册后可看大图

  装好之后用putty连接
  

                               
登录/注册后可看大图

  

点open之后,输入用户名root,密码是wifi的密码就可进入,进入之后属于系统最高权限,所以请大家谨慎操作哦。
  下面开始谈优化:
  首先,从分区格式谈起,默认来讲,大家的移动硬盘都是在windows下用的,自然也都是用FAT32,或者NTFS格式。对于Linux而言,这两种格式都不是它的菜,它对于FAT32还有内核驱动支持可以达到较好的性能;对于NTFS,因为各种历史和版权的原因,支持的都比较渣。
  坛子上的那个白插件用了一个第三方实现的商业版ntfs驱动,可以取得较好的性能提高。不过驱动是不能跟随版本变化的,如果newifi新编译了新的内核,这个模块很可能加载不上到时候就用不了了。所以我还是推荐使用Linux上土生土长的EXT4 格式,从各种国内外评测结果来看,EXT4的分区性能是Linux所支持格式里面最好的。既然是长期插在newifi上的硬盘做家庭云,我不用在乎移动硬盘是不是能在windows上能读取。通过ssh登入(可以使用Putty)newifi mini,它本身就自带了ext4的格式化工具。动手之前一定确保硬盘上的数据都良好备份了。根据我们的需求,家庭存储于硬盘的数据大多数是大文件。所以针对大文件优化,选择用稍大的块和簇设置:
  mkfs.ext4 -b 4096 -C 32768 /dev/sda1
  复制代码
  会得到下面类似的输出。因为我的已经格式化好了,下面的输出仅供参考。
  

                               
登录/注册后可看大图

  等到“done”出现,格式化完成,根据硬盘大小,所需时间不定。完成之后可重启路由器让它重新识别硬盘。完成后可以测试下,读写性能会有比较不错的提升。当然我们不能满足于此吧。
  第二步:调优内核参数。
  通常来讲,我们无需调优,不过既然是折腾,能提高点也是好的。所谓调优内核,就是优化内核参数来满足特殊情况下的需求,比如家庭云的存储特点,前面也已经介绍过了。在查看newifi的内核参数,可以做以下优化:
  磁盘的预读调整和调度器:
  

                               
登录/注册后可看大图

  解释一下预读(read_ahead_kb,默认值512),预读基本控制了磁盘一次读取内容长度,设置大小为kb,它的作用是当读硬盘即使只读1k的数据(不精确的描述),系统会另外在读取正确数据后面若干的数据,设置大些的好处就是降低了磁盘io频率,直观的来看,硬盘灯闪的会变慢,每次变长。坏处是小文件读取响应变慢。这种优化就是针对家庭使用场景,所以可以设置稍大些,比如我设置为4096kb。
  调度器(scheduler)指的是磁盘io控制算法,默认是noop,面向闪存类存储。出现的3个调度器之中,cfq是专门为硬盘控制设计的,所以设置成啥,根据个人需要。我接移动硬盘,当然是cfq。
  内核部分,对于内存调优,没什么必要性,因为本来就小~。它要是跟我服务器一样有40多G内存,那时才需要考虑这种事情。。。。
  最后一步:smb调整
  在没有源码,不能编译的情况下,我们只能调整选项。在进行网上邻居传输文件的时候newifi上的smb进程占用大多数cpu时间,所以调节一下参数,是很有必要的。
  在/etc/samba/smb.conf.template里面加入
  # __ADDIN_MARKER
  follow symlinks = no
  wide links = no
  # enable some read/write tuning
  use sendfile = yes
  read raw = yes
  write raw = yes
  aio read size = 16384
  aio write size = 16384
  write cache size = 262144
  max xmit = 65536
  large readwrite = yes
  getwd cache = yes
  # disable locking, because only 2 share can be written.
  strict locking = no
  fake oplocks = yes
  oplocks = no
  复制代码
  保存后可以直接在putty里面敲reboot,重启路由生效。至于具体参数呢,可以参考samba的文档,有些我也不是很清楚,只能说大体上理解。
  自此,调整完毕,测测性能呢?最好的时候:
  写入:
  

                               
登录/注册后可看大图

  读取:
  

                               
登录/注册后可看大图

  当然,不是什么时候都这么好,取决于网络里面设备多少之类的。典型的读取和写入速度维持在5~7M/s。
  最后总结一下,因为不会做插件,所以分步骤给大家操作:
  putty登入newifi:
  步骤1格式化:
  mkfs.ext4 -b 4096 -C 32768 /dev/sda1
  复制代码
  步骤2,选择将参数设置挂钩在/etc/init.d/samba里面,考虑到大家如果不会用vi,直接执行下面两行命令:
  grep read_ahead_kb /etc/init.d/samba || sed -i "/start()/a\ echo 4096 > /sys/class/block/sda/queue/read_ahead_kb" /etc/init.d/samba
  grep scheduler /etc/init.d/samba || sed -i "/start()/a\ echo cfq > /sys/class/block/sda/queue/scheduler" /etc/init.d/samba
  复制代码
  之后查看这个文件是否修改正确,下面是正确输出:
  grep -A1 -B1 read_ahead_kb /etc/init.d/samba
  复制代码
  

                               
登录/注册后可看大图

  步骤3,
  grep ADDIN_MARKER /etc/samba/smb.conf.template || cat >> /etc/samba/smb.conf.template << EOF
  # __ADDIN_MARKER
  follow symlinks = no
  wide links = no
  # enable some read/write tuning
  use sendfile = yes
  read raw = yes
  write raw = yes
  aio read size = 16384
  aio write size = 16384
  write cache size = 262144
  max xmit = 65536
  large readwrite = yes
  getwd cache = yes
  # disable locking, because only 2 share can be written.
  strict locking = no
  fake oplocks = yes
  oplocks = no
  EOF
  复制代码
  

                               
登录/注册后可看大图

  之后检查,正确的输出
  grep -A4 ADDIN_MARKER /etc/samba/smb.conf.template
  复制代码
  

                               
登录/注册后可看大图


精彩评论1

gzmdshgz  营长  发表于 2016-11-17 08:45:07 | 显示全部楼层
感谢分享。

举报 使用道具

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

本版积分规则

精彩推荐

热点动态

精彩图文

快速回复 返回顶部 返回列表