首页 > 其他分享 >如何加速tomcat启动速度

如何加速tomcat启动速度

时间:2023-02-21 11:09:03浏览次数:35  
标签:xml tomcat 启动 jar 应用程序 耗时 加速

在tomcat启动的时候,我们可以做一些优化设置来使得tomcat的启动更快速,下面是一些常见的优化加速启动的方法建议(以tomcat-7.+为例说明)。

1、  Jars包

1.1、将一些不必要的jar包去掉,当tomcat启动加载jar包的时候,会去搜寻每个jar包里的class文件,这些都会耗费一些时间,如果你把不必要的jar包去掉了,很显然会节省时间。

1.2、你可以将一些与TLD files、注解、网络碎片无关的jar包加入到属性

tomcat.util.scan.DefaultJarScanner.jarsToSkip的值中,这可以在conf/catalina.properties中进行设置。

2、  缓存

你可以在bin/catalina.sh中设置jvm所能使用到的缓存大小,如下:

JAVA_OPTS=’-Xms1024m -Xmx1024m’

3、  配置文件

Tomcat的配置比如server.xml是xml文件,而xml的解析也是要花时间的,如果我们能将xml配置文件尽可能地弄得简洁一些,比如去掉一些没有用到的节点,这也有助于减少启动的时间,虽然这个节省的时间看来很少。

4、  应用程序

4.1、确保你程序在启动的时候没有一些处理很耗时的地方。

4.2、删除掉tomcat自带的目录webapps及下面的所有内容,不然的话每次启动的时候都会加载这些自带的例子。

4.3、修改WEB-INF/web.xml文件,在默认的情况下中的属性metadata-complete的值为false,也就是这样:,这种情况下,tomcat在启动时会去自动扫描是否有注解及网络碎片,如果你不想tomcat这样做,你可以将metadata-complete的值设为true。

5、  并行启动多个应用程序

默认情况下,假设在一个tomcat下你有多个应用,那么启动的时候,这些应用程序都是依次启动的,除非所有应用全部启动完毕,tomcat才会启动完成,但从Tomcat 7.0.23+开始,你可以配置多个应用程序并行启动了!你可以通过修改配置文件中Host里面的startStopThreads这个属性的值来达到这个目的,将多个应用startStopThreads的值设为不同即可。

6、  Entropy Source

Tomcat 7+严重依赖SecureRandom这个类为它的session id或其它地方取得随机数值,这取决于你的JRE,它有可能在tomcat启动时造成非常大的耗时,比如,在子猴启动tomcat-7.0.26的时候,它耗时近25秒!

INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [24,790] milliseconds.

要解决这个问题,可以通过配置JRE使用非阻塞的Entropy Source,在bin/ catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。

加入后我再启动tomcat,整个启动下降到仅耗时Server startup in 912 ms。



标签:xml,tomcat,启动,jar,应用程序,耗时,加速
From: https://blog.51cto.com/u_15535797/6076064

相关文章

  • java web项目在linux部署、启动,查看系统配置常用的linux命令总结
    本文为博主原创,未经允许不得转载:      以下为在工作中常用的linux命令进行了总结,主要在项目安装及启动,及编辑部署文件时应用较多1.gz文件是一种压缩文件。以·ta......
  • Tomcat下webapps夹中root文件夹作用及如何发布项目至root文件夹中
    转载请注明出处:tomcat的root文件夹下面默认是tomcat的管理程序,但是如果你把自己的web项目发布到root下面的话,你可以不通过项目名直接访问你的项目,比如,你见了一个名......
  • SpringBoot集成Tomcat服务
    目录一、Tomcat集成1、依赖层级2、自动化配置二、Tomcat架构三、Tomcat配置1、基础配置2、属性配置类3、配置加载分析四、周期管理方法1、控制类2、核心方法五、参考源码......
  • tomcat7 与 tomcat8 加载 jar包的顺序
    本文为博主原创,转载请注明出处:最近在进行服务的环境升级,将服务的tomcat7升级到tomcat8;当把tomcat升级到tomcat8的时候,进行服务启动异常,报jar包冲突的异常,但......
  • vue2,nginx,redis,tomcat,Java的关系
    Java作为一种广泛应用的编程语言,在后端开发中扮演着重要的角色。Java后端开发不仅需要掌握Java语言的基本语法和相关技术,还需要熟悉一些其他的技术和工具,如Vue2、Nginx、Re......
  • 制作ubuntu启动U盘,并安装ubuntu
    四步:1.将U盘格式化,成NTFS格式2.打开ss,点击文件,找到我们下载的ubuntu镜像3.点击启动,写入磁盘映像4.点击写入 问题:我U盘容量很大,但是还是......
  • 安装过程:oracle RAC 19c,节点2的root.sh执行失败,节点2集群启动失败,报错:CRS-1705/C
    环境介绍:个人笔记本电脑,VMwareWorkstationPro工具软件在两节点添加SCSI共享磁盘,LinuxOS7.6x64,安装OracleRAC19.3c具体日志报错信息如下:2023/02/1620:09:1......
  • 分布式session之tomcat+redis
    实现原理:分布式系统将session存储到redis中,读取也从redis中读取。将实现包和依赖包commons-pool2-2.3.jar、jedis-2.7.2.jar、tomcat8_redis_session-0.0.1-SNAPSHOT.......
  • nginx 注册Linux 开机启动
    nginx注册Linux开机启动前提已经安装好了,nginx(查看之前的文章) cd  /usr/lib/systemd/system/[root@machine138keepalived]#cd/usr/lib/systemd/system/[r......
  • jenkins 升级后无法启动
    RunningwithJava8fromD:\jenkins\jre,whichisolderthantheminimumrequiredversion(Java11)意思是jdk版本太低,至少需要11 一下载并安装Jdk11https:/......