在生产环境中使用RAM磁盘可加快应用程序性能

时间:2012-11-20 19:42:14

标签: java performance ramdisk ramdrive

我的应用程序因数据库的繁琐性而面临问题。由于许多I / O操作或数据库调用,需要时间来完成特定批处理作业的流程。代码优化正在进行,此过程需要一些时间才能显示出积极的结果。

  • 我可以在生产环境中安装RAMdisk并在RAMDisk中安装jdk和SQL服务器吗?
  • 这对所有I / O操作有帮助吗?
  • 至少在批量作业的情况下,我能否获得一些性能提升?

2 个答案:

答案 0 :(得分:1)

正如@BaileyS建议的那样,一个很好的折衷方案是使用耐用的SSD驱动器。如果您有大量数据,则只能使用SSD存储数据库索引并将数据保存在常规驱动器上。

我不建议使用RAM磁盘,除非你经常备份,或者上面的数据不重要。

相反,我会尝试最大化操作系统的文件缓存。如果您的文件缓存在RAM中,那么使用它们就像在RAM磁盘上一样。在Linux上,你可以降低内核的vfs_cache_pressure,这意味着内核会更加努力地将缓存的文件保存在RAM中。并且还将vm.swappiness设置为100,以便系统更积极地交换未使用的内存页,从而使RAM可用于缓存。这可以大大加快速度。见Can I configure my Linux system for more aggressive file system caching?

答案 1 :(得分:0)

假设大部分时间花在数据库中等待I / O,RAM磁盘肯定会有所帮助(但耐用性已经消失)。但为什么不简单地选择像那样的内存数据库,甚至可以在嵌入式模式下减少网络延迟呢?