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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWljbHVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">



由于要保持长连接。全部先改动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 给限制住了


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

最新文章

  1. obj转json
  2. python之路六
  3. php知识分享
  4. java多线程基础
  5. css 常见时间轴的做法(————————————————时间轴——————————————————)
  6. div,span,p等转换成可编辑
  7. C# 和 Unix 时间戳转换
  8. Apache的编译安装error: APR not found. Please read the documentation
  9. Apache,添加虚拟目录
  10. 制作按钮(Button)
  11. CSS跨浏览器(转)
  12. [译]GotW #4 Class Mechanics
  13. C# 线程知识--使用Task执行异步操作
  14. ODBC操作excel
  15. Laravel控制器和视图
  16. 【nodejs】nodejs 的linux安装(转)
  17. Android热修复(动态加载)方案汇总
  18. Nginx的内部(进程)模型
  19. 网易新网 spider
  20. Asp .Net core 2 学习笔记(3) —— 静态文件

热门文章

  1. NGUI 3.5教程(四)Atlas和Sprite(制作图片button)
  2. C++输出数据到txt
  3. 第三篇——第二部分——第一文 SQL Server镜像简介
  4. 使用EasyUI实现加入和删除功能
  5. 思考的工作方式——计划经济or市场经济
  6. java 产生的固体物的基础上 增删改的SQL声明
  7. imagick获取图片的大小bug
  8. 熟人Dubbo 系列1-Dubbo什么
  9. 开展.net mvc3遇到怪事+解
  10. 如何使用滑动菜单SlidingMenu?