• tomcat优化


    一.Tomcat内存优化

    Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。

    JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -XX:PermSize=512M -XX:MaxNewSize=512m -XX:MaxPermSize=1024m"

    JAVA_OPTS参数说明:
      -server 启用jdk 的 server 版;
      -Xms java虚拟机初始化时的最小内存;
      -Xmx java虚拟机可使用的最大内存;
      -XX: PermSize 内存永久保留区域
      -XX:MaxPermSize 内存最大永久保留区域

    二.Tomcat并发优化

        <Connector port="80" 
               protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" 
                   acceptCount="1000"
                   minProcessors="100"
                   maxProcessors="1000"
                   minSpareThreads="100"
                   maxSpareThreads="1000"
                   URIEncoding="utf-8"
                   disableUploadTimeout="ture" 
                   maxThreads="1000" />

    参数说明:
    connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
    keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒。
    maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
    maxHttpHeaderSize - http 请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
    URIEncoding - 指定Tomcat 容器的URL 编码格式。
    acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。
    disableUploadTimeout - 上传时是否使用超时机制
    enableLookups - 是否反查域名,取值为:true 或false。为了提高处理能力,应设置为false
    bufferSize - defines the size (in bytes) of the buffer to be provided for input
    streams created by this connector. By default, buffers of 2048 bytes are provided.
    maxSpareThreads - 最大空闲连接数,一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的socket 线程The default value is 50.
    maxThreads - 最多同时处理的连接数,Tomcat 使用线程来处理接收的每个请求。这个值表示Tomcat 可创建的最大的线程数。

    minSpareThreads - 最小空闲线程数,Tomcat 初始化时创建的线程数.
    minProcessors - 最小空闲连接线程数,用于提高系统处理性能,默认值为10。

    三.系统内核参数

    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_max_tw_buckets = 180000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.ipv4.tcp_max_syn_backlog = 65536
    net.core.netdev_max_backlog = 32768
    net.core.somaxconn = 32768
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_tw_recycle = 1
    #net.ipv4.tcp_tw_len = 1
    net.ipv4.ip_local_port_range = 1024 65000
    net.ipv4.tcp_keepalive_time = 5
    net.ipv4.tcp_keepalive_probes=2
    net.ipv4.tcp_keepalive_intvl=2
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_max_syn_backlog=8192
    net.ipv4.tcp_no_metrics_save = 0
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_max_orphans = 3276800
    fs.file-max = 9553600
    #net.ipv4.netfilter.ip_conntrack_max = 655360
    #net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 60
    net.ipv4.tcp_max_tw_buckets = 60000
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    ulimit -n 10240

    vim /etc/security/limits.conf 

    * - nofile 1006154
  • 相关阅读:
    rabbitmq使用
    redis
    IO模型与IO复用介绍
    事件驱动与异步IO使用
    协程
    进程
    线程、锁
    paramiko模块与 StringIO模块
    socketserver 编程
    随记
  • 原文地址:https://www.cnblogs.com/vijayfly/p/6639398.html
Copyright © 2020-2023  润新知