搜索

3.7. 指定不同的内存设置

download PDF

红帽构建的 Keycloak 容器,而不是为初始和最大堆大小指定硬编码值,而是使用相对值到容器的总内存。JVM 选项 -XX:MaxRAMPercentage=70-XX:InitialRAMPercentage=50 来实现此行为。

-XX:MaxRAMPercentage 选项表示容器内存总量的 70% 的最大堆大小。-XX:InitialRAMPercentage 选项代表容器内存总量的 50% 的初始堆大小。这些值根据红帽构建的 Keycloak 内存管理的更深入分析来选择。

由于堆大小根据容器内存总量动态计算,您应该始终为容器设置内存限值。在以前的版本中,最大堆大小设置为 512 MB,为了接近类似值,您应该将内存限值设置为至少 750 MB。对于较小的生产就绪部署,推荐的内存限值为 2 GB。

通过设置环境变量 JAVA_OPTS_KC_HEAP 来覆盖与堆相关的 JVM 选项。您可以在 kc.shkc.bat 脚本的源代码中找到 JAVA_OPTS_KC_HEAP 的默认值。

例如,您可以指定环境变量和内存限值,如下所示:

podman run --name mykeycloak -p 8080:8080 -m 1g \
        -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=change_me \
        -e JAVA_OPTS_KC_HEAP="-XX:MaxHeapFreeRatio=30 -XX:MaxRAMPercentage=65" \
        registry.redhat.io/rhbk/keycloak-rhel9:24 \
        start-dev
警告

如果没有设置内存限制,则内存消耗会快速增加,因为堆大小可增长总容器内存的 70%。在 JVM 分配内存后,它会与当前红帽构建的 Keycloak GC 设置一起返回到操作系统。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.