5

在我的应用程序中运行在亚马逊 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)

我想知道这些错误何时出现以及我们将如何防止这种情况发生。

提前致谢。

4

1 回答 1

4

在运行大量使用 JMeter 测试我的应用程序的并发进程时,我遇到了同样的问题。我正在使用 Fedora,默认情况下可用的进程数量为 1024。

您可以通过在命令行中输入ulimit -u来检查您的最大进程数,并且要永久更改最大进程数,您只需编辑/etc/security/limits.conf下的文件并添加以下行文件结尾:

用户名 soft nproc xx

用户名 hard nproc xx

例如为用户 ibai 设置 10000 个最大进程

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_OracleUser_Avail

于 2014-05-28T17:22:07.103 回答