Spring Boot 内存消耗增加超出 -Xmx 选项

2023-11-24

我注意到 Spring Boot 应用程序不遵守通过 Xmx 选项设置的内存量。 例如:java -Xss64m -Xmx64m -jar test.jar

我还在控制台上打印了应用程序在启动时实际使用的内存量,并显示: 最大内存:61M

long maxBytes = Runtime.getRuntime().maxMemory();
System.out.println("Max memory: " + maxBytes / 1024 / 1024 + "M");

当我在访问任何网页之前打开Windows进程时,它显示+-105M,那么Java怎么会说61M呢?

访问任何网页后,它都会从 +-125M 变为 +-135M。为什么会有这样的增幅?它应该给出“java.lang.OutOfMemoryError:PermGen space”,但不要以这种方式增加。

如果许多应用程序可能会耗尽服务器上的内存,这让我感到担忧。顺便说一下,我使用的是Java 1.8_45


在监控 Spring Boot 应用程序后,我发现了一些可能的原因,例如:

  1. http 线程数(Undertow 每个线程启动大约 50 个线程) 默认,但您可以通过属性增加/减少所需的线程数量)
  2. 通过 JNI 访问本机例程(.dll、.so)
  3. 静态变量
  4. 使用缓存(memcache、ehcache 等)
  5. 如果虚拟机是 32 位或 64 位,64 位会使用更多内存来运行相同的应用程序,因此如果您不需要大于 1.5GB 的堆,那么请保持应用程序运行在 32 位以上以节省内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 内存消耗增加超出 -Xmx 选项 的相关文章

随机推荐

  • 俄语 mongodb 全文搜索

    我正在尝试在 mongodb 中使用全文搜索 gt db collection insert text gt db collection insert text gt db collection insert text gt db coll
  • 无法验证应用程序并将其提交到 Mac App Store

    我已经为 iOS 应用程序进行了无数次协同设计和提交 这次让我震惊的是 Mac App Store 我反复收到相同的错误消息 我的名字 是一个有效的身份 然而 您没有关联的包标识 我在堆栈溢出上认识到这两个主题 mas 代码签名身份私钥 a
  • 当使用 Object.create(null) 创建对象时 __proto__ 如何工作

    考虑以下 JavaScript 代码 var a Object create null a foo 1 var b Object create a console log b foo prints 1 console log b proto
  • 切换两个 INT 变量的大小写

    考虑以下代码 if xPoint gt 0 yPoint gt 0 m navigations Directions SouthEast else if xPoint gt 0 yPoint lt 0 m navigations Direc
  • 如何在UIView上设置渐变边框?

    在上面放置一个简单的边框非常容易UIView 您只需链接到QuartzCore 导入它并使用 self view layer borderColor UIColor redColor CGColor self view layer bord
  • 使用fork时内存是如何映射的?

    我是 fork 的新手 我到处都读到 当调用 fork 时 当前 调用 进程的精确副本就会启动 现在 当我运行以下代码时 应该有两个不同的进程 有两个不同的进程分配给它们的变量和函数的内存位置 include
  • 如何关闭 sbcl 中的调试器

    我目前正在尝试学习 common lisp 并且一直在使用 sbcl 我希望这是一个不错的实现选择 来自 ruby 和 irb 的我发现此时每个错误的自动转移到调试器有点烦人 有没有办法在我玩的时候暂时关闭它 Common Lisp 有一个
  • Wicked PDF +字体+heroku+rails3.2

    我在用着邪恶 pdf使用 Rails 3 2 11 和 ruby 1 9 3 从 HTML 生成 PDF 并部署到 Heroku 我的 pdf css scss erb font face font family DosisMedium f
  • 如何在 Symfony 4 结构的参数文件中检索环境变量?

    我使用 Symfony Flex 进行了全新的 Symfony 安装 新的框架属于下一个 Symfony 4 目录结构 我添加并配置第一个第三方包 HWIOAuthBundle 该捆绑包用于使用两个秘密信息通过 Twitter 进行连接 我
  • 计算两个 NSString 之间的差异数

    如何计算两个 NSString 之间的差异数 Example NSString 1 this is a string NSString 2 Tihs isa string 应返回 4 一个用于大写 T 一个用于 i h 和缺少的空格 您正在
  • 迭代 NSString 中所有字符的最有效方法

    迭代 NSString 中所有字符的最佳方法是什么 您想循环遍历字符串的长度并使用该方法吗 aNSString characterAtIndex index 或者您想使用基于 NSString 的字符缓冲区 我认为人们了解如何处理 unic
  • 创建多个可放置的兄弟姐妹,并将其放置在彼此之上

    我正在尝试创建多个彼此相邻的 jquery droppable 其中某些部分可能重叠 在这些情况下 我希望位于顶部 z 索引明智 的那个是贪婪的 我尝试过设置greedy truedroppable 中的选项 但这似乎没有帮助 我也尝试过r
  • 调试时会忽略依赖项 org.json:json:20090211,因为它可能与 Android 提供的内部版本冲突

    当我运行 android studio 时 出现以下警告 调试时会忽略依赖项 org json json 20090211 因为它可能与 Android 提供的内部版本冲突 如果出现问题 请用jarjar重新打包更改类包 我该如何解决这个错
  • 合并多个文件的 MD5 哈希值

    我有 7 个文件要为其生成 MD5 哈希值 哈希值用于确保数据存储的远程副本与本地副本相同 不幸的是 这两个数据副本之间的链接速度非常慢 数据的更改非常罕见 但我要求数据始终 或尽快 同步 我不想通过我的 非常慢的 通信链路传递 7 个不同
  • Entity Framework Oracle 和 Sql Server - 如何构建独立于数据库的应用程序

    我们正在尝试构建一个同时使用 Oracle 和 SQL Server 的数据访问层 不同时 我们使用 EF Model first 来创建模型并创建用于构建数据库的 SQL 脚本 我们的第一个想法是创建 2 个 EDMX 文件 每种类型一个
  • 为什么 Go HTTPS 客户端不重用连接?

    我有一个 http 客户端 它创建与主机的多个连接 我想设置它可以设置到特定主机的最大连接数 go的request Transport中没有这样的选项 我的代码看起来像 package main import fmt net http ne
  • 从 API 检索 Instagram 视频嵌入 URL

    我正在尝试以编程方式获取 Instagram 视频的嵌入链接 不幸的是 Instagram 的 oEmbed 端点似乎将视频视为照片 并且仅返回关键帧图像 而不提供嵌入链接 有谁知道一种方法可以检索 Instagram 视频的嵌入链接 而无
  • 如何在 PHP 中将 XML 转换为数组?

    我想将下面的 XML 转换为 PHP 数组 关于我如何做到这一点有什么建议吗
  • SQLCE 连接:保持打开还是关闭?

    考虑到移动设备上的性能 您认为 SQLCE 连接的最佳方法是什么 在应用程序运行期间保持其打开状态 或者在需要调用数据库时将其关闭 显然 这在一定程度上取决于您的应用程序的性质 但是我很想知道该小组已经实施了哪些内容以及原因 你绝对应该看史
  • Spring Boot 内存消耗增加超出 -Xmx 选项

    我注意到 Spring Boot 应用程序不遵守通过 Xmx 选项设置的内存量 例如 java Xss64m Xmx64m jar test jar 我还在控制台上打印了应用程序在启动时实际使用的内存量 并显示 最大内存 61M long