tomcat 并发优化

tomcat并发线程数能达到多少? 需要如何优化?

优化方法

一、优化tomcat中的配置(包括tomcat APR(Apache Portable Runtime)优化-性能比纯java的强);

二、使用linux系统 : 64位的CPU + 64位的Linux操作系统,再配上64位的JDK,齐活了, 那性能真不是盖的!

备注: Tomcat本身一般不会成为瓶颈,应用或DB操作,这些才是重点

用windows的话,著名的MaxUserPort和TcpTimedWaitDelay得先调,不然没法对比,就这个性能也不是特别高。

在linux上的默认配置,1K并发可以很轻松的完成。

测试脚本:

1、第一步: 优化配置tomcat

 (1)server.xml:
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="2000" minSpareThreads="1000"/>
   

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="2000"
               redirectPort="8443"  enableLookups="false"
      acceptCount="5000" maxThreads="2000"/>

(2)catalina.bat:

    set JAVA_OPTS=-Xms1400m -Xmx1400m -Djava.awt.headless=true

2、第二步:写个index.jsp(除了下面这些代码,还有200行html代码,没有一个图片)

<%
for(int i=0;i<1000;i++){
   request.setAttribute("key_"+i,"value_"+i);    
}


for(int i=0;i<100;i++){
   request.getSession().setAttribute("key_"+i,"value_"+i);    
}
%>
<br />
<%=request.getSession().getAttribute("key_0")%>
<%=request.getSession().getAttribute("key_0")%>
<%=request.getSession().getAttribute("key_0")%>
<%=request.getSession().getAttribute("key_0")%>
<%=request.getSession().getAttribute("key_0")%>
<%=request.getSession().getAttribute("key_0")%>

3、第三步:启动tomcat,使用apache ab命令进行并发测试:

      D:\Apache2.2\bin>ab -n 10000 -c 1000 http://127.0.0.1/index.jsp   

ab命令会显示测试出的结果,这样就可以测试出tomcat的并发能力。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis的各种数据类型实践-ZSet

    我们都知道微博热点,新闻热榜,投票排行榜等都有一个排名的概念,如下图百度热榜,展示的是实时的点击量比较高的新闻(假设这些新闻的ID为1001-1010),每个新...

    用户4464623
  • Redis的各种数据类型实践-Set

    Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis 中集合是通过哈希表实现的,所以添...

    用户4464623
  • Redis的各种数据类型实践--String字符串

    Redis作为一款NoSQL内存数据库,其丰富的数据类型、简单易用的命令、单机可达10万的高并发(官方数据),从面世以来就深受广大用户的喜爱。Redis的五种数...

    用户4464623
  • nginx+tomcat负载均衡配置

    前几天,我们讲过了【互联网常见架构模式 之 nginx负载均衡】(忘记的童鞋,点击上面链接或者输入关键词:nginx\负载均衡,即可重新阅读),...

    码神联盟
  • SpringBoot之Https

    前言:Springboot因为是内置一个tomcat,在需要安全性的情况下需要配置ssl访问。

    王念博客
  • 利用split工具解决一次MongoDB日志异常问题

    mongodb的日志正常应该为:ASCII text, with very long lines,但是现在却变成了PCX ver. 2.5 image data...

    Criss@陈磊
  • 搭建K8S集群之node节点部署

    在上一篇文章中,我们完成了K8S系列之K8S集群之Master节点部署,在这篇文章中,我们将开始部署Node节点相关的组件。在node节点上,需要部署kubel...

    后场技术
  • Python|用python解决阶乘问题

    阶乘是我们在很多的数学问题中会遇到的,但是如果我们需要一个很大的数的阶乘,那么自己算起来就会很麻烦,那么我们就能用python来解决这个问题。让阶乘编程一个简单...

    算法与编程之美
  • Spark DataFrame isin方法使用

    查询DataFrame某列在某些值里面的内容,等于SQL IN ,如 where year in(‘2017’,’2018’)

    董可伦
  • Centos7 下 Openresty 从安装到入门

    根据官网的描述提供了不同的安装方式,例如:使用yum安装、源码编译安装等等。我目前暂时使用yum安装方式进行部署看看。

    Devops海洋的渔夫

扫码关注云+社区

领取腾讯云代金券