【Tomcat】Tomcat 8 缓存不足问题解决方案
前言
运维的tomcat服务升级了下,结果报错
01-Nov-2024 14:31:47.703 WARNING [main] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/classes/views/3_desc.ftl] to the cache for web application [/xxxserver] because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
09-Nov-2024 15:15:32.871 警告 [main] org.apache.catalina.webresources.Cache.getResource 无法将位于[/WEB-INF/classes/views/1_desc.ftl]的资源添加到Web应用程序[/xxxserve]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间。
原因
Tomcat 服务器在处理大量 HTTP 请求时,如果缓存设置不当,可能会导致缓存不足的警告。这个问题通常发生在缓存条目尚未达到其生存时间(TTL)就被频繁访问,导致 Tomcat 无法释放足够的缓存空间来存储新的请求资源。在 Tomcat 7 中,这个问题可能没有被明显地暴露出来,因为 Tomcat 7 在这种情况下不会输出警告,这可能导致用户在不知情的情况下使用不合适的缓存设置 。
快速解决
先查看tomcat的CATALINA_BASE
路径。
一般在日志中能显示:
01-Nov-2024 14:31:45.016 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA\_BASE: /home/ya/tomcat/tomcatadmin
可见,路径是/home/ya/tomcat/tomcatadmin
修改$CATALINA_BASE/conf/context.xml
增加配置
<!-- The default value is 10240 kbytes, even when not added to context.xml.
So increase it high enough, until the problem disappears, for example set it to
a value 5 times as high: 51200. -->
<Resources cachingAllowed="true" cacheMaxSize="512000" />
这里的单位是kb
即可解决
扩展阅读
可通过直接将缓存禁用解决该问题(不推荐)
来源
Tomcat 8 throwing - org.apache.catalina.webresources.Cache.getResource Unable to add the resource
本文来自:【Tomcat】Tomcat 8 缓存不足问题解决方案-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2024年11月11日,已超过 40 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束
- 本文标签: tomcat java bug
- 本文链接: https://djc8.cn/archives/tomcat-tomcat-8-solution-to-insufficient-cache-problem.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权