Tomcat8.5 catalina.out日志报there was insufficient free space available after evicting expired cache entries – consider increasing the maximum size of the cache

Linuxnetos

Tomcat8.5 catalina.out日志报there was insufficient free space available after evicting expired cache entries – consider increasing the maximum size of the cache

山西项目招采系统上线后,运行了2个月后,某天突然间服务宕机,查看catalina.out日志报错如下
org.apache.catalina.webresources.Cache.getResource Unable to add the resource at [/WEB-INF/classes/static/front/layuiadmin/layui/images/face/24.gif] 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

原因:
8核16G的服务器资源,console警告缓存不够
tomcat8以上对静态资源采用了缓存,而大小默认为为10M。可能超过了此限制默认为10240字节(约为10M)

1.解决:
在Tomcat 的bin目录下,catalina.sh文件的(非注释)第一行加上以下配置,之后重启程序
JAVA_OPTS="-Xms256m -Xmx2048m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=4096m"

-Xms:设置堆的最小空间大小
-Xmx:设置堆的最大空间大小
-Xss:设置每个线程的堆栈大小
-XX:PermSize:设置永久代最小空间大小
-XX:MaxPermSize:设置永久代最大空间大小

2.解决:
在tomcat的conf目录下context.xml里增加资源最大可缓存的大小就行了,大小可按自己的需要定义,之后重启程序
<Resources
    cachingAllowed="true"
    cacheMaxSize="100000"
/>