首页 > 解决方案 > 限制 Keycloak 工作线程

问题描述

我目前正在尝试通过 docker 托管一个带有 oauth 服务器的小型 Spring Boot 后端。

不幸的是,我选择的 vServer 在 /proc/user_beancounters 中设置了 400 个进程/内核线程的限制。

当启动 jwilder/nginx-proxy 时,带有 db 的 spring boot 应用程序(设置为只有 1 个 tomcat 线程)和带有 db 的 Keycloak 服务器超过了这个限制,一切都停止了。

我的方法是限制 Keycloak 中的工人,因为我不需要这么多。

14:35:23,948 INFO  [org.wildfly.extension.io] (ServerService Thread Pool -- 40) WFLYIO001: Worker 'default' has auto-configured to 8 IO threads with 64 max task threads based on your 4 available processors

但是我真的找不到任何关于如何在 Keycloak 中配置这个参数的解释。

所以问题是:如何配置限制?或者也许有更好的方法来解决这个问题?

标签: dockerkeycloakkeycloak-services

解决方案


您可以standalone.xml在 WildFly/Keycloak 实例中配置它。参数在io子系统下:

<subsystem xmlns="urn:jboss:domain:io:3.0">
    <worker name="default" io-threads="8" task-max-threads="64"/>
    <buffer-pool name="default"/>
</subsystem>

推荐阅读