Baz*_*Baz 15 java jpa docker keycloak
我正在运行一个脚本,在请求域的用户列表之前请求主令牌.我在紧密循环中执行此请求100次,并输出执行"auth/admin/realms/mine/users?first=0&max=1000"请求所需的时间.
使用本地安装的keycloak docker进行测试时,单个请求需要4.0秒.如果我同时运行此脚本的5个实例,则单个请求大约需要10秒.如果我运行10个实例,它会在收到回复之前跳转到20秒.
因此,我在页面上的webapp中遇到了严重的瓶颈,我列出了所有用户信息,并想知道如何解决这个问题.
我运行keycloak 2.5.0.Final.我的家是/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64/jre.authorizationPersister = jpa.
我的剧本:
import requests
keyCloakUrl = "http://foo.bar"
for i in range(100):
session = requests.Session()
r = session.post(
keyCloakUrl +"auth/realms/master/protocol/openid-connect/token",
data={
"grant_type":"password",
"client_id":"admin-cli",
"username":"admin",
"password":"admin"
}
)
master_token = json.loads(r.content)['access_token']
r = s.get(
keyCloakUrl + "auth/admin/realms/mine/users?first=0&max=1000",
headers={'Authorization':'Bearer '+master_token}
)
print(r.elapsed.total_seconds())
Run Code Online (Sandbox Code Playgroud)
我的dockerfile:
FROM jboss/keycloak-mysql:2.5.0.Final
ARG db2
ADD deps/ /opt/jboss/keycloak/
RUN /opt/jboss/keycloak/import_utbud_realm.sh
CMD ["-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-Djboss.socket.binding.port-offset=2"]
Run Code Online (Sandbox Code Playgroud)
UPDATE
我还尝试测量"auth/realms/master/protocol/openid-connect/token"请求的时间.这是每个请求0.1秒,只有一个脚本运行实例,0.8秒运行10个实例.
也许这是一个愚蠢的观察,但是您是否尝试在 docker 配置中增加 JVM 堆?喜欢:
CMD java -XX:+PrintFlagsFinal -XX:+PrintGCDetails $JAVA_OPTIONS -jar java-container.jar
Run Code Online (Sandbox Code Playgroud)
这里有一篇很棒的博客解释了JVM 和 docker 的内存问题
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |