gpt4 book ai didi

java - Tomcat App 不释放缓存

转载 作者:行者123 更新时间:2023-11-28 22:27:37 34 4
gpt4 key购买 nike

我们在 AWS 云中托管了一个 tomcat 应用程序。在分析最近一个月的应用服务器内存趋势时,我发现了一些奇怪的事情。我们的服务器总共有 15GB RAM,并且为 HeapSize 分配了 7GB。我在监控系统中注意到内存利用率报告很高。当我深入挖掘时,我发现使用的内存是计算包括(mem_used=缓存内存+共享内存+缓冲内存),我们每天都会重启tomcat但是当我完全重启系统时,我注意到RAM利用率下降了因为系统重启掉了缓存。现在,让我感到困惑的部分是 tomcat 停止/启动应该释放所有由 JVM 分配的内存,那么为什么只有在整个系统重新启动时才释放缓存。 tomcat 是否在我们反弹后不刷新缓存。

最佳答案

因为您正在查看的缓存是操作系统的缓存,而不是 Tomcat。只要有足够的 RAM,您的 Tomcat 应用程序在文件系统上读取的所有内容都将被操作系统缓存。

例如,您的 Tomcat 安装的 servlet-api.jar 的内容可能会被缓存。对于操作系统级缓存,此信息只是 block 或页面。如果 RAM 足够,每个经常请求的 block 都会保留在缓存中。

操作系统不会在 Tomcat 停止后清除此信息,因为缓存也应该有利于启动。例如。如果您重新启动,将不会再次从磁盘读取 JVM 可执行文件。

关于java - Tomcat App 不释放缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948564/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com