管理提醒: 本帖被 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重新编辑 ]