zoukankan      html  css  js  c++  java
  • tomcat一些认识

    1. 软件体系结构:
        C/S:软件更新时需要客户端和服务器两端都进行更新,比较麻烦,但是安全比较好。
        B/S:只要编写服务器端程序就可以了,但是安全性较差。


    2.web资源:
         静态资源:html
         动态资源:jsp/servlet,动态资源要编译成静态资源,返回浏览器。


    3.web服务器:
          web服务器,接受客户端的请求,给予客户端响应。我们需要使用的是web服务器。web服务器和jsp/servlet容器,通常两者结合一体,统称web服务器。

           web服务器:
          tomcat:支持jsp/servlet,是apache的一款容器软件。
          resin:支持javaEE,应用越来越广
          weblogin:要钱的,支持javaEE

    4.Tomcat概述:
        开源、免费,对于开源软件,一般如果有src后缀,都是源码文件,随便看。tomcat有安装版和解压版。

        启动验证
        点击startup.bat启动窗口一闪即消失,检查JAVA_HOME环境变量配置是否正确。
             检查环境变量:javac,查看set java_home
     端口配置:
        conf下的server.conf配置文件
     work文件:
        tomcat生成的缓存文件,发到这个目录下
     部署:
       静态网站:
          1.在webapp下创建一个项目目录,不能有空格和中文
          2.在项目目录下创建一个html文件。
       url:http://ip:端口/项目目录/默认网页


      动态网站:
          1.在项目目录下创建WEB-INF目录,里面是web.xml
          2.创建静态或者动态页面
          3.对于大型项目,在WEB-INF里面还有lib和classes目录
          4.对应不想让浏览器访问的网页,可以放在WEB-INF里面去

      tomcat配置外部应用2种方式:
              第1种:在server.xml下host标签下增加<Context path="虚拟名称"  docBase="真实项目">
              第2种:在conf/atalanal/localhost/虚拟名称.xm的l中添加<Context docBase="真实项目">

    5.参数优化:

    参数分析:
    (1)、maxHttpHeaderSize=”8192”
      此选项用于配置:来自于客户端请求的Request和Response的HTTP header的最大长度,以字节计算。如果不设置,该属性为4096(4K)。

    (2)、maxThreads="512"
      Connector创建的请求处理线程的最大值,它决定了能够同时处理并发请求的最大值。如果不指定,该属性值为200。Tomcat的线程数量太多会导致切换过多,性能下降严重。这个数量应该是你单个机器的承载能力,压力测试下得出的结果。不可任意加大。一般情况下,256-512个已经非常高的数值了。


    (3)、minSpareThreads="100"

      tomcat初始化时创建的线程数,即最小工作线程数目。

    (4)、maxSpareThreads="300"

      tomcat所允许的最大线程数,一旦创建的线程超过这个数,Tomcat就将关闭不再需要的Socket线程。

    (5)、enableLookups="false"
      使用允许DNS查询,通常情况下设置为false。如果为true则tomcat会损耗一部分系统性能。

    (6)、redirectPort="8443"
      这里系统默认的,它指定转发端口,如果当前只支持non-SSL请求,在需要安全通信的场所,将把客户请求转发至SSL的redirectPort端口。

    (7)、acceptCount=“200”

      当所有请求处理线程都被占用时,允许接收请求队列的最大长度。当队列已满时,任何收到的请求都将被拒绝。缺省值为10。

    (8)、connectionTimeout="50000"

      Connector接收连接后,等待提供请求URI的时间,缺省值为60000(60秒)。

    (9)、disableUploadTimeout="true"

      该标志位表明当执行servlet时,是否允许servlet容器使用一个不同的、更长的连接超时。启用该标志位将导致在上传数据时,要么使用更长的时间完成上传,要么出现更长的超时。如果不指定,该属性为“false”。

    (10)、有时不光要优化tomcat,同时还需要更改Linux的一些系统参数。如果WEB服务器进行压力测试时报socket不足,则些可以对/etc/security/limits.conf进行相应修改:

    * soft nofile 57766

    * hard nofile 65535


    二、优化tomcat启动的初始内存设置($TOMCAT_HOME/bin/catalina.sh)


    JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xss128k -XX:+AggressiveOpts -XX:+UseParallelGC  -XX:+UseBiasedLocking"

    参数详解:

    (1)、-Xms2048M

    Java虚拟机初始化时使用的内存大小,为了减少tomcat频繁的申请内存,此参数应该和Xmx设置的参数一样大。

    (2)、-Xmx2048M

    JAVA虚拟机可以使用的最大内存,此参数的最大设置不允许超过物理内存的90%。

    (3)、-XX:+AggressiveOpts

      加快编译

    (4)、-Xss128k

    设置tomcat每增加一个线程(Thread)就会立即消耗128K内存,最佳值应该是128,默认值是512K。建议256K大小,这个对性能影响较大,需要多次测试。减少这个值可以增加一个进程内的线程数量。

    (5)、-XX:+UseParallelGC

    一些测试表明当非64位系统,并且非高性能服务器时,这个选项会造成垃圾回收变慢。(此选项决定对垃圾回收是否采用多线程)

    (6)、-XX:+UseBiasedLocking"

     非竞争性的同步选项,锁机制的性能改善。

    (7)、-XX:PermSize=256m

    最小堆大小,一般把内存不足时就是这个空间不足。默认为物理内存的1/4。

    (8)、-XX:+DisableExplicitGC

      禁止System.gc(),免得程序员误调用gc方法影响性能。


    下面给出见意设置:

    内存:JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking"

    连接数:<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

      maxHttpHeaderSize="8192"
      minProcessors="100"
      maxProcessors="5000"
      maxThreads="5000"
      minSpareThreads="1000"、
      maxSpareThreads="4000"
      enableLookups="false"
      acceptCount="3500"
      disableUploadTimeout="true"
      connectionTimeout="20000"
      debug="0"
      redirectPort="8443" />

    maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;
    minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;
    maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭(应该有个超时时间吧,超时后关闭)不再需要的socket线程;
    所以maxThreads决定了tomcat的最大线程阀值,需要设置的大一些

  • 相关阅读:
    eclipse
    ORA00904:标识符无效,preparedstatement
    mysql 创建用户
    web 默认servlet
    https tomat
    gzip
    sftp 上传文件
    jquery dwrutil confilit
    xmlbeans读写xml文件
    敏捷开发“松结对编程”实践大型团队篇
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/13555604.html
Copyright © 2011-2022 走看看