如何计算服务器的线程承载量?
Java内存结构:
- Stack:计算/执行代码块。栈内存是线程独享的
- Heap:存储对象。对内存是线程共享的
- Method Area:存储类信息。方法区是线程共享的
- Native Stack:执行本地方法。用native修饰但是没有方法体的方法称之为本地方法,本地方法的方法体是用其他语言来实现的。本地方栈是线程独享的
- Program Counter:对线程来进行计数。当PC计数器对哪一行计数的时候,任务就会执行哪一行。PC计数器是线程独享的
如何计算一台服务器的线程承载量
如果要计算一台服务器的线程承载量,要考虑到独享内存的数量:栈内存、本地方法栈、PC计数器。其中PC计数器只占几个字节,所以可以忽略不计;线程执行过程中除非出现本地方法,不然不会占用本地本地方法栈;栈内存的大限是128K~8192K之间
如果需要顾及一台服务器的线程承载量,主要考虑栈内存
一般而言,一台服务器最多能允许将2/3的内存给栈内存使用
市面上主流的服务器内存是在64G~128G,也有更大的不过价钱远高于128G
以128G为准,考虑极端情况下,栈内存以128K来计算
128G/128K*2/3约为699050
实际开发过程中,一台服务器的线程数量大概是25W左右
以上是 如何计算服务器的线程承载量? 的全部内容, 来源链接: utcz.com/z/517636.html