通过ramdisk设置将内存作为磁盘,加速网络资源访问

由于我们的互联网产品中有需要给用户呈现大量的碎小图片,而且访问量非常大,这就非常让我们感到头疼。我因此想过很多办法,用apache的alias来做图片资源的映射?用lighttpd缓存图片?还有传说中nginx,我们也试过。也许是我们配置得不是很好,反正效果看上去区别不大。甚至我们都把图片放到tomcat里面,感觉也没什么差距。但是当产品上线的时候,用户量一上来我们就傻眼了,程序响应到是响应了,就是图出来得很慢。后来无意中发现windows中有个Ramdisk的工具,能把内存作为磁盘的一个分区使用,这下子让我们high了不少,马上把图片放到这个虚拟分区中,试了一把,不错,好使!于是我在想,看看linux有没有这个玩意儿。(不好意思,linux我很不熟)
Ramdisk,即将内存作为磁盘用。内存的速度之快,是电脑存储设备中仅次于CPU缓存和显示卡显存的,当然比磁盘的IO读写要快很多了;
1、大家可以先通过ls /dev/ram*来查看有多少可供使用的Ramdisk。
2、使用其中一个来创建 mke2fs /dev/ram4,我这选用的是ram4,一般来说总共有16个
执行下来可以看到有一行1024 inodes, 4096 blocks,默认就是4M,这肯定不够的
3、 设置虚拟磁盘的大小,我装的是Red Hat Enterprise Linux Server,所以我在/etc/grub.conf中直接修改
kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet ramdisk_size=102400;这样,1G应该差不多了
4、加载ramdisk, mount /dev/ram4 /tmp/your real directory;如果想取消,直接umount /dev/ram4 /tmp/your real directory
5、用df -k /dev/ram4查看你用了多少虚拟磁盘了,如果不是0%或者1%,那就说明生效了
6、我的图片放tomcat下做测试的,所以在server.xml的Host标签中加上
<Context path="/images" docBase="/tmp/ramdisk4/images"/>
最后,自己通过url试一下吧
这个东西我只是抛砖引玉一下,大家如果是用apache或者lighttpd做静态资源的服务器的话,可以按照我这种方式来配置;但是有一点,[color=red]这个东西当系统reboot以后,就什么都没有了,需要重新设置[/color],所以说用户上传的东西,最好是写个shell来控制一下,及时备份;不过对于我们的生产环境,我们暂时没有把用户上传的路径做虚拟磁盘,没敢去尝试;当linux都reboot了,那就说明我们整个业务都停掉需要做调整,所以无所谓的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值