在我的应用程序中运行在amazon aws实例中。在这些中,我得到了java. lang.OutofMemory错误。我的实例在ubuntu机器中运行。以下是我得到的错误。我有谷歌关于这个问题,但我没有找到任何关于这个错误的解决方案。
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)
我想知道这些错误是什么时候出现的,我们将如何防止这种情况。
提前感谢。
在使用JMeter运行大量并发进程测试我的应用程序时,我遇到了同样的问题。我使用的是Fedora,默认情况下可用的进程量为1024。
您可以通过在命令行中输入ulimited-u来检查您的最大进程量,并且要永久更改最大进程量,您只需编辑 /etc/security/limits.conf下的文件并在文件末尾添加以下行:
用户名软nproc xx
用户名hard nproc xx
例如将10000个最大进程设置为用户ibai
伊白软nproc 10000
伊白硬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