`
forthelichking
  • 浏览: 4386 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

通过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做静态资源的服务器的话,可以按照我这种方式来配置;但是有一点,这个东西当系统reboot以后,就什么都没有了,需要重新设置,所以说用户上传的东西,最好是写个shell来控制一下,及时备份;不过对于我们的生产环境,我们暂时没有把用户上传的路径做虚拟磁盘,没敢去尝试;当linux都reboot了,那就说明我们整个业务都停掉需要做调整,所以无所谓的。
分享到:
评论
6 楼 rubynroll 2009-07-22  
forthelichking 写道
恩,刚看了一下,tmpfs的方式,是要简单一些,不过都是通过挂载文件系统的方式做的,我想2者应该没什么本质的区别


mount -t tmpfs tmpfs /tmp/your_dir

一个命令搞定,而且tmpfs是动态增长,按需分配内存,不仅是“简单一些”而已。
5 楼 willko 2009-07-22  
这个用Squid、 NCache、 Varnish 来做确实更适合。
4 楼 forthelichking 2009-07-22  
xieye 写道
这个,最好前面加squid.

如果图片太多,楼主这种方法就不灵了


为什么图片太多就不太好了?squid我没试过,我只知道cdn是这么干的,请问你有没有在生产环境中
使用squid来做加速,或者能否告诉我,图片为什么太多就不好,是文件寻址速度受到影响了吗?如果
是这样的话,那我可以划分多个ram挂载文件系统,我想应该也没问题吧
3 楼 xieye 2009-07-22  
这个,最好前面加squid.

如果图片太多,楼主这种方法就不灵了
2 楼 forthelichking 2009-07-22  
恩,刚看了一下,tmpfs的方式,是要简单一些,不过都是通过挂载文件系统的方式做的,我想2者应该没什么本质的区别
1 楼 rubynroll 2009-07-22  
搞那么复杂,直接用tmpfs不行么?

相关推荐

    ramdisk内存虚拟硬盘

    1. **缓存加速**:可以将网页浏览器、数据库的缓存设置在ramdisk上,提高数据检索速度。 2. **软件安装与测试**:快速安装和测试软件,避免对硬盘造成过多磨损。 3. **编译过程**:开发环境中,编译大型项目时,将...

    ramdisk真正可用的64位版本

    由于内存的访问速度远超硬盘,因此RAM磁盘能显著提升对大量数据读写操作的效率,常用于临时文件存储、程序启动加速等场景。 在64位系统中,传统的32位RAM磁盘软件可能无法充分利用系统的全部内存资源,因为32位系统...

    Ramdisk for X86

    4. **虚拟机加速**:虚拟机的磁盘I/O是性能瓶颈之一,将虚拟机的内存镜像文件放在Ramdisk上,可以提升虚拟机的启动速度和运行性能。 5. **缓存服务**:网络服务器上的静态资源缓存、浏览器缓存等,可以利用Ramdisk...

    一种基于Linux的NAS文件系统设计.pdf

    文章中针对NAS文件系统进行了多方面的优化,包括将系统文件和用户文件分离以增强安全性,使用ReiserFS替换Ext2以提升性能和可靠性,以及利用RamDisk技术加速数据访问。这些优化措施旨在提高整个NAS系统的整体性能和...

    AIX下常见的问题整理

    - 系统资源管理涉及内存、CPU、磁盘空间等关键资源的分配和监控。有效管理这些资源,可以提高系统整体性能和可用性。 #### 三、总结 AIX作为一款高性能的操作系统,在企业级应用中扮演着重要角色。面对各种可能...

    ceph_性能调优6_2.pdf

    - 每个物理节点的OSD数量应控制在单机最大网络带宽之内,考虑到每块SATA磁盘平均吞吐量约为100MB/s。 - 推荐每个物理节点配备至少一个10G网口或四个1G网口,并通过bonding技术提高带宽和冗余。 - RAID卡应支持...

    Rack OS:用于RACK集群的ramdisk(/ dev / ram0)上的CentOS / OpenSuse / Ubuntu根-开源

    将根目录放在RAM磁盘上意味着操作系统的所有核心文件都会存储在高速的随机访问内存中,这将显著提升系统的启动速度和执行效率。然而,这也带来了一些潜在的风险,例如一旦系统断电,存储在RAM中的数据会全部丢失,...

Global site tag (gtag.js) - Google Analytics