tomcat提示静态文件缓存超限,造成日志爆满的问题

发布时间 2023-04-21 15:02:50作者: 网无忌

日志片段:

21-Apr-2023 11:20:47.215 警告 [http-nio-80-exec-5308] org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/FileUploads/www/site/2022/11/30/ZZVRQAHD08ZX4GOW47.jpg] to the cache for web application [] because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache

大概意思就是在将新的静态文件加入缓存区时内存不足,可以适当调大缓存区的大小。

 

解决办法:

在tomcat的“/conf/context.xml”中的<Context></Context>中间添加以下标签:

<Resources cachingAllowed="true" cacheMaxSize="100000"/>
  • cachingAllowed:如果此标志的值是true,将用于静态资源的高速缓存。如果没有指定,该标志的默认值是true。这个值可以在Web应用程序运行时进行更改(例如,通过JMX)。当缓存在缓存禁用任何资源目前是从缓存中清除。
  • cacheMaxSize:以KB为单位的静态资源缓存的最大尺寸。如果未指定,则缺省值为1024010M)。这个值可以在Web应用程序运行时进行更改(例如,通过JMX)。如果缓存正在使用的内存大于新的限制缓存将尝试规模随着时间的推移,以满足新的限制,以减少。如果需要的话,cacheObjectMaxSize将降低,以确保它是不大于 cacheMaxSize/20。

点此查看Apache的官方文档说明

 

ps:其实更好的解决办法是将所有的静态文件都让nginx进行反代。