调整2-调整配置,数据库连接池数量
mysql默认最大连接数是100
关闭程序和mysqld
修改mysql配置文件/etc/my.cnf
在[mysqld]下增加
max_connections=400 |
修改项目中jdbc.c3p0.properties配置文件,将127.0.0.1改成localhost,不受网卡限制.mysql对localhost也做了相应的处理措施-(http://wenku.baidu.com/link?url=Ju_Ap7u8hOkPSPXgAWAGMnyWN7JwBeU4HUOvWma-OnOCYD89LpJkCmZWXKJmnfgKkq_gW38U83wXGQOxFYbKAEmiayClqSilX3KZxDFVGZq)
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/story?useUnicode=true&characterEncoding=UTF-8 jdbc.miniPoolSize=100 jdbc.maxPoolSize=380 jdbc.initialPoolSize=100 jdbc.maxIdleTime = 120000 jdbc.acquireIncrement=20 jdbc.acquireRetryAttempts = 45 jdbc.acquireRetryDelay=120000 jdbc.testConnectionOnCheckin = true jdbc.automaticTestTable = test jdbc.idleConnectionTestPeriod = 30000 jdbc.checkoutTimeout=65000
先行发起1200并发尝试,成功率,略有好转
走势图
吞吐量报告
将参数略加修改,再次尝试
my.cnf
max_connections=600
程序连接池
jdbc.miniPoolSize=200 jdbc.maxPoolSize=580 jdbc.initialPoolSize=200 jdbc.maxIdleTime = 120000 jdbc.acquireIncrement=38 jdbc.acquireRetryAttempts = 50
预热后,压1200并发
走势图
报告
虽然吞吐量上升了,但是错误率也在上升。Top查看,看多时候操作系统在wait消耗比重比较大。
调整3-日志的输出配置
使用iostat工具查看io负载率
iostat -x -d 3
再压,发现iostat的util%占用率较高。
将项目日志级别配置文件调整
## LOGGERS ## #define a logger #log4j.rootLogger=DEBUG,console,file log4j.rootLogger=ERROR,console,file log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=../logs/story_log.log log4j.appender.file.MaxFileSize=1504800KB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.BufferedIO=true log4j.appender.A3.BufferSize=100960
1200并发测试,iostat探测结果,util%虽然有所下降,可是压力结果并未改善,看来不是写日志造成的IO瓶颈。异常反映出依然是http连接超时
继续调大mysql的连接池数量,使其到达1500。调整程序的连接池,使其到达1200,(剩余的连接用于mysql监控workbench使用)。
创建的池对象(数据库线程池、程序连接池)差不多已到该机器极限。
调整4-Tomcat连接方式
将Tomcat的连接方式由默认的BIO改为linux下的NIO(epoll)。
server.xml,并且调大连接超时时间
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="45000" redirectPort="8443"/>
再修改catalina.sh的内容头加上oracle jdk在linux平台对epoll实现支持
CATALINA_OPTS='-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider'
依然以1200并发开始作为基数测试。
预热稳定后走势图
报告
TPS维持在22~25之间。
观察top情况,us%占用较大,怀疑tomcat的JVM或者是Java代码遇到了瓶颈。
记录:第15页,调整5-Tomcat的启动JVM参数之前
相关推荐
- **负载均衡**:将请求分发到多个服务器,防止单点过载。 - **分布式计算**:利用多台机器协同工作,提升整体处理能力。 7. **缓存策略**: - **本地缓存**:在应用层面缓存常用数据,减少数据库访问。 - **...
在性能调优中,我们需要考虑以下几点: 1. 年轻代和老年代的大小配置:通过`-Xms`和`-Xmx`设定堆大小,`-XX:NewRatio`设定新生代和老年代的比例,`-XX:SurvivorRatio`设定Eden和Survivor区的比例。 2. CMS的并发级别...
### 系统调优性能测试报告关键知识点解析 #### 一、报告背景及目的 - **文档目的**:本报告旨在总结系统调优性能测试的工作进展,并基于测试结果进行分析,判断当前调优措施是否达到了预期的目标。此外,报告还为...
- 调整系统架构,如采用负载均衡策略分散压力,避免单点过载。 - 代码优化,减少不必要的计算和内存占用,提高程序运行效率。 - 数据库优化,例如索引调整、查询优化,以提高数据处理速度。 7. **结论** - TWMP...
以上就是关于"JAVA性能测试与调优案例"的一些核心知识点,这些内容可以帮助开发者深入理解如何优化JDK和Tomcat,以提升Java应用的性能和稳定性。实际操作中,应结合具体的应用场景和需求进行有针对性的调优,以实现...
- **JMeter**:开源性能测试工具,适合Web应用的压力测试。 - ** Gatling**:轻量级、高性能的负载测试框架,用于Web应用。 在实际测试过程中,还需要关注系统的稳定性、响应时间的分布、错误率等关键指标,以全面...
2. **测试环境**:在实际生产环境之前,在模拟真实负载的测试环境中进行充分的测试,确保各项调优措施的有效性。 3. **版本兼容性**:注意检查所使用的软件版本之间的兼容性问题,避免因版本不匹配而导致的问题。 #...
3. 考虑负载均衡策略,分散请求到多个服务器,减少单点压力。 4. 定期进行性能监控和压力测试,及时发现并解决潜在问题。 此次压力测试提供了宝贵的性能数据,为系统优化和性能调优提供了依据,确保CRM系统在高并发...
效率测试的常见手段包括基准测试、并发测试、递增测试、场景测试、极限测试、疲劳测试、吞吐量测试和数据存储容量测试,以及网络性能测试。基准测试用于获取单用户执行时的各项性能指标,为多用户并发和混合场景的...
- 压力测试:模拟大量并发用户,检查数据库的负载承受能力。 - 回归测试:在数据库更新后,确保原有的功能没有受到影响。 3. **测试工具**: - SQL查询:编写SQL语句来验证数据的存储和检索。 - 数据库管理工具...
2. **性能测试类型**:包括负载测试(模拟正常工作负载)、压力测试(超出正常工作负载)、耐久测试(长时间运行以检查稳定性)和容量测试(确定系统处理能力的极限)。 3. **性能指标**:了解关键性能指标,如响应...
pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX
1. 压力测试:模拟超过正常负载条件,检查系统的极限性能和稳定性。 2. 负载测试:逐渐增加负载,观察性能变化,确定系统处理能力的上限。 3. 稳定性测试:长时间运行系统,检查其能否在高负载下持续稳定工作。 六...
- **压力测试**:通过编写C#脚本来模拟大量用户的并发操作,评估系统的极限容量。 ### 3. C#中的具体技术应用 #### 3.1 单元测试示例 - **使用NUnit进行单元测试**: ```csharp using NUnit.Framework; [Test...
pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX
pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX
pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX