主题 : 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: 34962
精华: 2
发帖: 36
金钱: 285 两
威望: 57 点
贡献值: 2 点
综合积分: 112 分
注册时间: 2010-12-23
最后登录: 2012-06-28
1楼  发表于: 2012-01-03 15:58

 回 3楼(linuxqt) 的帖子

搭建了LAMP
访问不了可能是网路问题
级别: 侠客
UID: 34962
精华: 2
发帖: 36
金钱: 285 两
威望: 57 点
贡献值: 2 点
综合积分: 112 分
注册时间: 2010-12-23
最后登录: 2012-06-28
2楼  发表于: 2012-01-03 16:00

 回 2楼(huhu2207) 的帖子

其实我还是比较推荐弄成EXT格式的,还支持Linux文件权限操作,更安全
级别: 侠客
UID: 34962
精华: 2
发帖: 36
金钱: 285 两
威望: 57 点
贡献值: 2 点
综合积分: 112 分
注册时间: 2010-12-23
最后登录: 2012-06-28
3楼  发表于: 2012-01-03 21:00

 回 7楼(linuxqt) 的帖子

PHP版本:5.3.8
MySQL版本:5.0.92
服务器环境:Apache/2.2.9 (Unix) PHP/5.3.8
GD图形处理库:bundled (2.0.34 compatible)

我当时也是找网上的教程的,基本上都有前人做过了
我当时是参考了题为“MySQL数据库在ARM+Linux平台上的移植”、“交叉编译mysql”、“mysql arm-linux_风中雨_百度空间”的几篇文章,你可以百度找来看看,希望提供到帮助
版本最好不要太新的,较旧的版本往往能够移植成功,太新的话可能会编译出很多莫名其妙的错误
级别: 侠客
UID: 34962
精华: 2
发帖: 36
金钱: 285 两
威望: 57 点
贡献值: 2 点
综合积分: 112 分
注册时间: 2010-12-23
最后登录: 2012-06-28
4楼  发表于: 2012-01-07 21:14

 回 10楼(goldsea) 的帖子

呵呵,使用async主要是针对fat32格式的SD卡速度慢的问题而解决的。使用ext3文件系统最好还是采用sync方式