首页 > 解决方案 > Java tomcat线程内存使用限制

问题描述

我有一个处理一些 REST API 请求的 tomcat 服务器。此 tomcat 崩溃是由于某些输入中的一个特定休息请求中的内存不足错误导致大堆大小使用,从而导致所有站点崩溃。

我想限制这个休息请求内存使用我该怎么做?我通常想保护 tomcat 免受导致它崩溃的大内存使用请求。我该怎么做?也许以某种方式限制所有线程的最大堆大小?

标签: javatomcatthread-safetyout-of-memorybackend

解决方案


http://tomcat.apache.org/tomcat-6.0-doc/config/http.html

您可能正在寻找maxPostSize

编辑

OP澄清说这是他的程序内存不足,而不是实际的帖子。

JVM的堆是共享的,每个线程都没有一个堆,所以你问的是不可能的。您可以设置任意低的堆栈大小并让 JVM 在达到特定调用深度时终止您的线程,但这几乎是解决问题的可靠途径,因为您不能保证锁会被放回有效状态。

我猜你的代码在内存中保存了相当多的数据。也许你可以问另一个问题,这样可以帮助你设计你的程序,让它使用更少的内存?


推荐阅读