Java影响线程创建的因素

Java影响线程创建的因素

@Date 2018.06.21

JVM : 内存不够会影响Thread的Create, 特别是C Heap. 以下JVM参数主要影响的是剩余内存的大小

  • Xmx
    • 堆大小
  • Xss
    • 线程堆栈大小
    • 占用越小,创建的线程数量越多
  • MaxPermSize
    • 持久代
    • 存放Class和Meta信息
    • 不会被垃圾回收
    • 默认物理内存的1/64
  • MaxDirectMemorySize
    • 堆外内存上限
  • ReservedCodeCacheSize
    • 代码缓存区
    • JIT编译的代码

Kernel

  • max_user_processes
    • 用户进程数量限制
    • ulimit -u最大值
  • max_map_count
    • 涉及系统内存分配操作, 若超过sysctl_max_map_count则创建线程失败
    • /proc/sys/vm/max_map_count, 默认65530
  • max_threads
    • /proc/sys/kernel/threads-max
    • 受到物理内存限制,在系统做fork时, 会初始化此值
    • max_threads = mempages / (8 * THREAD_SIZE / PAGE_SIZE);
  • pid_max
    • 分配的PID数量限制
    • /proc/sys/kernel/pid_max
上一篇:centos6.5虚拟机安装后,没有iptables配置文件


下一篇:屌丝就爱尝鲜头——java8总结晒一晒