• tomcat优化


    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或其它地方取得随机数值,它有可能在tomcat启动时造成非常大的耗时,比如耗时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

    一个有关能够创建线程的最大个数的估算公式:
    (MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads
    对于jdk1.5而言,假设操作系统保留120M内存:
    1.5GB JVM: (2GB-1.5Gb-120MB)/(1MB) = ~380 threads
    1.0GB JVM: (2GB-1.0Gb-120MB)/(1MB) = ~880 threads

  • 相关阅读:
    Vue+Electron打包桌面应用(从零到一完整教程)
    1-十四烷基-3-甲基咪唑六氟磷酸盐([C14MIm][PF6])修饰纳米SiO2二氧化硅(mg级瓶装)
    准备pmp考试第12天
    网络安全(黑客)自学
    DataX和dataX-web 集群部署及使用
    【JavaSE】类和对象——上
    【svn使用教程】
    05 doris 集群搭建
    商城|商城小程序|基于微信小程序的智慧商城系统设计与实现(源码+数据库+文档)
    【Spring AOP】统一处理过程 代码实现
  • 原文地址:https://blog.csdn.net/ice666_1/article/details/127097978