由于我们的互联网产品中有需要给用户呈现大量的碎小图片,而且访问量非常大,这就非常让我们感到头疼。我因此想过很多办法,用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了,那就说明我们整个业务都停掉需要做调整,所以无所谓的。
分享到:
相关推荐
1. **缓存加速**:可以将网页浏览器、数据库的缓存设置在ramdisk上,提高数据检索速度。 2. **软件安装与测试**:快速安装和测试软件,避免对硬盘造成过多磨损。 3. **编译过程**:开发环境中,编译大型项目时,将...
由于内存的访问速度远超硬盘,因此RAM磁盘能显著提升对大量数据读写操作的效率,常用于临时文件存储、程序启动加速等场景。 在64位系统中,传统的32位RAM磁盘软件可能无法充分利用系统的全部内存资源,因为32位系统...
4. **虚拟机加速**:虚拟机的磁盘I/O是性能瓶颈之一,将虚拟机的内存镜像文件放在Ramdisk上,可以提升虚拟机的启动速度和运行性能。 5. **缓存服务**:网络服务器上的静态资源缓存、浏览器缓存等,可以利用Ramdisk...
文章中针对NAS文件系统进行了多方面的优化,包括将系统文件和用户文件分离以增强安全性,使用ReiserFS替换Ext2以提升性能和可靠性,以及利用RamDisk技术加速数据访问。这些优化措施旨在提高整个NAS系统的整体性能和...
- 系统资源管理涉及内存、CPU、磁盘空间等关键资源的分配和监控。有效管理这些资源,可以提高系统整体性能和可用性。 #### 三、总结 AIX作为一款高性能的操作系统,在企业级应用中扮演着重要角色。面对各种可能...
- 每个物理节点的OSD数量应控制在单机最大网络带宽之内,考虑到每块SATA磁盘平均吞吐量约为100MB/s。 - 推荐每个物理节点配备至少一个10G网口或四个1G网口,并通过bonding技术提高带宽和冗余。 - RAID卡应支持...
将根目录放在RAM磁盘上意味着操作系统的所有核心文件都会存储在高速的随机访问内存中,这将显著提升系统的启动速度和执行效率。然而,这也带来了一些潜在的风险,例如一旦系统断电,存储在RAM中的数据会全部丢失,...