主题 : 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: 64218
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2012-03-01
最后登录: 2012-03-07
1楼  发表于: 2012-03-01 22:04
要是用6410的ATA接口挂个硬盘,不知道性能能改善多少?