java - 在生产环境中使用 RAM Disk 来加速应用程序性能

标签 java performance ramdisk ramdrive

我的应用程序由于与数据库的交互性质而面临问题。由于许多 I/O 操作或数据库调用,完成流程(特别是批处理作业)需要时间。代码优化正在进行中,这个过程需要一些时间才能显示出积极的结果。

  • 我可以在生产环境中安装RAMdisk并在RAMDisk中安装jdk和SQL Server吗?
  • 这对所有 I/O 操作都有帮助吗?
  • 至少在批处理作业中我能否获得一些性能提升?

最佳答案

正如 @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?

关于java - 在生产环境中使用 RAM Disk 来加速应用程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480842/

相关文章:

java - Leanback 传输控件覆盖层不可见或位于视频表面后面?

java - 网页开发 : Cannot load an image

python - 带有 if 语句的 while 循环比 while 循环更快

python - 是什么让 Python 的列表追加方法如此之快?

java - 将 JDK 放在 ramdisk 上如何提高 IDE 性能?

java - 我可以显式键入一个不明确的方法调用并使用它吗?

java - 从大量 xml 文件中提取 XML 模式(或同等内容)

performance - 使用 Clojure 宏内联函数

RAMdisk 上的 MySQL 内存引擎与 InnoDB

pipe - 通过 wget 获取内存并绕过磁盘写入