当前位置: 代码网 > it编程>数据库>Mysql > tomcat部署优化与压力测试软件

tomcat部署优化与压力测试软件

2024年08月02日 Mysql 我要评论
在Engine部分指出的默认主机(也就是通用匹配),这样设定是为了确保,即便请求信息不足以直接匹配到某个特定的Host,Tomcat也能有确定的默认处理路径,不会因为找不到合适的处理目标而导致请求失败。Server的主要任务,就是提供一个接口让客户端能够访问到这个Service集合,同时维护它所包含的所有的Service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的Service。这是一个优化参数,用于缓存创建的HttpProcessor对象的数量,可以提升处理请求的效率。
  • tomcat简介

    • apache软件基金会的jakarta项目中的一个核心项目。

    • 优点

      • 开源免费

      • 轻量级

      • 对动态网页处理能力较强

      • 能独立运行

    • tomcat核心组件

      • web容器

        • 对http的请求做处理

      • servlet容器

        • 名为catalina,处理servlet代码

      • jsp容器

        • 将动态网页代码翻译成servlet代码

    • tomcat的catalina架构

        • 1,server

          • 代表整个tomcat容器,是整个容器的最顶(最外层)。 server只能有一个!

            • server的主要任务,就是提供一个接口让客户端能够访问到这个service集合,同时维护它所包含的所有的service的声明周期,包括如何初始化、如何结束服务、如何找到客户端要访问的service。

        • 2,service

          • 将connector和engine包裹起来,将两个容器组装起来, 在一个service中可以有多个connector, 但是engine只能有一个。

            • 不同的service监听不同的端口,可以做基于端口的虚拟主机。

        • 3,connector

          • 接收连接请求,应答解析后的结果。通过相关配置,可以配置service的协议与端口号。

        • 4,engine

          • 该组件在service中有且只有一个,负责接收connector发送给过来的请求并选择响应的host容器进行处理。

        • 5,host

          • host是engine的子容器,在engine中可以被放置多个,每一个host代表表一个网站站点(或者是基于域名的虚拟主机),

            • host组件至少有一个,且其中一个的name必须与engine组件的defaulthost属性相匹配。

              • 在engine部分指出的默认主机(也就是通用匹配),这样设定是为了确保,即便请求信息不足以直接匹配到某个特定的host,tomcat也能有确定的默认处理路径,不会因为找不到合适的处理目标而导致请求失败。

        • 6,context

          • 代表在虚拟主机上运行的一个web应用,应用可以是war包,在host下可以定义任意多的context元素。

        • 7,warapper

          • 容器最底层,每一个warapper都封装了一个servlet,负责对象实例的创建,执行,销毁功能。

      • 用户请求流程

        • 1:用户在浏览器中输入网址,请求被发送到本机端口8080,被在那里监听的connector获得; 2:connector把该请求交给它所在的service 的 engine (container)来处理,并等待engine 的回应; 3:请求在engine、host、context和 wrapper 这四个容器之间层层调用,最后在servlet 中执行对应的业务逻辑、数据存储等。 4:执行完之后的请求响应在context、host、engine 容器之间层层返回,最后返回给connector,并通过connector返回给客户端。

    • 部署tomcat

      • 准备前奏

        • 版本:9.0.8

        • jdk版本

          • java在各个平台的解压即用版本。

        • 添加策略或关闭防火墙,关闭内核安全机制。

      • 下载并安装jdk

        • rpm -ivh jdk-8u171-linux-x64.rpm

        • 在profile中设置其环境变量

          • export java_home=/usr/java/jdk1.8.0_171-amd64

            • 定义了java家目录

          • export classpath=$java_home/lib/tools.jar:$java_home/lib

            • 定义了java类库(lib)的位置

          • export path=$java_home/bin:$path

            • 定义了java的命令路径

          • 设置完后重新加载一下该文件

            • 否则重新登陆后才生效

            • java -version

              • 查看一下版本信息

      • 安装tomcat服务

        • 解压后移动重命名到常用目录下即可例如:/usr/local/tomcat

        • 利用软链接路径的方式将bin下的软件连接到对应目录可进行快速启动。

          • startup.sh

          • shutdown.sh

          • catalina.sh

        • startup.sh

          • 启动后查询网络服务java看是否运行

            • 8005端口是用于命令行关闭tomcat服务 8009 tomcat服务器通过connector连接器组件与客户程序建立连接使用的端口 8080是tomcat的web服务端默认口号

            • 可以用8080端口进行访问测试看服务是否正常

              • 优化tomcat初次加载速度慢

                • /usr/java/jdk1.8.0_171-amd64/jre/lib/security/java.security 找到将其修改称该方式即可。 securerandom.source=file:/dev/urandom

      • tomcat目录结构

          • bin 目录:用于存放启动和关闭 tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件。

          • conf 目录:用于存放 tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四个文件。

          • lib 目录:用于存放 tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相对应的 jar 包。

          • logs 目录:用于存放 tomcat 日志。

          • temp 目录:用于存放 tomcat 运行时产生的文件。

          • webapps 目录:用于存放项目资源的目录。

            • 该目录下能自动解压war包与jar包,但是不能放到子一级的目录中。

          • work 目录:是 tomcat 工作目录,一般清除 tomcat 缓存的时候会使用到

      • tomcat做虚拟主机

        • server.xml配置文件

          • 优化该文件,提前做备份!!!

            • 做备份

              • cp server.xml server.xml.bak

            • 去掉注释

              • perl -0777 -pe 's/<\!--.*?-->//gs' server.xml > server.xml.nocomments

            • 去掉空行

              • sed -i '/^[[:space:]]*$/d' server.xml.nocomments

            • 优化过后

              • host部分大概7行

              • service部分大概12行

          • host容器部分

            • 通过context容器能指定网站文档应用目录

              • <context docbase="/usr/local/tomcat/webapps/bbs" path="" reloadable="true" />

              • docbase:网页内容目录

              • path:虚拟目录

              • reloadable:修改类库后会被直接重载

        • 基于域名

          • 在engine容器中复制多个host容器即可

            • 修改name即可,并且指定出context即可
        • 基于端口

          • 复制多个service即可

            • 修改其中的8080端口保证不冲突即可
    • 压力测试软件与tomcat优化

      • 在windows中解压后jdk需要安装,jmater解压缩后找到启动器,jmater.bat启动即可
        • 测试软件调试步骤

          • 添加线程组

          • 设置发送数量, 标识1:用几个线程发送,代表了几个用户

          • 标识2:在单位时间内发送的次数

          • 标识3:循环几次 三者相乘的总数越大测试的结果就越精准。

          • 选择聚核报告会以数字的方式列出数据 每一次测试后都需要清理数据,否则数据结果会被叠加!!!
          • 设置完毕后绿色按钮开始运行,再次出现绿色按钮表示测试结束,结束后稍等片刻,就可以在聚合报告中查看结果。
          • 红色依次表示,平均响应时间,处理出错率,吞吐量。这几个具有参考价值。
      • tomcat优化

        • minsparethreads="50"

          • 最小备用线程数。即使没有请求处理,tomcat也会保持至少50个线程等待,以便快速响应新请求。

        • enablelookups="false"

          • 禁用dns查询。对于每个连接,tomcat默认会尝试解析远程主机的ip地址到主机名,禁用此功能可以提高性能。

        • disableuploadtimeout="true"

          • 禁止上传超时。这意味着servlet容器在处理post请求的上传数据时不设置超时限制。

        • acceptcount="300"

          • 当所有可用线程都在使用时,tomcat会将额外的连接请求放入队列中,这个值指定了队列的最大长度。

        • maxthreads="500"

          • 最大工作线程数。这是tomcat能够同时处理请求的最大并发线程数。

        • processorcache="500"

          • 这是一个优化参数,用于缓存创建的httpprocessor对象的数量,可以提升处理请求的效率。

        • uriencoding="utf-8"

        • compression="on"

          • 启用http响应压缩。这可以减小传输数据的大小,从而加快页面加载速度。

        • compressionminsize="2048"

          • 只有当响应体的大小超过2kb时,才会进行压缩。这避免了小响应的压缩开销。

        • compressablemimetype="text/html,text/xml,text/javascript,text/css,tex t/plain,image/gif,image/jpg,image/png" />

          • 指定了哪些类型的mime内容可以被压缩。这里包括了常见的文本和图像类型,压缩这些内容可以显著减少带宽使用。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com