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

Javatomcat线程内存使用限制

邢昊焜
2023-03-14

我有一个tomcat服务器,可以处理一些rest API请求。这个tomcat崩溃是由于某些输入中的一个特定rest请求内存不足导致的,这会导致大量堆大小的使用,从而导致所有站点崩溃。

我想限制这个Rest请求内存使用我怎么能做到呢?我通常想保护tomcat免受大内存使用请求崩溃的影响。我怎么能做到呢?也许以某种方式限制所有线程最大堆大小?

共有1个答案

冀俊良
2023-03-14

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

您可能正在寻找maxPostsize

OP澄清了运行内存溢出的是他的程序,而不是实际的帖子。

JVM的堆是共享的,每个线程都没有一个堆,所以你的要求是不可能的。您可能会设置任意低的堆栈大小,并在达到某个调用深度时让JVM杀死线程,但这几乎是一个解决问题的可靠途径,因为无法保证锁会恢复到有效状态。

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

 类似资料:
  • 日安,我是tarantool的新手,我有一个关于tarantool内部客户端应用程序内存限制的问题,我有3亿个项目的内存数据库和选择其中一部分的lua应用程序,在选择我将结果包装为“类”后,从代码中进行更简单的交互。例如: 使用方法: 在大多数情况下,它在第一次运行时运行成功,但在第二次运行时,它以100%的概率失败,并显示消息(tarantool消息): 我知道,内存使用(非释放内存)存在问题,

  • 问题内容: 我在具有16GB Ram和64位OS的Linux机器上运行Python 2.7。我编写的python脚本可能会将过多的数据加载到内存中,这使计算机的运行速度降低到我什至无法杀死进程的地步。 虽然可以通过以下方式限制内存: 在运行脚本之前,请在外壳程序中添加一个限制选项。在我到处看的地方,该模块具有与相同的功能。但是调用: 在我的脚本开始时,绝对没有任何作用。即使将值设置为12000,也

  • 问题内容: 说“用cpu = 800和内存= 1024运行myApp.jar” 我从事Java编程已经很多年了,问这个问题很尴尬。我什至不知道这是否可能。如果是这样,怎么办? 我只想知道是否可以设置Java程序的最大内存和cpu使用率。我突然想到了这个,因为我最近开始开发移动应用程序。我想知道该应用程序在内存和处理器非常有限的设备上的表现。 我看到带有演示应用程序的物理引擎可以在浏览器上运行,也可

  • 本文向大家介绍MySQL内存使用之线程独享介绍,包括了MySQL内存使用之线程独享介绍的使用技巧和注意事项,需要的朋友参考一下 前言 在 MySQL 中,线程独享内存主要用于各客户端连接线程存储各种操作的独享数据,如线程栈信息,分组排序操作,数据读写缓冲,结果集暂存等等,而且大多数可以通过相关参数来控制内存的使用量。 线程栈信息使用内存(thread_stack) 主要用来存放每一个线程自身的标识

  • 我用一个订阅者实现了一个单例。我的应用程序有很多生产者(任何请求都可以是生产者)。 我找不到如何为设置事件数限制(如何为设置内存限制),以及如果生成的事件数大于容量会发生什么。 我想抛出一个异常来记录失败。

  • 当我研究线程及其占用的内存(线程堆栈)时,我决定做一个简单的负载测试,看看线程的数量如何影响我的计算机上的RAM。 所以,在测试中,我使用了Tomcat,在设置中。xml将最小和最大web容器线程池设置为200。在那之后,我在将pool设置为2000时也做了同样的操作。我很震惊,因为内存占用没有差异(通过Windows任务管理器进行检查),而且几乎是一样的。所以我认为这些线程可能必须处于运行状态,