JVM最多可以创建多少线程?

向量数据库大模型机器学习

picture.image

具体计算公式如下:

(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads

  • MaxProcessMemory : 进程的最大寻址空间
  • JVMMemory : JVM内存
  • ReservedOsMemory : 保留的操作系统内存,如Native heap,JNI之类,一般100多M
  • ThreadStackSize : 线程栈的大小,jvm启动时由Xss指定 默认1M

MaxProcessMemory:如32位的linux默认每个进程最多申请3G的地址空间,64位的操作系统可以支持到46位(64TB)的物理地址空间和47位(128T)的进程虚拟地址空间(linux 64位CPU内存限制)。

JVM内存:由Heap区和Perm区组成。通过-Xms和-Xmx可以指定heap区大小,通过-XX:PermSize和-XX:MaxPermSize指定perm区的大小(默认从32MB 到64MB,和JVM版本有关)。

总结下影响Java线程数量的因素:

Java虚拟机本身:-Xms,-Xmx,-Xss;

系统限制:

  • /proc/sys/kernel/pid_max

  • /proc/sys/kernel/thread-max

  • /max_user_process(ulimit -u)

  • /proc/sys/vm/max_map_count

    想增加线程数,在JVM内部可以通过减少最大堆或减少栈容量来实现


btw

看生活大爆炸 谢耳朵说他最喜欢的数字 还挺有意思的![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/009bca0776784f2e82500c9b417aabbc~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1753325435&x-signature=k%2FOelBW91o5gGYX7pxdFQ80fDqM%3D)

picture.image

73是第21个素数  反过来   37是第12个素数


12 vs 21= 7 * 3   



二进制的73 = 1001001 是一个回文数
0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
如何利用云原生构建 AIGC 业务基石
AIGC即AI Generated Content,是指利用人工智能技术来生成内容,AIGC也被认为是继UGC、PGC之后的新型内容生产方式,AI绘画、AI写作等都属于AIGC的分支。而 AIGC 业务的部署也面临着异构资源管理、机器学习流程管理等问题,本次分享将和大家分享如何使用云原生技术构建 AIGC 业务。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论