【问题标题】:Moving IntelliJ IDEA caches/index directories to RAM将 IntelliJ IDEA 缓存/索引目录移动到 RAM
【发布时间】:2019-06-13 11:03:44
【问题描述】:

我正在尝试使用符号链接将 cachesindex 目录从 IntelliJ IDEA 配置目录移动到 /tmp 中的 RAM 安装点。

我已添加:tmpfs /tmp/ramdisk tmpfs defaults,size=1024M,x-gvfs-show,mode=1777 0 0/etc/fstab,并将 intellij config 目录中的 cachesindex 目录替换为指向 ram 挂载点的符号链接:

$ mkdir /tmp/ramdisk/intellij/caches
$ mkdir /tmp/ramdisk/intellij/index
$ ln -s /tmp/ramdisk/intellij/caches caches #inside intellij config/system dir
$ ln -s /tmp/ramdisk/intellij/index index #inside intellij config/system dir

问题是,每次重新启动时,挂载目录都会从/tmp 中删除,在挂载之前我需要重新创建它们,否则我会收到错误mount: /tmp/ramdisk: mount point does not exist. 我还需要重新创建缓存和索引目录,否则符号链接将不起作用

有没有更好的方法来做到这一点?

【问题讨论】:

  • 您要归档什么?更好的读取性能?由于 linux page cache,这不会像您期望的那样显着提高性能。我完全在 ramdisk 上构建了一个项目,构建在 30 秒内完成。相比 32 秒。直接从磁盘。不值得努力。
  • 是的,我想获得更好的性能。并且还可以免除 SSD 不必要的读写操作,以延长其使用寿命。至于原来的问题。现在我只是从我的~/.bash* 文件之一创建 shell 启动时的目录 - 似乎工作正常。但我想知道是否有更好的方法来实现这一点。
  • 我没有更好的主意。我只是想指出,linux 在后台缓存了很多,我很确定这个想法也使用内存映射文件作为缓存。此外,您必须在某个时候将数据写回磁盘。顺便说一句:我每个工作日都运行 intellij idea 几个小时,并且自 10 年以来我一直在使用不同的 SSD。 SSD 使用寿命从来没有问题。
  • 感谢您的 cmets @Peter,我会重新考虑是否需要这样做或将其保留为默认设置。

标签: caching intellij-idea ram mount


【解决方案1】:

只是为了回答这个问题,以防其他人偶然发现这个问题并想要一个答案。

我最终使用了tmpfiles.d。在/usr/lib/tmpfiles.d/ 下为我的目的创建了一个新的配置文件,内容如下:

#Type Path                          Mode UID  GID   Age Argument
d     /tmp/ramdisk/intellij/caches  0777 root root  -   -
d     /tmp/ramdisk/intellij/index   0777 root root  -   -

现在我需要的目录在每次启动时都会重新创建。

如果我需要这个,我仍然会重新考虑,因为根据第一篇文章中的 cmets,它不会对 linux 操作系统产生太大影响。

【讨论】:

  • 在当前版本中似乎不能容忍符号链接
  • 自 2020 版以来,他们完全重新进行了整个配置管理,所以如果这不再起作用,我不会感到惊讶
【解决方案2】:

正如@SergioLeone 和我在 cmets 部分指出的那样,以前的解决方案不再适用。 我选择将整个相关的 JetBrains 文件夹放在 RAM 中,如下所示:

    ~/.cache/JetBrains -> /tmp/intellij/JetBrains

【讨论】:

  • 这种方式用了几天,至今没有SSD噪音,也没有后悔...
  • 我在升级到 2020.x 后也尝试过,当时他们破坏了一切:D 当时我没有像以前那样观察到任何显着的性能变化,所以我停止使用这个“hack”共。也许我应该在 2021.x 版本中再次尝试测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多