2017-01-20 56 views
0

我們正在使用API​​管理器來公開底層的DSS服務。對於來自客戶端的每個請求/響應,API Manager在Linux中啓動大約10個Java線程。但是這些線程永遠停留在那裏,最終我們的服務器耗盡內存。API管理器 - Java線程太多

不應該自動清除這些線程嗎?我需要查看一些配置來控制這一點。

任何指針請。

+0

您可以分析線程轉儲。 – Bee

回答

1

如果您遇到OOM,你可以調整操作系統以及JVM的。請參閱調整性能文檔[1]

+0

謝謝。我會檢查這一點。 – pskumar

+0

我已經通過了性能調優文檔。我發現我的開發服務器不能支持超過1012個線程。我想讓APIM線程少於這個數字。通過閱讀上面的文檔,我減少了所有位置的最大線程數,使它不會超過1012.仍然APIM正在嘗試創建更多的線程,並以錯誤java.lang.OutOfMemoryError結束:無法創建新的本機線。我在一臺服務器(商店,出版商,網關和keymanager)中運行所有服務器。有沒有辦法讓總線程數少於1000. – pskumar

+0

這是一種已知問題,如果每個用戶名爲「nproc」的最大允許進程數過低,就可能發生這種情況。由於該JVM將失敗並引發OOM。您可以通過運行'ulimit -u'命令來檢查nproc。您可以通過編輯/etc/security/limits.conf文件來更改該值。值的格式是{用戶名}硬nproc {值}。確保您重新啓動服務器以應用更改。您也可以通過在[1]中運行命令來應用更改,而無需重新啓動服務器。 [1] - http://xmodulo.com/how-to-reload-sysctlconf.html – Pubci