2013-06-20 63 views
3

在我的應用程序中運行在amazon aws實例中。在這些我得到java.lang.OutofMemory錯誤。我的實例正在ubuntu機器上運行。以下是我收到的錯誤。我有谷歌關於這個,但我沒有找到任何解決這個錯誤。java.lang.OutOfMemoryError:無法在Java中創建新的本地線程(Play Framework)

java.lang.OutOfMemoryError: unable to create new native thread 
     at java.lang.Thread.start0(Native Method) 
     at java.lang.Thread.start(Thread.java:640) 
     at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:727) 
     at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657) 
     at org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:176) 
     at org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:156) 
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:325) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     at java.lang.Thread.run(Thread.java:662) 

我想知道這些錯誤何時出現以及我們如何防止這種情況。

謝謝inadvance。

+0

停止和啓動Web施維雅... –

+0

出的地址空間? – fge

+0

不是。地址空間不足。 – MadTech

回答

3

當我運行大量併發進程用JMeter測試我的應用程序時,我遇到了同樣的問題。我使用的Fedora,默認情況下可用的處理量是1024

您可以通過在命令行中輸入的ulimit -u只是檢查你的流程最高金額,並永久地改變最大處理量,你在該文件的末尾來編輯下/etc/security/limits.conf文件並添加以下行:

用戶名軟NPROC XX

用戶名硬NPROC XX

如設置10000個最大流程,用戶Ibai酒店

Ibai酒店軟NPROC 10000

Ibai酒店硬NPROC 10000

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Setting_Shell_Limits_for_the_Oracle_User-Limiting_Maximum_Number_of_Processes_Available_for_the_Oracle_User.html

相關問題