tomcat 并发优化
时间:2022-07-25
本文章向大家介绍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.2bin>ab -n 10000 -c 1000 http://127.0.0.1/index.jsp
ab命令会显示测试出的结果,这样就可以测试出tomcat的并发能力。
- Python文件夹与文件的操作
- ExpandableListView实现商品列表折叠
- Swift 3.0介绍
- IntelliJ IDEA 安装目录的核心文件讲解
- 详述 IntelliJ IDEA 的使用界面
- WCF系列教程之消息交换模式之请求与答复模式(Request/Reply)
- Koa-router源码解读
- WCF系列教程之初识WCF
- IntelliJ IDEA 缓存和索引的介绍及清理方法
- Node.js原理
- WCF系列教程之WCF消息交换模式之单项模式
- React Native调用Android相机图库
- IntelliJ IDEA 之 HelloWorld 项目创建及相关配置文件介绍
- 设置 IntelliJ IDEA 主题和字体的方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法