zoukankan      html  css  js  c++  java
  • JVM截至多少线程可以创建: unable to create new native thread

    最近的测试需要很长的连接server。这些数据需要达到100W长连接,试client。一个线程来保持连接。查找linuxserver创建者默认3200当多个线程。这个错误将得到“java.lang.OutOfMemoryError: unable to create new native thread。并且,此时整个系统都不能创新新的线程了,不能连接终端,不能运行不论什么命令。

    貌似是内存不足。但实际内存尚有富余。经验证。是linux的一些内核參数限制了创建新的线程。




    由于要保持长连接。全部先改动client保证更大的分配port范围
    改动 /etc/sysctl.conf
    加入这样一行:
    net.ipv4.ip_local_port_range = 1024 61000


    改动系统參数

    echo "100000" > /proc/sys/kernel/threads-max
    echo "100000" > /proc/sys/kernel/pid_max     (默认32768)
    echo "200000" > /proc/sys/vm/max_map_count   (默认65530)


    改动/etc/security/limits.conf
    *       -      nproc      999999
    *       -      nofile      999999
    PS:nproc是改动系统的max user processes大小;nofile  是改动open files的大小。另外linux 2.6.25内核之前有个宏定义,定义了这个值的最大值,为1024*1024,正好是100万,而在2.6.25内核及其之后。这个值是能够通过/proc/sys/fs/nr_open来设置,只是,999999足够用了。

    非常多人可能会遇到。仅仅能启动32000多个线程就不能再起很多其它的线程了,事实上就是pid_max = 32768 给限制住了



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Python--json处理
    Python--加密模块
    Python--函数即变量
    bzoj 2276: [Poi2011]Temperature
    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛
    2017 9 15 noip模拟赛
    bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
    2017 9 11 noip模拟赛T2
    URAL 1613. For Fans of Statistics (2017 9 6 noip模拟赛T3)
    codeforces 105 B. Dark Assembly(birbe贿赂 noip模拟赛)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4818711.html
Copyright © 2011-2022 走看看