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

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

阅读更多

 

环境介绍

虚拟机配置

 

 

 

 

操作系统  Centos6-64位
(内核版本: Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux)
CPU  (英特尔)Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz(2601 MHz),虚拟单核
主板  联想 23442G1
内存  1.00 GB (1600 MHz)
主硬盘  20 GB 
网卡  Intel(R) 82579LM Gigabit Network Connection

 

软件

JDK版本:

java –version

 

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

 

 

Tomcat版本:

 

Apache Tomcat/7.0.50

 

Mysql版本(编译好的解压缩版本):

 

mysql-5.6.15-linux-glibc2.5-x86_64

 

测试工具:JMeter

 

应用:Story网站

 

使用框架

 

Jquery+Fastjson1.1.38+Spring MVC3+Spring Core3+Hibernate4+C3P0

 

新闻贴子初始数据量(1w

 

测试功能:

 

分散浏览分页浏览新闻(按页分散,每页15条记录)

 

分散浏览单条新闻(id随机分散,每条记录约1kb信息)

 

并发更新新闻 (id随机分散,行锁定)

 

并发插入新闻(id随数据库生成自增,暂不考虑分布式横向sharding)

 

要解决的问题:

 

如何分散浏览?

 

使用jmeter的随机函数,打开jmeter后,点击“选项”->“函数助手对话框”->弹出对话框,选择“__Random”函数,第一个参数是随机数最小值,第二个参数是随机数最大值,第三个参数是压力测试中随机函数的函数名称。之后点击生成,

如图:



 

则形成如下表达式:

 

${__Random(1,10,ram)}

 

之后可以在压力测试中有随机数的地方使用它了。

 

一切都是默认配置,发起压力测试

 

JVMtomcat 连接参数、mysql、程序配置、操作系统等等皆为默认配置,测试用例功能性能。暂时不开启远程JMX监控端口,出现问题后,在开启JMX监控之。

Mysql默认配置如下

[client]
port		= 3306
socket		= /tmp/mysql.sock

[mysqld]
port		= 3306
socket		= /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

log-bin=mysql-bin

binlog_format=mixed

server-id	= 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

 程序连接池配置入下

 

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/story?useUnicode=true&characterEncoding=UTF-8
jdbc.user =root
jdbc.password=111111
jdbc.miniPoolSize=10
jdbc.maxPoolSize=80
jdbc.initialPoolSize=10
jdbc.maxIdleTime = 120000
jdbc.acquireIncrement=10
jdbc.acquireRetryAttempts = 30
jdbc.acquireRetryDelay=60000
jdbc.testConnectionOnCheckin = true
jdbc.automaticTestTable = test
jdbc.idleConnectionTestPeriod = 15000
jdbc.checkoutTimeout=60000

 

 

2.1分散浏览帖子

 

并发100,准备时间1s

 

测试报告如下:

 

预热环境,稳定下来后的吞吐量如图



 平均数值如下



 

吞吐量TPS基本维持在29~31之间。

 

并发200,准备时间1s

走势图



 

吞吐量报告

 



 

TPS基本也是维持在29~32之间。

 

并发500,准备时间1s,让它产生少量的等待请求

 

第一次发起,出现过多的错误,出现在http连接超时、数据库连接超时、数据库连接不够用、http response返回信息错误等等现象。

 

经过第一次的预热,第二次发起

走势图如下



 吞吐量报告



 短间隔内(一些对象池都没有回收的情况下),连续发起请求,TPS基本维持在29~31左右

下次发起1000并发调优~(未完待续)

记录,自我总结文档的第5页

  • 大小: 36.4 KB
  • 大小: 18.7 KB
  • 大小: 11.2 KB
  • 大小: 20.5 KB
  • 大小: 10.3 KB
  • 大小: 22.1 KB
  • 大小: 9.5 KB
1
0
分享到:
评论

相关推荐

    软件性能测试与调优指南

    - **压力测试**: 逐步增加负载直到系统达到或超过极限,目的是发现系统的瓶颈和崩溃点。 - **容量测试**: 主要针对数据库系统,在大数据量的情况下评估系统的处理能力和响应时间。 #### 3. 性能测试阶段 - **单元...

    性能测试调优分析.rar

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

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

    它是一个单线程的收集器,但在多CPU环境中,可以通过设置`-XX:+UseParallelGC`和`-XX:ParallelGCThreads`参数来启用多线程并发收集。ParNew与老年代的收集器(如CMS或Parallel Old)配合工作,形成经典的年轻代-老...

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

    - **第一轮测试目标**: - 分析当前系统中个人登录与理财交易的处理能力。 - 通过优化措施提高这两项功能的处理能力,确保用户可以流畅地使用系统。 - **第二轮测试安排**: - 对整个系统运行环境和功能进行全面...

    TWMP系统压力测试报告

    压力测试是一种关键的系统评估方法,它旨在确定系统在极限条件下的表现,包括处理能力、资源利用率以及故障恢复能力。以下是根据提供的内容对测试报告的详细解读: 1. **测试目标与范围** - **被测试软件**: TWMP...

    JAVA性能测试与调优案例

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

    Websphere portal tuning调优

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

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

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

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

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

    linux性能调优.pdf

    为了模拟系统在高负载下的表现,我们可以使用`stress`和`stress-ng`这样的压力测试工具。通过这些工具,我们可以模拟各种高负载场景,检验系统的稳定性和性能极限。而`sysstat`工具集中的`mpstat`和`pidstat`则为...

    软件效率测试-初级培训

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

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

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

    软件测试技术的期末考试题

    1. 压力测试:模拟超过正常负载条件,检查系统的极限性能和稳定性。 2. 负载测试:逐渐增加负载,观察性能变化,确定系统处理能力的上限。 3. 稳定性测试:长时间运行系统,检查其能否在高负载下持续稳定工作。 六...

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

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

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

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

    性能测试进阶指南——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

    性能安全测试面试题100%这样问

    **关系**:这三种测试都属于性能测试的一部分,它们之间有递进关系,从正常的性能测试到负载测试再到压力测试,逐步增加测试的复杂性和强度。 **区别**: - **目标不同**:性能测试着重于常规操作下的性能表现,...

    elasticsearch 性能测试

    2. **压力测试**:逐渐增加负载,直到系统达到极限,观察系统的临界点和稳定性。 3. **耐久性测试**:长时间运行测试,检测系统在长时间工作后的性能衰减情况。 4. **基准测试**:在特定配置下,确定系统的基线性能...

Global site tag (gtag.js) - Google Analytics