首页 > 技术文章 > dubbo无法创建线程问题

devilwind 2017-05-17 09:00 原文

OutOfMemoryError: unable to create new native thread

决定当前用户程序能够创建多少线程由2个因素决定 
1. 用户环境允许的线程数 
cat /etc/security/limits.d/90-nproc.conf

  • soft nproc 1024 
    root soft nproc unlimited

表示非root用户最多只能开1024

  1. 内存容量 
    (MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads 
    jdk7默认线程栈需要1m内存, 假设系统总可用内存为1G, 分配给jvm 是512m,操作系统保留120M内存, 
    最多可以开400左右的线程

3.可以通过pstree, jstack 去查看进程线程数量

推荐阅读