精华内容
下载资源
问答
  • tomcat高并发优化

    千次阅读 2017-03-01 19:56:51
    公司的运行websocket 的tomcat...方法:vim catalina.sh,在文件头添加 JAVA_OPTS=’-Xms2048m -Xmx2048m’2、设置tomcat为NIO方式,并增大线程数(默认BIO,线程数过多,无法支撑1000+个并发)。 方法:修改 Server.xm

    公司的运行websocket 的tomcat 需要支持1000+长连接,需要对此进行优化。经过半天得实验,优化点主要有三处。
    1、设置JVM堆内存。
    方法:vim catalina.sh,在文件头添加 JAVA_OPTS=’-Xms2048m -Xmx2048m’

    2、设置tomcat为NIO方式,并增大线程数(默认BIO,线程数过多,无法支撑1000+个并发)。
    方法:修改 Server.xml,在Connector后面添加
    protocol=”org.apache.coyote.http11.Http11NioProtocol” maxThreads=”500” acceptCount=”1100”

    3、修改linux最大文件句柄数
    方法:修改linux系统参数。vim /etc/security/limits.conf,添加
    * soft nofile 65536
    * hard nofile 65536

    结果:1000个并发后,Websocket服务正常。线程数300-400左右,消耗内存300-400M左右。

    展开全文
  • tomcat 高并发优化

    2014-05-08 22:13:26
    再者有时候系统默认的一些值不符合我们高并发的要求,我们也需要做下调整修改。。这样并发数才能上去。。  如修改 ulimit -n 65535   -n size:设置 内核 可以同时打开的 文件描述符 的最大值.单位:n  

     

    <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"
    maxThreads="15000"   minSpareThreads ="50"  acceptCount = "5000"
    />
    
    maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为200
    minSpareThreads 表示空闲的线程数,据我的理解,类似于连接池

    acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100


       另外,有时候,还需要调整jvm的启动参数。这里就不讲了。再者有时候系统默认的一些值不符合我们高并发的要求,我们也需要做下调整修改。。这样并发数才能上去。。

      如修改 ulimit -n 65535 

      -n size:设置内核可以同时打开的文件描述符的最大值.单位:n

     

    展开全文
  • springboot tomcat 高并发优化

    千次阅读 2020-10-10 09:49:21
    通过Tomcat配置改善SpringBoot项目并发线程数
    展开全文
  • Tomcat高并发配置优化

    2015-07-24 15:53:00
    Ubuntu10.04(x64)内存2G,cpu E5400 主频2.7.jdk1.6.0_27(x64) , tomcat6.0.33(x64) , oracle 10g测试一个条件分页查询,数据库响应时间在0.5秒左右。之前测试第秒100个并发查询,持续1小时,响应时间先是保持在9秒...

    用的JMeter在自己电脑上测试的。
    Ubuntu10.04(x64)内存2G,cpu E5400 主频2.7.
    jdk1.6.0_27(x64) , tomcat6.0.33(x64) , oracle 10g
    测试一个条件分页查询,数据库响应时间在0.5秒左右。
    之前测试第秒100个并发查询,持续1小时,响应时间先是保持在9秒左右,到后来越来越长。
    以这个配置测试时,200个并发,响应先是在4秒左右,之后越来越快,在1到2秒的时间内可以响应果。
    我的那项目并发最多也就100个,所以之后的就没有测试了,达标了就ok了。
    至于cpu和内存的消耗则没有记录下来,但是我的电脑还可以接受。客户那边是两个4核,64G内存,所以我也不用处理这个问题了。

     

    java 环境配置:

    export JAVA_OPTS="-server -Xms8g -Xmx8g -Xss128k -XX:ParallelGCThreads=20

    -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8

    -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31"

     

    sysctl.conf 的配置:
    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 = 327680
    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 650000
    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_recyle = 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

     

    tomcat 的SERVER.XML 配置:
    server.conf 配置

    <Connector port="8188" protocol="HTTP/1.1"
    maxThreads="30000"
    minSpareThreads="512"
    maxSpareThreads="2048"
    enableLookups="false"
    redirectPort="8443" acceptCount="35000"
    debug="0"
    connectionTimeout="40000"
    disableUploadTimeout="true"
    URIEncoding="UTF-8" />


    参数说明:
    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。
    maxProcessors - 最大连接线程数,即:并发处理的最大请求数,默认值为75。

     

    修改启动时内存参数
    window 下, 在catalina.bat 最前面:
    set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
    一定加在catalina.bat 最前面。
    linux 下,在catalina.sh 最前面增加:
    JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
    -Duser.timezone=Asia/Shanghai"
    注意:前后二者区别,有无set,有无双引号。

     

     

    <Connector port="8098" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   maxHttpHeaderSize="8192"
                   maxThreads="2000"
                   minSpareThreads="500"
                   acceptCount="2000"
                   enableLookups="false"
                   redirectPort="8443" />

    展开全文
  • tomcat高并发配置

    2017-02-21 16:21:00
    最近在项目中负责Tomcat高并发优化方案写一写新得。 优化1)tomcat默认的并发是75,可以启用线程池根据生产环境硬件设定线程池大小。  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" ...
  • tomcat高并发优化

    2013-03-25 16:21:29
    tomcat的server.xml配置文件说明:server.xml配置 &lt;Connectorport="8080"protocol="HTTP/1.1" maxThreads="30000" minSpareThreads="512" maxSpareThreads=...
  • tomcat配置文件server.xml中的<Connector … />配置中,和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessors:最大连接线程数,即:并发处理的最大...
  • 公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64) TOMCAT_HOME/bin/catalina.sh 添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:...
  • 高并发环境下,我知道优化配置tomcat,对连接数和线程池作修改,最重要的是connector的协议Http Connector使用NIO,而不是默认的AJP Connector,当时也没有仔细研究其原理。现在来为以上这些设置做一下剖析。 要了解...
  • Tomcat是一个轻量级的Web服务器。通常情况下,我们使用它运行Java代码。它也可以被称为Jsp、serlvet的容器。目前主流的有三个版本,Tomcat-7.0、Tomcat-8.5、Tomcat-9.0 。这里我们进行Tomcat-9.0版本的安装与调优。...
  • 4 Tomcat并发优化

    2019-05-05 22:58:03
    Tomcat并发优化 (1) tomcat并发参数 maxThreads:最大的并发请求数,当cpu利用率的时候,不宜增加线程的个数,当cpu利用率不,大部分是io阻塞类的操作时,可以适当增加该值。 maxSpareThreads:Tomcat连接器的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 577
精华内容 230
关键字:

tomcat高并发优化