设为首页 收藏本站
查看: 774|回复: 0

[经验分享] Jetty调优参数

[复制链接]

尚未签到

发表于 2017-2-26 11:15:51 | 显示全部楼层 |阅读模式
1、线程池(ThreadPool)

ThreadPool的大致工作方式是:如果存在一个空闲线程,则让它去执行请求处理。如果不存在且没有达到设定的最大线程数,那么就新建一个Thread去执行请求处理。如果已经达到最大线程数,那么就将工作任务放到队列里面排队,等到有空闲线程时再执行任务。



线程池线程资源大小确定了服务器的服务能力,默认大小不一定能满足生产环境,线程分配方式决定了服务器的资源利用效率,jetty自带的线程池QueuedThreadPool。注意之前的版本是:类【org.mortbay.thread.QueuedThreadPool】,后续的版本变为:【org.eclipse.jetty.util.thread.QueuedThreadPool】,类名称没变,包路径改了。

样例配置如下:

////////////////////////begin/////////////////

   <Set name="ThreadPool">

      <!-- Default queued blocking threadpool -->

      <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">

        <Set name="minThreads">10</Set>

        <Set name="maxThreads">200</Set>

        <Set name="detailedDump">false</Set>

      </New>

</Set>



////////////////////////end///////////////////

这个是默认配置,优化时可以调整最小线程数【minThreads】和最大线程数【maxThreads】。【detailedDump】表示是否记录详细的thread dump,默认不记录。

2、连接器(Connector)



Connector主要分两类,BIO模式和NIO模式。



BIO模式的Connector有:

ScoketConnector (HTTP)



Ajp13SocketConnector (AJP)



SslSocketConnector (SSL)



(2)、NIO模式的Connector有:
SelectChannelConnector (HTTP)



SslSelectChannelConnector (SSL)



Jetty中默认的Connector就是异步的,如下:



/////////////////////begin//////////////////

   <Call name="addConnector">

      <Arg>

          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">

            <Set name="host"><Property name="jetty.host" /></Set>

            <Set name="port"><Property name="jetty.port" default="8080"/></Set>  

            <Set name="maxIdleTime">3000</Set>

            <Set name="acceptors">8</Set>   

            <Set name="statsOn">false</Set>

            <Set name="confidentialPort">8443</Set>

            <Set name="lowResourcesConnections">10000</Set>

            <Set name="lowResourcesMaxIdleTime">1000</Set>

            <Set name="acceptQueueSize">1000</Set>

          </New>

      </Arg>

</Call>



/////////////////////end////////////////////



注意,如果配置多个Connector的话,建议各个Connector共享同一个线程池,即需要在Connector中指定线程池的名称,如:

各参数的含义:

host:jetty所在主机的IP或主机名;
port:设置jetty的端口号;
maxIdleTime:表示连接最大空闲时间,单位是ms,默认值300000这个值太大,典型值3000左右足够;
acceptors:接收线程数量,Acceptor的功能是接收客户端连接然后分配个给ThreadPool处理,表示同时在监听read事件的线程数,缺省值为2,对于NIO来说,建议值2*(处理器核数-1);或者小于等于2*处理器核数;
acceptQueueSize:在OS发起拒绝连接之前,请求连接排队的数量;
statsOn:是否开启统计功能,调优时建议关闭统计功能。
confidentialPort:受信端口号;
lowResourcesConnections:  连接数量达到该数值时,Jetty会认为服务器资源已被耗尽。只有NIO才有这个设置,表示连接空闲时的最大连接数,大于这个数将被shutdown,每个acceptor的连接数=(lowResourcesConnections+acceptor-1)/ acceptor。
lowResourcesMaxIdleTime:表示可用线程稀少时或者当资源饱和时,连接最大等待时间,时间单位是毫秒,一般设置为<= maxIdleTime;


3、处理器(Handler)
Handler分为三类:

内容输出Handler
该类Handler根据target输出内容。如:ResourceHandler、ServletHandler、DefaultHandler等。这些类都是直接对Handler接口进行实现。

装饰模式Handler
该类Handler可以选择在交给另外一个Handler对象调用前或后来处理Request和Response。这些类都继承自HandlerWrapper类。

集合类Handler
该类Handler的作用是讲请求分发给其他Handler处理,分发策略由各自实现类决定。常用集合类Handler有HandlerCollection、HandlerList、ContextHandlerCollection。



Handler主要是功能实现方面考虑的问题,在此处暂不给出调优建议。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347389-1-1.html 上篇帖子: maven jetty debug LifecyclePhaseNotFoundException异常 下篇帖子: jetty 中如何设置root app
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表