<small id='rStQIb'></small> <noframes id='3mXEyNu1Vd'>

  • <tfoot id='oem89G'></tfoot>

      <legend id='2MKC5r'><style id='HKPf'><dir id='BCQVO'><q id='n5tHeWyZ'></q></dir></style></legend>
      <i id='zG2mC'><tr id='8yZX'><dt id='10IPLYUgu'><q id='Uw4l5WdPqV'><span id='w2cnSyXrTf'><b id='RbPJfq'><form id='UFKBy'><ins id='RMr6aOUHK'></ins><ul id='9b5c4'></ul><sub id='quQNK'></sub></form><legend id='LFBzMfX'></legend><bdo id='CtwQ4R2kH'><pre id='IwFV4WkHA'><center id='Q16X2D8Lpt'></center></pre></bdo></b><th id='a6onhLIl'></th></span></q></dt></tr></i><div id='MaTSqt15'><tfoot id='sdQ0Ai'></tfoot><dl id='UI45VxZET'><fieldset id='nserc'></fieldset></dl></div>

          <bdo id='2zK37k'></bdo><ul id='hRY836tJ'></ul>

          1. <li id='6L3WI7'></li>
            登陆

            竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?

            admin 2019-12-13 148人围观 ,发现0个评论

            技能博文,及时送达

            作者 | 新栋BOOK

            链接 | www.jianshu.co竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?m/p/f1930596947d

            一台Java服务器能跑多少个线程?这个问题来自一次线上报警如下图,超越了咱们的装备阈值。

            京东自研UMP监控剖析

            打出jstack文件,经过IBM Thread and Monitor Dump Analyzer for Java东西检查如下:

            IBM Thread and Monitor Dump Analyzer for Java

            合计1661个线程,和监控数据得出的符合。但这个数量应该是大了,咱们都知道线程多了,就会有线程切换,带来功能开支。

            其时就想到一台java服务器究竟能够跑多少个线程呢?跟什么有联系?现收拾如下。

            每个线程都有一个线程栈空间经过-Xss设置,查了一下咱们服务器的关于jvm内存的装备

            -Xms4096m-Xmx4096m-XX:MaxPermSize=1024m

            只要这三个,并没有-Xss 和-XX竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?:Th竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?readStackSize的装备,因而是走的默许值。几种JVM的默许栈巨细

            能够经过如下指令打印输出默许值的巨细,指令:jinfo -flag ThreadStackSize;例如

            [root@host-192-168-202-229 ~]#jinfo -flag ThreadStackS画画软件ize 1807
            -XX:ThreadStackSize=1024

            不考虑体系约束,能够经过如下公式核算,得出最大线程数量

            线程数量=(机器自身可用内存-JVM分配的堆内存)/Xss的值,比方咱们的容器自身巨细是8G,堆巨细是4096M,走-Xss默许值,能够得出 最大线程数量:4096个。

            依据核算公式竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?,得出如下定论:

            定论1:jvm堆越大,体系创立的线程数量越小。

            定论2:当-Xss的值越小,可生成线程数量越多。

            咱们知道操作体系分配给每个进程的内存巨细是有约束的,比方32位的Windows是2G。因而操作体系对一个进程下的线程数量是有约束的,不能无竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?限的增多。经验值:3000-5000左右(我没有验证)。

            方才说的是不考虑体系约束的状况,那假如考虑体系约束呢,首要跟以下几个参数有联系

            /proc/sys/kernel/pid_max 增大,线程数量增大,pid_max有最高值,超越之后不再改动,并且32,64位也不一样

            /proc/sys/kernel/thread-max 体系能够生成最大线程数量

            max_user_process(ulimit -u)centos竞彩小章鱼 彩票大师-一台 Java 服务器能够跑多少个线程?体系上才有,没有详细研讨

            /proc/sys/vm/max_map_count 增大,数量增多

            线程是十分名贵的资源,咱们要严格控制线程的数量,象上面咱们的截图状况,明显线程数量过多。这个是跟咱们自己装备了fixed巨细的线程池有联系。京东有自己的rpc结构jsf,里边能够针对每个服务端口设置线程巨细。

            -END-

            假如看到这儿,阐明你喜爱这篇文章,请转发、点赞。微信查找「web_resource」,重视后回复「进群」或许扫描下方二维码即可进入无广告沟通群。

            ↓扫描二维码进群↓

            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP