我正在运行 Apache Tomcat/9.0.19,最近我注意到 catalina.out 日志上有很多警告消息。
WARNING [main] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/classes/static/maps/scripts/app-72be477367.js.map] to the cache for web application [##01] because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
WARNING [main] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/classes/static/maps/scripts/app-f223be6846.js.map] to the cache for web application [##01] because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
将以下行添加到conf/context.xml 解决了这个问题,我的日志不再被淹没。
<Resources cachingAllowed="true" cacheMaxSize="100000" />
我如何知道我的cacheMaxSize 的正确条目是什么。我是否过度分配了缓存空间?
我遇到了同样的问题并且能够修复它,但对我来说还有一个额外的步骤,因为我在 Eclipse IDE 中运行服务器,而不是在我的 PC 上独立运行。
除了为缓存分配适当的空间外,您还必须确保修复正确的服务器。我在修复我的 PC 上的 tomcat 服务器时犯了一个错误。错误的!我最终意识到 Eclipse 拥有自己的 tomcat 服务器副本。我必须进入 eclipse-workspace-Servers 目录并修复 tomcat v 9.0 的那个副本。
我会回答你关于尺寸的问题。您需要查看所呈现的网站的大小并将其用作缓存的最小大小似乎是有道理的。请记住,网站可能会从服务器磁盘或其他地方拉入大量额外的软件,您可能需要添加额外的空间。尽管您可以检查所有网站代码和预期使用情况并计算将使用多少内存,但最好使用的大小是试错法。无论如何,我只是猜测。我正在使用的网站的总磁盘空间只有 22 M 字节,因此缓存大小为 100000,即 100 M 字节似乎没问题,我使用了它并且它起作用了。我的电脑上有足够的内存空间,所以这对我来说不是问题。