主题 : Arm-Linux SD写入速度慢问题解决-Tiny6410连续运行半年了 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 34962
精华: 2
发帖: 36
金钱: 285 两
威望: 57 点
贡献值: 2 点
综合积分: 112 分
注册时间: 2010-12-23
最后登录: 2012-06-28
楼主  发表于: 2012-01-03 12:25

 Arm-Linux SD写入速度慢问题解决-Tiny6410连续运行半年了

管理提醒: 本帖被 xoom 执行加亮操作(2012-01-03)
我的个人网站一直是使用Arm Tiny 6410作为服务器的(网址:http://sjwt.vicp.cc:8080/ 有兴趣的网友可以访问一下,长期开放,已经运行半年有余了)

运行速度还凑合,能够满足个人的需求

但是一直有一个问题,就是SD卡的写入速度很慢,使得整体服务器运行速度的提升产生了一个瓶颈

加载网页还要,要是需要上传某个文件,那真是一个字慢啊

最快速度也只有100KB出头,虽然度速度可以到达数兆



好了,问题来了,为神马Tiny 6410在使用Linux操作系统时写入SD卡或者U盘都这么慢呢



原因出在了SD卡的挂载方式上



在这个/dev/hotplug.sh文件中

mount -o sync -o noatime -o nodiratime -t vfat /dev/$DEVNAME $MOUNTPOINT > /dev/null

这一行说明SD卡是以同步的方式挂载到系统当中

其中sync表示以同步的方式执行文件系统的输入输出,这是关键原因所在。一般都是以异步方式进行输入输出,速度较快,而这里设为sync是对优化ext3和ubifs文件系统专门的选项。

但是由于我的SD卡是FAT32格式,当然不能以同步方式传输文件



因此只要把-o sync 这几个字去掉就好了
修改后在我的机子上测试,写入速度至少为原来的10倍以上



但是需要注意:

1、去掉这几个字后,SD卡或者U盘就不能热拔插了,必须使用umount命令卸载之后,才能拔出,否则可能造成损坏。由于服务器的SD卡一般不需要拔出,所以也没有什么问题。

2、如果想保留同步方式传输以使用热拔插功能,那最好使用ext3和ubifs文件系统,才能有正常的写入速度。
[ 此帖被xoom在2012-01-03 12:33重新编辑 ]
级别: 风云使者
UID: 36096
精华: 3
发帖: 2513
金钱: 14075 两
威望: 2815 点
贡献值: 3 点
综合积分: 5086 分
注册时间: 2011-01-11
最后登录: 2015-11-15
1楼  发表于: 2012-01-03 15:01
引用第1楼mindee于2012-01-03 12:39发表的  :
很牛,很高的境界。

无为,而无所不为!


这么说我直接把U盘或存储卡格成EXT文件系统不就行了吗?那样性能更好,还支持大于4GB的文件。
极度缺钱,求捐赠……支付宝兼邮箱:huming2207@qq.com
级别: 风云使者
UID: 36096
精华: 3
发帖: 2513
金钱: 14075 两
威望: 2815 点
贡献值: 3 点
综合积分: 5086 分
注册时间: 2011-01-11
最后登录: 2015-11-15
2楼  发表于: 2012-01-03 16:03

 Re:回 2楼(huhu2207) 的帖子

引用第5楼dick于2012-01-03 16:00发表的 回 2楼(huhu2207) 的帖子 :
其实我还是比较推荐弄成EXT格式的,还支持Linux文件权限操作,更安全

我在我家路由上建站,外挂的移动硬盘就是EXT4文件系统的,用samba上传资料到盘里有8MB每秒(有线连接),用vsftpd更快些,若用FAT32文件系统、NTFS文件系统就不行了,速度弱爆了
极度缺钱,求捐赠……支付宝兼邮箱:huming2207@qq.com
级别: 风云使者
UID: 36096
精华: 3
发帖: 2513
金钱: 14075 两
威望: 2815 点
贡献值: 3 点
综合积分: 5086 分
注册时间: 2011-01-11
最后登录: 2015-11-15
3楼  发表于: 2012-01-08 15:51
6410 的 USB-HOST 不是USB 1.1 嘛?那么应该本身就不快。另外我觉得应该加上NTFS-3g 驱动以支持ntfs的USB盘,当然读写速度嘛,你懂的。
极度缺钱,求捐赠……支付宝兼邮箱:huming2207@qq.com