Keycloak JVM 選項
本文檔涵蓋有關調整 Keycloak 效能的 JVM 選項資訊。
為什麼 JVM 堆積調整與 Keycloak 的效能相關
Keycloak 作為一個基於 Java 的應用程式,依賴 JVM 來進行記憶體管理。適當的堆積大小可確保應用程式有足夠的記憶體來處理其操作,而不會遇到與記憶體相關的問題。有效的垃圾收集 (GC) 是此過程中的一個重要因素。如果堆積太小,GC 將會頻繁執行,增加 CPU 使用率,並可能導致暫停。相反地,過大的堆積可能會導致更長的 GC 暫停時間。透過適當調整堆積大小,可以最大限度地減少花費在垃圾收集上的時間,從而提高整體應用程式輸送量。
此外,適當的堆積調整有助於防止記憶體不足 (OOM) 錯誤,從而提高 Keycloak 的穩定性和可靠性。它還可以改善延遲和響應時間,這對於身份驗證和授權任務至關重要。適當的記憶體管理使應用程式能夠有效地擴展,處理增加的負載而不會降低效能。此外,經過最佳化的堆積設定可確保有效的資源利用,防止系統資源的利用不足和過度消耗。
設定 JVM 選項
我們可以在部署中設定 JVM 選項,其中可以覆寫特定的變數 (例如 JVM_OPTS/JAVA_OPTS_KC_HEAP),並啟用特殊的標誌。請記住,如果您有多個容器/伺服器,請確保將設定以一致的方式應用於所有 Keycloak JVM。
我們也可以透過在 Keycloak 伺服器節點上執行以下命令來驗證是否已應用設定,該命令會印出應用於特定 JVM 的 VM.flags。
jcmd 1 VM.flags
JAVA_OPTS_KC_HEAP
容器特定工作負載 JVM 堆積選項
- -XX:MaxRAMPercentage
-
設定 JVM 可以使用的系統實體記憶體最大百分比。
- -XX:MinRAMPercentage
-
設定 JVM 可以使用的系統實體記憶體最小百分比。
- -XX:InitialRAMPercentage
-
設定配置給 JVM 的系統實體記憶體初始百分比。
垃圾收集調整選項
- -XX:+UseG1GC
-
啟用 G1 垃圾收集器。
- -Xlog:gc:file="path/to/file"
-
我們可以設定此項以產生 GC 記錄,然後可以收集這些記錄來執行 GC 記錄分析。
- -XX:MaxGCPauseMillis
-
設定最大 GC 暫停時間的目標。