tomcat7.0性能优化-挑战极限完整版

JMeter与Sentinel实战:秒杀系统性能压测与精准限流方案 在高并发系统架构中,性能测试与流量控制是保障服务稳定性的核心技术。性能测试通过模拟真实用户负载,精准定位系统瓶颈,如数据库连接池耗尽、缓存响应延迟或线程池满等典型问题。其技术价值在于将性能问题从定性猜测转变为定量分析,为容量规划与优化提供数据支撑。流量控制则基于实时监控与动态规则,对超出系统处理能力的请求进行限制或降级,防止级联故障,确保核心业务可用。在电商秒杀、大促活动等高并发场景下,结合JMeter进行阶梯式压力测试,并利用Sentinel配置QPS限流与热点参数限流,可构建从问题发现到防护实施的完整闭 阅读详情
0 测试结果 
参考精简版的空跑测试结论 
http://phl.iteye.com/blog/1868206 

1 tomcat 
1.1 tomcat运行模式 
Connector/protocol 
org.apache.coyote.http11.Http11Protocol - blocking Java connector 
org.apache.coyote.http11.Http11NioProtocol - non blocking Java connector 
org.apache.coyote.http11.Http11AprProtocol - the APR/native connector. 

                       Java Blocking Connector   Java Non Blocking Connector   APR/native Connector 
                                 BIO                         NIO                       APR 
    Classname              Http11Protocol             Http11NioProtocol         Http11AprProtocol 
    Tomcat Version           3.x onwards                 6.x onwards              5.5.x onwards 
    Support Polling              NO                          YES                       YES 
    Polling Size                 N/A                   maxConnections             maxConnections 
    Read HTTP Request         Blocking                  Non Blocking                 Blocking 
    Read HTTP Body            Blocking                  Sim Blocking                 Blocking 
    Write HTTP Response       Blocking                  Sim Blocking                 Blocking 
    Wait for next Request     Blocking                  Non Blocking               Non Blocking 
    SSL Support               Java SSL                    Java SSL                   OpenSSL 
    SSL Handshake             Blocking                  Non blocking                 Blocking 
    Max Connections        maxConnections              maxConnections             maxConnections 

1.2 APR与tomcat-native安装 
到http://apr.apache.org/下载下面3个包 

apr-1.4.6.tar.gz 
apr-iconv-1.2.1.tar.gz 
apr-util-1.5.1.tar.gz 

1.安装apr 
./configure --prefix=/application/search/usr/apr/apr-1.4.6 
make -j16 
make install -j16 

2.安装apr-iconv 
./configure --prefix=/application/search/usr/apr-iconv/apr-iconv-1.2.1 --with-apr=/application/search/usr/apr/default 
make -j16 
make install -j16 

3.安装apr-util 
./configure --prefix=/application/search/usr/apr-util/apr-util-1.5.1 --with-apr=/application/search/usr/apr/default --with-apr-iconv=/application/search/usr/apr-iconv/default/bin/apriconv 
make -j16 
make install -j16 

4安装tomcat-native 
在tomcat目录下,找到bin/tomcat-native-1.1.24-src 
./configure --with-apr=/application/search/usr/apr/default --with-java-home=/application/search/usr/java/default 
make -j16 
make install -j16 

配置环境变量 
vi ~/.bashrc 
export LD_LIBRARY_PATH=/application/search/usr/apr/default/lib:/application/search/usr/tomcat-native/default/lib 
使环境变量生效 
source ~/.bashrc 
附加阅读 

---------------------------------------------------------------------- 
Libraries have been installed in: 
/application/search/usr/tomcat-native/tomcat-native-1.1.24/lib 

If you ever happen to want to link against installed libraries 
in a given directory, LIBDIR, you must either use libtool, and 
specify the full pathname of the library, or use the `-LLIBDIR' 
flag during linking and do at least one of the following: 
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable 
during execution 
- add LIBDIR to the `LD_RUN_PATH' environment variable 
during linking 
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag 
- have your system administrator add LIBDIR to `/etc/ld.so.conf' 

See any operating system documentation about shared libraries for 
more information, such as the ld(1) and ld.so(8) manual pages. 
---------------------------------------------------------------------- 

1.3 优化配置 
官方参考文档 http://tomcat.apache.org/tomcat-7.0-doc/config/http.html 
为了提高安全性,一般情况下屏蔽 AJP 
注释或者删除server.xml中的 Connector节点 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

启用NIO或者APR模式运行 
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为 
<Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol"   (或者Http11AprProtocol) 
connectionTimeout="20000" 
URIEncoding="UTF-8" 
useBodyEncodingForURI="true" 
enableLookups="false"  (是否反查域名) 
redirectPort="8443" /> 

根据经验,调整nio的线程池,参考http://tomcat.apache.org/tomcat-7.0-doc/config/http.html 

线程池参数,需要直接在connector节点配置。 
  <Connector port="8080" 
               protocol="org.apache.coyote.http11.Http11NioProtocol"  
               connectionTimeout="20000" 
               URIEncoding="UTF-8" 
               useBodyEncodingForURI="true" 
               maxThreads="768" 
               minSpareThreads="64" 
               enableLookups="false" 
               redirectPort="8443" /> 

调整内存 
JAVA_OPTS="-Xms1024m -Xmx1024" 

启用APR 
Apr要自己安装 
<Connector port="8081" 
               executor="tomcatThreadPool" 
               protocol="org.apache.coyote.http11.Http11AprProtocol" 
               connectionTimeout="20000" 
               URIEncoding="UTF-8" 
               useBodyEncodingForURI="true" 
               enableLookups="false" 
               redirectPort="8444" /> 

调整线程池 
<Connector port="8081" 
               executor="tomcatThreadPool" 
               protocol="org.apache.coyote.http11.Http11AprProtocol" 
               connectionTimeout="20000" 
               URIEncoding="UTF-8" 
               useBodyEncodingForURI="true" 
               enableLookups="false" 
               redirectPort="8444" /> 

<Executor name="tomcatThreadPool" 
namePrefix="catalina-exec-" 
maxThreads="1024" 
minSpareThreads="512" 
prestartminSpareThreads="true" /> 

注意:线程池设置在apr,nio模式下不生效(个人估计是个bug),查看manager页面,线程数还是200。因此需要将maxThreads,minSpareThreads直接设置在connector节点下 


2 经验总结 
首先要掌握未优化之前,服务器性能现状; 
设置虚拟机内存,性能提升明显; 
设置tomcat运行模式略微有提高; 
设置tomcat线程池,一般设置的比较大以免成为瓶颈; 
逐步递增的性能调试计划,从较少请求数,较低并发开始逐步递增。直到性能明显下降位置; 
以吞吐率、并发、响应时间等为关键性能指标; 
区分裸奔性能和分布式调用的性能; 
尽量覆盖全部代码运行,服务启动要为性能测试做特殊处理(callId,timeStamp); 
做AB压力测试,可以编写个shell夜间运行并将结果重定向; 

3 widget的压力测试技术 
224网段有防火墙设置,所以先前的压力测试不够准确 
之后采取了搬迁物理服务器到防火墙外面 
做了相关的压力测试 
优化点如下: 
1 动态、静态分离部署 
2 将widget从2台扩充到8台物理服务器 
3 单台物理服务器,配置1台tomcat占用全部服务器资源性能  <  配置8台tomcat占用全部服务器资源性能,大概差4-5倍 

Linux命令查看CPU 
more /proc/cpuinfo 

主要查看物理cpu数,线程数 
processor      逻辑处理器的id。 
physical id    物理封装的处理器的id。 
core id        每个核心的id。 
cpu cores      位于相同物理封装的处理器中的内核数量。 
siblings       位于相同物理封装的处理器中的逻辑处理器的数量。 

 

 

Apache-Bench工具介绍 
Apache HTTP服务器已经带了一个测试工具: ab 

一般把apache压力测试称为AB测试. ab工具的位置在apache2的bin目录里为什么用这个工具 

l  支持命令行执行,可以在linux行运行 
l  简单,实用 
l  应用广泛 

1.1.1    输入参数 
常用的命令如下: 
./ab -n 请求次数 -c 并发数 地址 

参数名 参数含义 
-n 请求数 
-c 并发数 

windows下,地址要用双引号 
linux下,地址用单引号 

1.1.2    输出报表 
字段名字 中文解释 
Server Software 被测试的Web服务器软件名称 
Server Hostname 请求的URL中的主机部分名称 
Server Port 被测试的WEB服务器的监听端口 
Document Path URL中的相对路径 
Document Length http响应数据的正文长度 
Concurrency Level 并发用户数(-c) 
Time taken for tests 所有请求被处理完所花费的总时间 
Complete requests 总请求数(-n) 
Failed requests 失败请求数 
Total transferred 所有请求的响应数据长度和,包括头和正文 
HTML transferred 所有请求的响应数据中,正文数据的和 
Requests per second 吞吐率 
Time per request 用户平均请求等待时间 = time taken for tests / (complete requests / concurrency level) 
Time per request: 服务器平均请求处理时间 = 吞吐率的倒数 = time per request / concurrency level 
Transfer rate 请求在单位时间内,从服务器获的数据长度 
Percentage of the requests served within a certain time (ms) 请求处理时间的分布情况 

参考资料 
http://www.cnblogs.com/jackei/archive/2006/07/18/454144.html  apache-ab 
http://wenku.baidu.com/view/3fe17e1bc5da50e2524d7fb9.html apache-ab 
http://phl.iteye.com/blog/910984  apr安装 
http://phl.iteye.com/blog/910996  tomcat运行模式 
http://phl.iteye.com/admin/blogs/1561604 proc/cpuinfo的概念 
http://tomcat.apache.org/tomcat-7.0-doc/config/executor.html  tomcat线程池配置 
http://tomcat.apache.org/tomcat-7.0-doc/config/http.html  tomcat protocol 
http://city-moon.iteye.com/blog/578282  Tomcat 6 支持 NIO -- Tomcat的四种基于HTTP协议的Connector性能比较
tomcat7 优化 性能调优 tomcat7 优化 性能调优,优化tomcat的配置,修改启动模式,开启并且使用线程池,JVM优化,图文说明 立即下载

相关推荐

tomcat7.0性能优化-挑战极限精简版

NULL 博文链接:https://phl.iteye.com/blog/1868206

Tomcat7优化

目录 1、目的 2、服务资源配置 3、优化配置 3.1配置 tomcat管理员账户 3.2 Tomcat的3种运行模式 3.2.1 启动NIO模式 3.3.1开启并且使用 3.3.2 参数说明 3.3.3 最佳实践 3.4 连接器(Connector) 3.4.1 通用属性 3.4.4 最佳实践 5 JVM参数的优化 ​​​​​​​5.1JVM内存模型 5.2 JVM参数 5.3 在tomcat中设置jvm参数 5.3.1 windows 5.3.2 L...

xinyi_java的博客 1182

tomcat性能优化方式简单整理

Tomcat本身优化 Tomcat内存优化 启动时告诉JVM我要一块大内存(调优内存是最直接的方式) 我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数 JAVA_OPTS参数说明 server 启用jdk 的 server 版 Xms java虚拟机初始化时的最小内存 Xmx java虚拟机可使用的最大内存 XX: PermSize 内存永久保留区域 XX:MaxPermSize 内存最大永久保留区域 配置示例: JAVA_OPTS=’-Xms

tomcat7 性能优化

1.  目的 通过优化tomcat提高网站的并发能力。当我们今天我们将这个优化讲完之前  优化完成后看能达到什么层次。     2.  服务器资源 服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。硬件我们不说了 这个方面是钱越多越好是吧。 3.  优化配置 3.1. 配置tomcat管理员账户 在conf/ tomcat-users.xml下添加用户:

横纲 3万+

OrthoFinder功能、流程和文件注释

OrthoFinder 的标准输出包括:直系同源组,直系同源基因,有根基因树,解析基因树,无根物种树、有根物种树,基因重复事件以及相关的统计数据。

hs6605015的博客 3047

Spec-Kit实战:用‘规范驱动开发’重构一个老旧Node.js项目(避坑指南)

本文详细介绍了如何使用Spec-Kit工具通过‘规范驱动开发’(SDD)重构老旧Node.js项目。从逆向工程提取规范到增量改造策略,再到避免典型陷阱,提供了实战指南和避坑技巧,帮助开发者高效实现架构现代化,显著提升代码质量和维护效率。

weixin_42525582的博客 555

Tomcat 7 性能优化

Young区被划分为三部分,Eden区和两个大小严格相同的Survivor区,其中,Survivor区间中,某一时刻只有其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在Eden区间变满的时候, GC就会将存活的对象移到空闲的Survivor区间中,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移动到Tenured区间。如果使用Servlet 3.0的异步处理,一个好的默认是使用maxThreads和最大预期的并发请求(同步和异步)的最大值中的较大值。

minmax329的博客 684

Curve+ 5.0.2:新一代色彩校准工具如何革新印刷行业标准

Curve+ 5.0.2作为新一代色彩校准工具,通过G7+校准算法和SCTV技术革新了印刷行业的色彩管理标准。该工具显著提升色彩精准度,减少打样时间和材料浪费,支持专色处理,实现跨材质色彩一致性,为印刷企业带来效率与质量的全面提升。

weixin_29228781的博客 529

tomcat7性能优化

一、tomcat的优化主要体现在两方面:内存、并发连接数。   1、内存优化: 优化内存,主要是在bin/catalina.bat/sh 配置文件中进行。linux上,在catalina.sh中添加: JAVA_OPTS="-server-Xms4096m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=256m-XX:MaxPermSize=256m

赶路人儿 1571

【Android 教程系列第 30 篇】为什么要为 App 应用加固 ?如何为 App 应用加固 ?

一:为什么要为 App 应用加固 ? 二:如何为 App 应用加固 ? 三:加固后为什么要重新签名 ?

“Allen Su”的博客 7053

Raspberry Pi 4B 蓝牙串口(SPP)配置与使用

Linux、Android、Windows 等操作系统带有在引导期间启动的蓝牙守护进程/蓝牙服务。 对于与监视器连接并使用 GUI(如 GTK 等)运行的设备,只需多次单击即可轻松启用并连接到附近的设备。 但是在无头设备的情况下,我们必须依赖于需要在命令行上运行的不同命令。 这篇博客我们将讨论如何在无头树莓派上通过蓝牙设备连接附近。

视觉与物联智能 2745

Tomcat高并发环境下性能调优与高效部署实战技巧

在内存管理方面,通过jvmRoute配置路由标识,配合分布式Session存储方案,可在保持状态同步的同时减少内存占用,实测可降低30%-40%的Heap使用率。在实战案例中,某电商平台在采用上述优化策略后,Tomcat服务在HPL负载测试中实现每秒12万请求处理能力,内存泄漏发生率降低至0.3次/月,响应时间P99从800ms优化至80ms,系统可用性达到99.995%。关键技术点在于将理论配置与真实业务场景结合,通过持续的性能分析和渐进式优化,在保证兼容性的同时实现性能突破。四、性能监控与自动优化。

VYiwXWsb的博客 406

【uniapp踩坑记】App Store上传失败:Invalid Swift Support错误怎么解决?

作为一个前端出身的开发者,用 uniapp 开发原生 App 已经够挑战了,打包 iOS 上传 App Store 更是处处暗雷。这次的坑虽然小,但确实容易忽略。如果你也遇到了类似的报错,希望这篇文章能帮你少踩一次坑!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1143

《万用引擎深度解密Tomcat高并发场景下的智能负载与性能突破》

在分布式系统与微服务架构蓬勃发展的当下,Apache Tomcat作为轻量级Web容器的标杆,其在金融、电商等领域的高并发场景应用面临严峻挑战。通过改造 CoyoteAdapter 的Session处理流程,设计Segmented Storage Scheme,将Session数据划分Key/Value存储段,与主堆隔离。面对Service Mesh架构的兴起,未来需将Tomcat定制改造为轻量化Sidecar模式,探索解耦式认证服务与弹性计算层的无缝衔接路径。

nYeuvMcs的博客 278

物联网竞赛单片机应用开发-项目汇总

物联网竞赛单片机应用开发-项目汇总

a6662580的博客 9003

2026年软件测试职业院校技能大赛—ERP管理平台-采购入库模块Bug定位与查找

竞赛对接软件测试相关标准,以“ERP管理平台” 为被测系统,围绕软件测试领域的主流技术及工具,考查选手面 对实际问题的综合分析能力,对测试文档、测试用例的设计能力, 对单元测试、自动化测试、性能测试、接口测试等测试工具及方 法的掌握程度,检验选手团队协作能力、组织规划能力、方法运用能力等。

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 195

系统性能压测实战:从概念到工程实践的全流程解析

性能测试是软件工程中确保系统稳定性和可靠性的关键环节,其核心在于模拟真实负载以评估系统行为。从原理上看,它通过模拟并发用户、设计请求场景来探测系统的吞吐量、响应时间和资源利用率边界。在技术价值层面,有效的性能测试能提前暴露瓶颈,避免线上故障,是构建高可用架构的基石。常见的应用场景包括电商大促、秒杀活动等高并发业务。本文以压力测试为例,深入探讨如何设计科学的压测方案,并利用JMeter等工具进行实战,同时结合监控系统进行瓶颈定位与优化,最终帮助团队建立性能工程文化。

weixin_34221775的博客 380

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

模型上线后崩溃的7种死法与工程化解法

机器学习模型部署不是简单的文件拷贝,而是从算法验证迈向系统可靠性的关键跃迁。其核心挑战在于生产环境的不确定性——网络延迟、数据漂移、并发冲突、版本不兼容等,都会导致静默失败或服务雪崩。真正的ML工程瓶颈不在建模层,而在集成、可观测、治理与容错能力。本文聚焦特征服务熔断、Schema强校验、分布式状态一致性、ONNX跨语言序列化、K8s资源隔离、灰度发布机制及Fallback可观测性等实战要点,覆盖金融风控、电商推荐等高要求场景,为构建具备SLA保障、可审计、可降级的生产级模型服务提供可复用的技术路径。

turnRound 467

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

机器学习生产化:从模型部署到系统契约的实战指南

机器学习在生产环境中并非单纯运行模型,而是构建可信赖的决策系统。其核心在于将算法逻辑转化为明确的系统契约——涵盖输入输出规范、性能SLA、降级策略与可观测性设计。真实场景中,特征管道断裂、服务超时、数据漂移等非模型问题导致故障占比超70%,凸显系统集成与鲁棒性验证的关键价值。本文聚焦MLOps工程实践,融合XGBoost模型落地、特征服务稳定性、无标签监控、压力测试矩阵等关键技术点,面向已具备建模能力的数据科学家与MLOps工程师,提供金融级高可用ML系统的构建方法论。

abxlep7702的博客 448

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

游戏自动化脚本部署与测试全指南:从环境搭建到性能验证

游戏自动化技术通过脚本或AI代理模拟玩家操作,其核心原理在于将复杂的交互逻辑转化为可编程的指令序列,实现高精度、高一致性的任务执行。这项技术的价值在于突破人力操作极限,为游戏研究、自动化测试和内容创作提供可复现的技术方案。在应用场景上,它广泛适用于单机游戏的速通分析、回归测试以及高难度关卡的技术破解。本文聚焦于一个具体的高难度游戏片段自动化项目,详细阐述了如何从零开始部署此类工具,涵盖环境准备、硬件要求、脚本配置等关键环节,并通过一套标准化的测试流程验证其核心功能与性能表现,为开发者提供从概念到实践的完整工

weixin_34023982的博客 391

【课程设计】springboot易购校园二手交易平台-计算机毕业设计源码82776

用户模块:1.用户注册和登录功能2.用户信息管理,包括个人资料、联系方式、收货地址等。商品模块:1.商品发布功能,让卖家可以方便地发布二手商品信息。2.商品编辑和删除功能,卖家可以随时修改商品信息或下架商品。3.商品分类和标签管理,方便用户查找和筛选商品。交易模块:1.购物车功能,用户可以将心仪的商品加入购物车,方便统一结算。2.订单生成和管理功能,记录用户的交易订单信息,包括订单状态、支付方式、物流信息等。3.支付功能,支持多种支付方式(如支付宝、微信支付、银行卡支付等),确保交易的安全和便捷。消息模块:

Biye_Design的博客 1922
上一篇: 设置Tomcat的JAVA_OPTS参数
下一篇: java 上传文件到七牛云存储的demo
琅琊山二当家
博客等级 码龄18年 447粉丝 322原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值