`
suhuanzheng7784877
  • 浏览: 702644 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47711
社区版块
存档分类
最新评论

单点网站压力测试调优-第3季

阅读更多

 

调整2-调整配置,数据库连接池数量

 

mysql默认最大连接数是100

 

关闭程序和mysqld

 

修改mysql配置文件/etc/my.cnf

 

[mysqld]下增加

 

max_connections=400

修改项目中jdbc.c3p0.properties配置文件,127.0.0.1改成localhost,不受网卡限制.mysqllocalhost也做了相应的处理措施-(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

 

 

再压,发现iostatutil%占用率较高。

将项目日志级别配置文件调整

 

 

 

## 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 jdklinux平台对epoll实现支持

 

 

 

CATALINA_OPTS='-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider'

 

 

依然以1200并发开始作为基数测试。

预热稳定后走势图



 报告



 

TPS维持在22~25之间。

观察top情况,us%占用较大,怀疑tomcatJVM或者是Java代码遇到了瓶颈。

 

记录:第15页,调整5-Tomcat的启动JVM参数之前

 

  • 大小: 18.5 KB
  • 大小: 10.6 KB
  • 大小: 19.8 KB
  • 大小: 10.9 KB
  • 大小: 36.6 KB
  • 大小: 20 KB
  • 大小: 9.9 KB
0
1
分享到:
评论

相关推荐

    性能测试调优分析.rar

    - **负载均衡**:将请求分发到多个服务器,防止单点过载。 - **分布式计算**:利用多台机器协同工作,提升整体处理能力。 7. **缓存策略**: - **本地缓存**:在应用层面缓存常用数据,减少数据库访问。 - **...

    jvm性能调优-垃圾收集器parnew&CMS底层三色标记算-performance-gc-parnew-cms.zip

    在性能调优中,我们需要考虑以下几点: 1. 年轻代和老年代的大小配置:通过`-Xms`和`-Xmx`设定堆大小,`-XX:NewRatio`设定新生代和老年代的比例,`-XX:SurvivorRatio`设定Eden和Survivor区的比例。 2. CMS的并发级别...

    系统调优性能测试报告.docx

    ### 系统调优性能测试报告关键知识点解析 #### 一、报告背景及目的 - **文档目的**:本报告旨在总结系统调优性能测试的工作进展,并基于测试结果进行分析,判断当前调优措施是否达到了预期的目标。此外,报告还为...

    TWMP系统压力测试报告

    - 调整系统架构,如采用负载均衡策略分散压力,避免单点过载。 - 代码优化,减少不必要的计算和内存占用,提高程序运行效率。 - 数据库优化,例如索引调整、查询优化,以提高数据处理速度。 7. **结论** - TWMP...

    JAVA性能测试与调优案例

    以上就是关于"JAVA性能测试与调优案例"的一些核心知识点,这些内容可以帮助开发者深入理解如何优化JDK和Tomcat,以提升Java应用的性能和稳定性。实际操作中,应结合具体的应用场景和需求进行有针对性的调优,以实现...

    [17个软件测试文档]-8性能测试经验总结

    - **JMeter**:开源性能测试工具,适合Web应用的压力测试。 - ** Gatling**:轻量级、高性能的负载测试框架,用于Web应用。 在实际测试过程中,还需要关注系统的稳定性、响应时间的分布、错误率等关键指标,以全面...

    Websphere portal tuning调优

    2. **测试环境**:在实际生产环境之前,在模拟真实负载的测试环境中进行充分的测试,确保各项调优措施的有效性。 3. **版本兼容性**:注意检查所使用的软件版本之间的兼容性问题,避免因版本不匹配而导致的问题。 #...

    《CRM接口》压力测试报告.docx

    3. 考虑负载均衡策略,分散请求到多个服务器,减少单点压力。 4. 定期进行性能监控和压力测试,及时发现并解决潜在问题。 此次压力测试提供了宝贵的性能数据,为系统优化和性能调优提供了依据,确保CRM系统在高并发...

    软件效率测试-初级培训

    效率测试的常见手段包括基准测试、并发测试、递增测试、场景测试、极限测试、疲劳测试、吞吐量测试和数据存储容量测试,以及网络性能测试。基准测试用于获取单用户执行时的各项性能指标,为多用户并发和混合场景的...

    数据库测试程序测试数据库

    - 压力测试:模拟大量并发用户,检查数据库的负载承受能力。 - 回归测试:在数据库更新后,确保原有的功能没有受到影响。 3. **测试工具**: - SQL查询:编写SQL语句来验证数据的存储和检索。 - 数据库管理工具...

    软件测试入门必备书籍---软件性能与性能测试教程

    2. **性能测试类型**:包括负载测试(模拟正常工作负载)、压力测试(超出正常工作负载)、耐久测试(长时间运行以检查稳定性)和容量测试(确定系统处理能力的极限)。 3. **性能指标**:了解关键性能指标,如响应...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part1

    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. 稳定性测试:长时间运行系统,检查其能否在高负载下持续稳定工作。 六...

    自动化测试性能测试PDF教程

    - **压力测试**:通过编写C#脚本来模拟大量用户的并发操作,评估系统的极限容量。 ### 3. C#中的具体技术应用 #### 3.1 单元测试示例 - **使用NUnit进行单元测试**: ```csharp using NUnit.Framework; [Test...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part2

    pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part3

    pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part6

    pdf 扫描版,但清晰, 298 MB 压...6.7.5 Phpwind85压力测试报告 6.8 小结 第7章 性能测试组织 7.1 性能测试团队 7.2 性能测试流程分工 7.3 配置管理 7.4 性能测试自动化 7.5 小结 第8章 高级脚本开发 8.1 AJAX

Global site tag (gtag.js) - Google Analytics