zoukankan      html  css  js  c++  java
  • 浅谈tomcat中间件的优化【转】

    今天来总结一下tomcat的一些优化的方案,由于本人才疏学浅,写的不好,勿喷!

    tomcat对于大多数从事开发工作的童鞋应该不会很陌生,通常做为默认的开发环境来为大家服务,不过tomcat默认的一些配置对于生产环境来说是相当不够滴,特别对于内存以及线程的配置方面都很有可能成为日后性能的瓶颈。

    接下来咱们就聊聊tomcat的优化,从内存以及线程两个方面来谈:

    1.内存方面

    tomcat的内存优化操作起来就比较简单了

    如果是linux环境的话设置如下:

    修改TOMCAT_HOME/bin/catalina.sh,在前面加入

    JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

    如果是windows环境的话设置如下:

    修改TOMCAT_HOME/bin/catalina.bat,在前面加入

    set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

    2.线程方面

    在server.xml中 有以下配置:

    <Connector
     port="8080" protocol="HTTP/1.1" maxThreads="600" minSpareThreads="100" 
    maxSpareThreads="500" acceptCount="700"connectionTimeout="20000" />

    先来了解一下各属性内容:

    maxThreads="X" 表示最多同时处理X个连接

    minSpareThreads="X" 初始化X个连接

    maxSpareThreads="X" 表示如果最多可以有X个线程,一旦超过X个,则会关闭不在需要的线程

    acceptCount="X" 当同时连接的人数达到maxThreads时,还可以排队,队列大小为X.超过X就不处理

    这里是http connector的优化,如果使用apache和tomcat做集群的负载均衡,并且使用ajp协议做apache和tomcat的协议转发,那么还需要优化ajp connector。

    <Connector
     port="8009" protocol="AJP/1.3" maxThreads="600" minSpareThreads="100" 
    maxSpareThreads="500" acceptCount="700"connectionTimeout="20000" 
    redirectPort="8443" />

    由于tomcat有多个connector,所以tomcat线程的配置,又支持多个connector共享一个线程池。

    首先。打开/conf/server.xml,增加

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

    最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

    然后,修改<Connector ...>节点,增加executor属性,executor设置为线程池的名字:

    <Connector
     executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" 
    connectionTimeout="60000" keepAliveTimeout="15000" 
    maxKeepAliveRequests="1" redirectPort="443" />

    可以多个connector公用1个线程池,所以ajp connector也同样可以设置使用tomcatThreadPool线程池。

    转自

    浅谈tomcat中间件的优化

    https://www.toutiao.com/i6499659893543272974/

  • 相关阅读:
    华为超级应用联合创新计划启动,共同打造极致用户体验
    华为P20无敌拍摄能力开放 如何即刻获得?
    两千万次服务的背后,华为终端开放实验室到底做了什么?
    HUAWEI HiAI亮相华为开发者生态大会 助力应用AI开发实现加速度
    搜狐新闻APP是如何使用HUAWEI DevEco IDE快速集成HUAWEI HiAI Engine
    旅行助手:重新定义旅行
    世界更清晰,搜狐新闻客户端集成HUAWEI HiAI 亮相荣耀Play发布会!
    Android和设置alpha(图像)透明度
    Android应用开发欢迎界面不想显示最上面的LOGO
    聊天页面输入框和发送按钮的布局问题 Android
  • 原文地址:https://www.cnblogs.com/paul8339/p/8056215.html
Copyright © 2011-2022 走看看