当前位置: 首页 > 知识库问答 >
问题:

Tomcat的奇怪内存用法

艾星河
2023-03-14

这是个模糊的问题。因此,请随时询问任何具体数据。

我们有一个tomcat服务器,运行两个web服务。一个tomcat使用spring构建。90%的任务使用mysql,JSON缓存使用mongo(10%)。另一个web服务是使用grails编写的。这两项服务都是中等大小的代码库(每项约35k行代码)

计算仅在有HTTP请求(无批处理)时发生。每个请求大约有2000个数据库点击率(我知道它非常庞大,我们正在努力)。请求速率约为30 req/min。对于一个特定的请求,图像处理的内存非常昂贵。没有JNI

在没有任何请求的情况下,内存会一直从500Mb跳到1.2Gb(700MB的跳变令人担忧)。如前所述,服务器端没有计算。我不确定这是否是内存泄漏:

  1. 内存使用率下降。(如果记忆没有下降,事情会容易得多)
  2. 这种行为可以通过基于SoftReference之类的缓存进行复制。有完整的gc。但我没有在任何地方使用它们(不确定是否有其他人在使用它)

还能是什么原因。这是担心的原因吗?

附言:我们最近经常发生内存崩溃(不是错误,而是JVM崩溃)。

共有1个答案

孙胜泫
2023-03-14

这实际上是正常的行为。你只是看到垃圾回收机制发生了。

 类似资料:
  • 我用C++创建了一个简单的类Storer,用于内存分配。它包含六个字段变量,所有这些变量都在构造函数中赋值: 我对这些变量是如何存储的很感兴趣,所以我编写了以下代码: 我对输出非常感兴趣:

  • 我有一个ui显示的数据表:repeat。因为我希望用户能够在每行的基础上更改数据,所以每行都包含在一个h:form中。最后,每个h:form都有一个带有f:ajax标记的按钮。我的行为越来越不一致。 上述方法可行,但带宽显然不便宜。 如果我将render=“@all”更改为render=“@form”,Firebug显示发送的部分响应正常,但我的浏览器(Firefox)神秘地没有显示它。所以我猜它

  • 实际上,这不是一个问题,而是一个奇怪的事情,我想理解。我将SpringBoot2与嵌入的Tomcat一起使用。我还添加了自签名SSL证书。这是非常常见的配置: 我制作了一个连接器,强制HTTP->https重定向,就像在许多示例中一样: 如果我不在配置中指定server.port属性,我将看到以下错误: 说明: 配置为侦听端口8080的Tomcat连接器启动失败。端口可能已经在使用中,或者连接器可

  • 索引0数组列表的预期输出是名称和数字。但它显示出奇怪的结果为什么? 完整代码在这里输入图像描述在这里

  • 我在Chrome Developer Tools中出现这个错误已经有一段时间了,我似乎就是找不到不安全的http://请求。它指向我的域,但没有https://。http://www.example.com/不是一个脚本,所以我不明白它是从哪里来的。 内容混杂:“HTTPS://www.example.com/categoy/a-product.html”页面是通过HTTPS加载的,但请求的脚本“

  • 有时,我的应用程序在启动时会随机出现故障,它会在应用程序类中崩溃,用户无法再次打开应用程序,直到他们进入设置并清除应用程序数据 “DiskbasedBache”试图分配超过1GB的内存,原因并不明显 我怎么才能让这一切不发生?这似乎是Volley的一个问题,或者是一个基于自定义磁盘的缓存的问题,但是我没有立即看到(从堆栈跟踪中)如何‘清除’这个缓存,或者做一个条件检查或者处理这个异常 欣赏洞察力