如何处理/tmp/jar_cache#######.tmp?

时间:2019-04-25 02:42:57

标签: java spring-boot jar embedded-tomcat-8

我将Springboot 2.1.4与EmbeddedTomcat一起使用。当我运行服务器时,将创建/tmp/jar_cache###.tmp。我该如何使用jar_cache ###。tmp?

我正在使用CENTOS 7和Java版本“ 1.8.0_162”。

  1. 如果我将tmpdir更改为其他目录,而不是/ tmp,那么如何处理默认创建的大量jar_cache ###?

  2. 使用/ tmp目录,如果清除了我的应用程序中正在使用的jar_cache,该怎么办?

java    46030  www  DEL       REG              253,2                2830 /tmp/jar_cache7122103988160656171.tmp
java    46030  www  DEL       REG              253,2                2842 /tmp/jar_cache8134973409906757503.tmp

java    46030  www   25r      REG              253,2    414240      2830 /tmp/jar_cache7122103988160656171.tmp (deleted)
java    46030  www   27r      REG              253,2    800016      2842 /tmp/jar_cache8134973409906757503.tmp (deleted)

1 个答案:

答案 0 :(得分:0)

SpringBoot的某些版本中显然存在一个错误,该错误会导致jar_cache文件(处于DEL状态)累积:

根据问题跟踪链接,此问题已在SpringBoot 2.0.0中修复。

现在我从您的问题中看到您正在使用2.1.4,所以可能不是导致您出现问题的上述特定问题。但是,第一个链接中可能有一些线索可能会帮助您弄清是什么原因引起的。

要回答您的问题:

  1. 是的,这些是默认创建的,但是在应用程序重新启动时应清除它们。
  2. 我希望更改TMPDIR会影响文件的创建位置。试试看吧!
  3. 如果应用程序仍打开文件,则从目录中删除文件不会释放任何文件空间。

可能也可以通过调用System.gc()使文件消失。是的,出于性能原因,通常调用System.gc()是一个坏主意。但是,如果缓存文件确实有问题,可以使用 解决方案。