Jetty调优文档

1.       线程池

线程池线程资源大小确定了服务器的服务能力

默认大小不一定能满足生产环境

线程分配方式决定了服务器的资源利用效率

固定线程数处理多任务,代表:JDK的ThreadPoolExecutor  

       以最大的线程数为限处理多任务,代表:jetty自带的QueuedThreadPool

jetty****中的配置实例:

#######################################################################

   <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>

########################################################################

默认最大的线程才200个,肯定不能满足我们的生产环境,建议范围500-900

2. Connectors

选择Connector时,需要考虑

     应用自身的特点,例如:股票,聊天室

     Tcp连接数

     Keep-Alive

Java BIO Connectors

      ScoketConnector (HTTP)

      Ajp13SocketConnector (AJP)

      SslSocketConnector (SSL)

Java NIO Commectors

     SelectChannelConnector (HTTP)

      SslSelectChannelConnector (SSL)

jetty****中得默认配置:

########################################

    <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">300000</Set>

            <Set name="Acceptors">2</Set>  

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

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

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

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

          </New>

      </Arg>

</Call>

############################################################

 jetty.port: 设置jetty的端口号.

 maxIdleTime:表示连接最大空闲时间,默认值300000这个值太大,典型值3000左右足够.

 Acceptors: 表示同时在监听read事件的线程数,缺省值为2,对于NIO来说,建议值2-(处理器核数+1).

 lowResourcesMaxIdleTime:表示线程稀少时的maxIdleTime,一般设置为 <= maxIdleTime.

 lowResourcesConnections:  只有NIO才有这个设置,表示连接空闲时的最大连接数,大于这个数将被shutdown,每个acceptor的连接数=(lowResourcesConnections+acceptor-1)/ acceptor

                               这个我们就保持默认设置就可以.

3. JVM****调优

JVM****参数主要是 **/**栈内存大小调整

         -Xmx/xms                    最大/最小堆大小

         -xmn                        新生代大小

            -XX:MaxPermSize             持久代堆大小

Jetty****中的默认设置

###############################

# --exec

# -Dcom.sun.management.jmxremote

# -Dorg.eclipse.jetty.util.log.IGNORED=true

# -Dorg.eclipse.jetty.util.log.stderr.DEBUG=true

# -Dorg.eclipse.jetty.util.log.stderr.SOURCE=true

-Xmx2048m

-Xmn1024m

# -verbose:gc

# -XX:+PrintGCDateStamps

# -XX:+PrintGCTimeStamps

# -XX:+PrintGCDetails

# -XX:+PrintTenuringDistribution

# -XX:+PrintCommandLineFlags

# -XX:+DisableExplicitGC

# -XX:+UseConcMarkSweepGC

# -XX:ParallelCMSThreads=2

# -XX:+CMSClassUnloadingEnabled

# -XX:+UseCMSCompactAtFullCollection

# -XX:CMSInitiatingOccupancyFraction=80

#######################################

jetty****启动脚本:

java -Djetty.home=/usr/local/jetty7 -Djava.io.tmpdir=/tmp –Xmn1024M –Xms2048M –Xmx2048M -XX:PermSize=512M -XX:MaxNewSize=1024M -XX:MaxPermSize=1024M -Djava.awt.headless=true -jar /usr/local/jetty7/start.jar --pre=etc/jetty-logging.xml jetty.port=8080 &

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

4、jstack查看线程栈信息

1、介绍利用jps、top、jstack命令找到进程中耗时最大的线程,以及线程状态等等,同时最后还可以显示出死锁的线程查找:FoundoneJavaleveldeadlock即可1、jps获得进程号!(https://oscimg.oschina.net/oscnet/da00a309fa6

Jetty调优文档 - HelloWorld