• Tomcat性能调优


    一、简介

    1. 1  Tomcat 是什么?

      tomcat是市场比较流行的WEB中间件 ,tomcat是配合Java运行而生容器;

    1.2  Apache 和tomcate的区别

    1.  Apache属于web服务器,Tomcat 属于java服务器
    2.  Tomcat 是用来运行java程序的。Apache无法运行java程序
    3.   二者可单独使用,也可配合使用。Tomcat 处理java服务,Apache 处理偏静态服务;

    二、监控

    2.1 自带的Server Status监控

      

    1.  tomcat 自带监控Server Status如下图:

      

      2.初始化的tomcat是进不了 Server Status;需要修改配置文件

      3.tomcat配置文件 都在conf目录里面 如图 找到 tomcat-users.xml

      <role rolename="manager-gui"/>

      <user username="admin" password="123123" roles="manager-gui"/>

      

      

      4.配置完后 访问 点击页面的 Server Status ,在弹框中输入你配置的用户名和密码(admin/123123)

       

      5.进去监控画面

      注:1)Server Status监控界面分jvm显示区域  /ajp-bio-8009 显示区域 / http-nio-8080显示区域;

        2)JVM区域参数含义以后JVM篇在集中说明;

        3)apache与tomcat的链接方式分两种不一样的方式有不一样的性能 默认是bio的形式

      6.监控中的参数说明:

      Max threads :最大线程数
      Current thread count:当前线程数
      Current thread busy:当前正在运行的线程/正在处理的线程

      Max processing time: 246 ms 单个请求最大处理时间 单位毫秒
      Processing time: 总处理时间
      Request count: 有多少次请求
      Error count: 多少失败的

      Bytes received: 接受到的数据量
      Bytes sent: 发送出去的数据量

    2.2 利用LoadRunner进行打点监控 --很少用

      待我亲自实验好了日后补上

    三、参数调优

    3.1参数配置调优

      注:所有的参数调优都在这个文件 /conf/server.xml 基本上的参数调优都在 -- <Connector port="8080" protocol  这个标签里面;如下图

    3.1.1 链接方式优化 默认方式的链接方式性能很低
      将Connector port="8080" protocol="HTTP/1.1"
      中的protocol值改成 "org.apache.coyote.http11.Http11Protocol" --org.apache.coyote.http11.Http11NioProtocol
      效果如图:

    3.1.2 URIEncoding="UTF-8"这个参数和性能无关;

      这个配置解决tomcat的健壮性,可以帮助tomcat解析含有中文的url

    3.1.3 minSpareThreads="25" 这个参数含义:启动tomcat初始化的线程数;

      注:tomcat里面没有 maxSpareThreads这个参数;

    3.1.4 enableLookups="false" 这个参数含义是 是否进行域名反查询;

      一般情况下是不需要进行域名反查询的;因为进行域名反查询耗费一定的时间,及影响性能;

    3.1.5 useURIValidationHack="false" 这个参数含义:对URL是否进行规范性的检查;

      大流量话做检查会影响性能,建议为false;

    3.1.6 connectionTimeout="20000" 链接的超时时间,这单位是ms;

      调节按流量大小调 参考值30000

    3.1.7 maxThreads="50" 代表服务器最大请求数量 默认是200;(最重要的调优参数)

      流量高的需要调大,不能太高,也不能太低;调节可以根据监控的值来调节
      Max threads: 200 Current thread count: 10 Current thread busy: 

    3.1.8 acceptCount="300" 可以理解为 队列; 默认是100 ;(最重要的调优参数)

      a.当请求达到acceptCount这个值 ,就会报‘拒绝链接’

      b.当请求数在 大于 maxThreads 小于 acceptCount ,请求会在acceptCount里面。

    3.1.9 压缩调优 (以下参数是成队出现的)
      compression="on"                                    打开压缩
      compressionMinSize="2048"                             小于2048的不压缩
      noCompressionUserAgents="gozilla,traviata"                      对于哪些浏览器不进行压缩
      compressableMimeType="text/html,text/xml,text/css,text/plain,application/javascript"    支持压缩的文件类型

     3.2 JVM调优 

       JVM调优内容较多日后单独说明

    四、tomcat优化方向(非自身参数配置)

      4.1 硬件配置 ...需要大内存,因为Java程序吃内存

      4.2 选择 合适的jdk版本

      4.3 做负载均衡

    @版权所有禁止非法转载!!!!!

  • 相关阅读:
    如何使用类
    面向过程编程与面向对象优缺点
    生成器和迭代器的藕断丝连
    三元运算
    python 和pycharm 安装
    命令提示符玩法
    模块
    包(package)
    logging模块
    1964、1969和1972---------为什么中国互联网大佬出生在这3个年份
  • 原文地址:https://www.cnblogs.com/slade-sun/p/8658284.html
Copyright © 2020-2023  润新知