美文网首页
Tomcat调优

Tomcat调优

作者: yljava | 来源:发表于2017-09-06 14:46 被阅读0次

    Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力,上篇文章已经介绍了 tomcat优化内存,这里将从其他方面继续介绍tomcat的调优。
    添加完用户后,启动tomcat,浏览器访问 http://IP:8080 点击server status 查看信息

    图片.png
    图片.png

    tomcat的运行模式有3种:

    bio:
    默认的模式,性能非常低下,没有经过任何优化处理和支持.
    nio:
    nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。
    apr:
    安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.

    启动NIO模式

    修改server.xml里的Connector节点,修改protocol为

    org.apache.coyote.http11.Http11NioProtocol
    
    图片.png 图片.png

    执行器优化(线程池)

    在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。
    开启并且使用,在Connector中指定使用共享线程池
    配置:

        <Connector port="8080"  
                protocol="org.apache.coyote.http11.Http11NioProtocol"  
                maxHttpHeaderSize="8192"  
                maxThreads="1000"  
                minSpareThreads="100"  
                maxSpareThreads="1000"  
                minProcessors="100"  
                maxProcessors="1000"  
                enableLookups="false"  
                compression="on"  
                compressionMinSize="1024"  
                noCompressionUserAgents="gozilla, traviata"  
                compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"  
                connectionTimeout="25000"  
                URIEncoding="utf-8"  
                acceptCount="1000"  
                redirectPort="8443"  
                disableUploadTimeout="true" /> 
    
            maxThreads 客户请求最大线程数
            minSpareThreads Tomcat初始化时创建的 socket 线程数
            maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
            enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
            redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
            acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
            connectionTimeout 连接超时
            minProcessors 服务器创建时的最小处理线程数
            maxProcessors 服务器同时最大处理线程数
            URIEncoding URL统一编码
    
    图片.png

    禁用AJP连接器

    AJP(Apache JServer Protocol)
    AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。
    我们一般是使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用

    图片.png

    在管理界面中看不到ajp了:

    图片.png

    完成上面几步对Tomcat的优化配置,你的Tomcat服务器并发量肯定会有大幅度的提升.

    相关文章

      网友评论

          本文标题:Tomcat调优

          本文链接:https://www.haomeiwen.com/subject/vadmjxtx.html