如何限制 Open JDK 11 上的非堆大小

2023-12-13

我们正在 AWS 中运行基于 openjdk:11-slim 的 docker 容器。我们通常使用两种实例类型。一个有 1G,另一个有 2G 可用内存。在 1G 实例上,我开始使用这些参数来限制堆大小:-XX:MaxRAM=1g -XX:MaxRAMPercentage=30

我也想限制非堆。它是一个 Spring Boot 应用程序,在 Spring Boot Admin 中它当前看起来像这样(默认运行):

enter image description here

正如您所看到的,1.33 GB Max 甚至无法工作,因为总内存只有 1G。理想情况下,非堆也应限制在 30% 以内。我可以使用哪些 JVM 参数来调整非堆内存的大小?

我进行了一些调查,在这个实例中,大约 1G 总 RAM 的 30% 已用于非应用程序相关进程(第三列是总内存的百分比)。

3663 root      4.6 /usr/bin/python2.7 /usr/bin/aws logs push --config-file /etc/awslogs/awslogs.conf --additional-configs-dir /etc/awslogs/config
 3430 root      4.1 /usr/bin/dockerd --storage-driver devicemapper --storage-opt dm.thinpooldev=/dev/mapper/docker-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true --storage-opt dm.fs=ext4 --storage-opt dm.basesize=100G
 2949 healthd   3.5 puma 2.11.1 (tcp://127.0.0.1:22221) [healthd]
 3021 root      2.6 /usr/bin/python2.7 /opt/aws/bin/cfn-hup
 3437 root      2.2 containerd --config /var/run/docker/containerd/containerd.toml --log-level info
 4867 root      2.1 docker logs -f f82ef403ef45
 4831 root      2.0 docker wait f82ef403ef45
 3501 root      1.9 docker events
 3322 root      1.7 /sbin/dmeventd
16976 root      0.7 sshd: ec2-user [priv]
 2280 root      0.6 /usr/bin/amazon-ssm-agent

您不能限制堆外内存,否则应用程序将崩溃。当分配直接内存时,总是需要它,因此拒绝它与OutOfMemoryError.

您可以限制元空间大小-XX:MaxMetaspaceSize=.

您可以减少 JIT 编译器用于存储已编译方法的内存量,从而可能减少编译,使用-XX:ReservedCodeCacheSize=.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何限制 Open JDK 11 上的非堆大小 的相关文章

  • 从 java sdk 向对等方发送提案时出现访问被拒绝错误

    我正在尝试使用以下代码查询区块链并收到访问被拒绝错误 我也遇到同样的错误sendTransactionProposal方法也是如此 UserContext adminUserContext RegisterEnrollUser regist
  • Spring Security 自定义过滤器

    我想自定义 Spring security 3 0 5 并将登录 URL 更改为 login 而不是 j spring security check 我需要做的是允许登录 目录并保护 admin report html 页面 首先 我使用教
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • JVisualVM/JConsole 中的 System.gc() 与 GC 按钮

    我目前正在测试处理 XML 模式的概念验证原型 并围绕一个非常消耗内存的树自动机外部库 我已经获得了源代码 构建 我想绘制 真实峰值 堆 随着模式大小的增加 不同运行的内存消耗 使用的指标符合我的目的并且不会影响问题 或者至少是它的合理近似
  • Java:在 eclipse 中导出到 .jar 文件

    我正在尝试将 Eclipse 中的程序导出到 jar 文件 在我的项目中 我添加了一些图片和 PDF s 当我导出到 jar 文件时 似乎只有main已编译并导出 我的意愿是如果可能的话将所有内容导出到 jar 文件 因为这样我想将其转换为
  • Spring Boot自动装配存储库始终为空[重复]

    这个问题在这里已经有答案了 每次我进入我的服务类时 存储库似乎都没有自动连接 因为它不断抛出 NullPointerException 谁能帮我检查一下我缺少什么吗 这是我的代码 演示应用程序 java package com exampl
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 如何在代理后面安装 Eclipse Neon

    对于 Neon Eclipse 附带了一个安装程序 我在安装程序中找不到任何配置菜单 我的java版本是 java version java version 1 8 0 72 Java TM SE Runtime Environment b
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预
  • 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

    我有一个返回 sys refcursor 的 Oracle 函数 当我使用 Hibernate 调用该函数时 出现以下异常 Hibernate call my function org hibernate exception Generic
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 生成的序列以 1 开头,而不是注释中设置的 1000

    我想请求一些有关 Hibernate 创建的数据库序列的帮助 我有这个注释 下面的代码 在我的实体类中 以便为合作伙伴表提供单独的序列 我希望序列以 1000 开头 因为我在部署期间使用 import sql 将测试数据插入数据库 并且我希
  • 从 GitHub 上托管的 Spring Cloud Config Server 访问存储库的身份验证问题

    我在 GitHub 上的存储库中托管配置 如果我将回购公开 一切都好 但如果我将其设为私有 我将面临 org eclipse jgit errors TransportException https github com my user m
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • 如何使用play框架上传多个文件?

    我在用play framework 2 1 2 使用java我正在创建视图来上传多个文件 我的代码在这里 form action routes upload up enctype gt multipart form data
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo

随机推荐

  • 是否可以使用从 Google 获得的 auth_token 对我的服务器验证 Google 用户(在 Android 设备上登录的用户)?

    我有一个 Android 应用程序 允许用户将内容添加到我的服务器 每个用户都应该在此服务器上拥有一个帐户 该应用程序通过一个简单的 API 与服务器进行通信 我想使用用户的 gmail 地址作为用户名 并使用从 AccountManage
  • 如果 'ℤ' 在 BMP 中,为什么不将其编码为 2 个字节?

    我的问题源于这个答案 其中说 由于 0x2124 位于基本多语言平面中 因此它由单个代码单元表示 如果这是正确的 那么为什么 getBytes StandardCharsets UTF 8 length 3 and getBytes Sta
  • Jquery自动完成“搜索”方法

    我正在使用 Jquery UI 自动完成 这是下面的代码 var opt source var options minLength 0 source opt source search aPreDefinedString searchabl
  • 如何访问 Angular2 组件中的 codemirror 文本区域值?

    我正在尝试将 codemirror 与 Angular 2 TypeScript 链接 现在 我可以使用 codearea 自定义指令显示 CodeEditor 该指令动态加载脚本文件并格式化文本区域 我无法获取该值 用户在文本区域中键入
  • 我们如何为鼠标滚轮敏感的

    我需要创建一个具有自己的滚动条的页面区域 就像下图中的 Facebook Messenger 一样 堆栈溢出在大段代码的答案中具有相同的系统 但滚动条没有样式 请注意图片 您将在 Messenger DIV 中看到普通滚动条和样式滚动条 有
  • Chrome 中的字体 MIME 类型错误

    这是 font face我使用过的声明 font face font family SolaimanLipi src url font SolaimanLipi 20 04 07 ttf 这在 Firefox 中工作得很好 但在 Chrom
  • 固定大小的 HashMap 的最佳容量和负载因子是多少?

    我正在尝试找出特定情况下的最佳容量和负载系数 我想我已经明白了它的要点 但我仍然感谢比我更有知识的人的确认 如果我知道我的 HashMap 将填满以包含 100 个对象 并且大部分时间都会包含 100 个对象 那么我猜测最佳值是初始容量 1
  • 在 RowMapper 中使用查询

    在java中我会做类似下面的事情来迭代resultset并形成查询 public Map
  • 是否可以创建一个非居中的 Javascript 警报框?

    对于标准 Javascriptalert 盒子 是否可以让它出现在屏幕中心以外的位置 您能指定水平和 或垂直位置吗 Afaik 它无法放置在您想要的位置 您始终可以使用在功能和自定义方面提供更多功能的 JS 框架 工具包解决方案之一 而不是
  • pandas 替换一列中的多个值

    在风险级别列中 我想将 小 替换为 1 将 中 替换为 5 将 高 替换为 15 我试过 dfm replace risk Small 1 risk Medium 5 risk High 15 但仅更换了介质 怎么了 您的替换格式已关闭 I
  • 基于分组返回列的 SQL 查询

    我的选择如下 SELECT SUBSTRING Col1 1 3 AS Series b Col2 CAST c Price c Qty AS MONEY AS Total FROM tableName a inner join WHERE
  • sitecore 中的基本 MembershipProvider

    我正在尝试为 sitecore 实现一个非常非常简单的 MembershipProvider 但我不确定它是否是too简单到实际工作 基本上我们已经有一个用于用户数据的自定义存储 所以我知道客户MembershipProvider是要走的路
  • 删除字符串中某个位置的字符 - javascript [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以删除javascript中某个位置的字符 例如如果我有字符串 Hello World 我可以删除位置3处的字符吗 我想要的结果如下 Helo World 这个问题不是重复的如何使用 Jav
  • 无法构建 apk,firebase_admob 出现错误

    我正在尝试构建 apk 但如果我没有运行 firebase admob 就会出现问题firebase admob那么 apk 可以完美运行并且构建没有任何错误 如何解决该问题 我收到此错误 在这种情况下 任务 firebase admob
  • 石头剪刀布程序不工作(Python)

    问题 程序似乎不接受输入的整数 不会增加赢 输 平局计数 并且不会在调试模式下显示计算机选择 程序的基本设计 编写一个程序 让用户与计算机玩石头 剪刀 布游戏 该程序应按如下方式工作 将显示一个菜单 战绩 0胜0平0负 调试显示计算机的选择
  • Eclipse RCP:如何排序属于不同插件的透视按钮?

    我的应用程序有 5 个插件 每个插件都有自己的视角 因此每个视角扩展定义都位于各个插件的plugin xml 下 现在 我想控制这些视角在我的应用程序中出现的顺序 怎么做 有一个主要插件包含 ApplicationWorkBenchAdvi
  • 如何更改工具栏主页图标颜色

    我正在使用 android support v7 widget Toolbar 并从中学习这个帖子如何将汉堡包图标的颜色更改为白色 但当我打电话时向上 后箭头仍然是深色 setDisplayHomeAsUpEnabled true 我怎样才
  • 如何在 Java 6 中使用为 Java 7 编译的库?

    我正在开发一个 Java 应用程序 我需要使用一个名为myBeans jar This myBeans jar包含许多类文件 这些文件是用jdk 1 7 我没有这些类文件的源代码 我的整个应用程序正在使用jdk 1 6 我无法将其编译器更改
  • SLComposeViewController 有屏幕截图但没有图像附件

    我注意到 Mobile Safari 的 Twitter 和 Facebook 共享添加了当前页面的屏幕截图 但并未实际共享它 例如 我试图通过 SLComposeViewController 复制此内容 但是调用添加图片 实际上将 UII
  • 如何限制 Open JDK 11 上的非堆大小

    我们正在 AWS 中运行基于 openjdk 11 slim 的 docker 容器 我们通常使用两种实例类型 一个有 1G 另一个有 2G 可用内存 在 1G 实例上 我开始使用这些参数来限制堆大小 XX MaxRAM 1g XX Max