`

web压力测试分析优化

阅读更多

 

 

还是sina平台压力测试那档子事,已经拖了一周了,还没好,很烦心,静下来心总结下

 

硬件环境

  1. cpu:Intel(R) Xeon(R) CPU E5506 @ 2.13GHz  8
  2. memory 8GB
  3. Disk Sata 硬盘 65GB

应用软件及其各自接口

  1. Apache 2.2.17
  2. DB Mysqlnd 5.0.7
  3. NoSql:Tokyocabinet 1.4.47,Tokyotyrant 1.1.41
  4. PHP:PHP 5.3.5
  5. PHP扩展:Tokyo_tyrant 0.6.0,xhprof-0.9.2,eaccelerator-0.9.6.1
  6. 压力测试:loadRunner(sina),webbench-1.5.tar.gz( 本地
  7. 系统检测:dstat-0.7.2

过程

sina工程师使用loadRunner以30并发测试我们提供的测试接口,同时在本地系统上运行监控程序,查看运行情况

1.dstat-0.7.2

#tar -jxvf dstat-0.7.2.tar.bz2
#cd dstat-0.7.2
#./dstat -tclmsgdn --nocolor

可以每秒刷新如下系统数据,(因为太长,只列出涉及到的条目)

  1. total-cpu-usage:usr sys idl wai hiq siq
  2. memory-usage:used  buff  cach  free
  3. swap:used  free
  4. dsk/total:read  writ

2.系统命令

#iostat -x

结果如下

 Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
 sda               0.09     9.53  0.29  2.14    11.07    93.45    43.10     0.19   78.01   3.16   0.77

 

3.系统命令

#iostat -d -m 1 10

结果如下

 Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
 sda               2.43         0.01         0.05       1469      12406
 sda1              0.00         0.00         0.00          0          0
 sda2              0.00         0.00         0.00          0          0
 sda3              2.42         0.01         0.05       1467      12406

---

sina得出的结论是:1.cpu,内存没有饱和,硬盘写数据量偏大,写等待拖延了时间,每秒处理的请求数偏低

 

 

只能再做优化

  1. 安装xhprof,查看php运行效率,分析功能代码模块耗时,发现文件解析模块耗时严重,将文件解析部分改由管理员后台初始化完成,数据存放于nosql中
  2. 安装eaccelerator,提升php速度,还是有明显的加速
  3. 代码优化,例如,尽量将in_array方法有isset代替等
  4. mysql配置修改,my.cnf中max_connections调整至1000
  5. apache配置修改,调整max_connect

 

xhprof(相关的路径要注意填写正确):

if(function_exists('xhprof_enable')) { 
	xhprof_enable(); 
}

// 测试代码
...
...
...

if(function_exists('xhprof_disable')) {
    $xhprof_data = xhprof_disable();
    include_once "xhprof_lib/utils/xhprof_lib.php";
    include_once "xhprof_lib/utils/xhprof_runs.php";

    $xhprof_runs = new XHProfRuns_Default();
    $identifier = 'index-page';
    $run_id = $xhprof_runs->save_run($xhprof_data, $identifier);

    echo "<a target=\"_blank\" href=\"../xhprof_html/index.php?run=$run_id&source=$identifier\">view xhprof </a>";
}

 

 

mysql(my.cnf):

[mysqld]
// 新加一行
max_connections=1000
 

 

apache(httpd.conf):

<IfModule prefork.c>
    StartServers       10
    MinSpareServers    20
    MaxSpareServers   50
    ServerLimit      2000
    MaxClients       2000
    MaxRequestsPerChild  4000
</IfModule>
 

---

我们自己测试结果跟sina差距了10倍甚至更多,暂时还没有明确找到原因,不排除网络原因

sina工程师提供的建议:可以做下磁盘阵列加快写的速度,否则涉及写的话,瓶颈马上显现了,仅供参考,你们再讨论下

 

 

 

 

 

分享到:
评论

相关推荐

    软件测试-web压力测试实验报告

    2. **熟练运用WAS软件进行Web压力测试**:WAS软件是一款强大的压力测试工具,能够生成多线程请求,模拟真实用户的行为,记录和回放测试脚本,以及分析测试结果,为优化Web应用程序提供数据支持。 【实验设备与内容...

    Web压力测试工具软件

    Web压力测试工具软件是针对Web应用程序进行性能和稳定性检测的重要工具。它们的主要目的是模拟大量并发用户访问,以检查系统在高负载下的响应速度、资源消耗和可能出现的问题。Web Application Stress Tool是一款...

    微软Web压力测试工具(Microsoft Web.rar

    【微软Web压力测试工具】 微软Web压力测试工具,也被称为Microsoft Web Application Stress Tool(WAST),是微软提供的一款专门用于测试Web应用程序性能和稳定性的工具。这款工具的主要目的是模拟大量并发用户对...

    Web网站压力测试工具

    虽然具体工具名称未给出,但常见的Web压力测试工具有Apache JMeter、LoadRunner、 Gatling、WebLoad等。它们都提供了强大的功能,用于测试Web应用的性能和稳定性。 例如,Apache JMeter是一款开源的压力测试工具,...

    Jmeter WEB HTTP压力测试实例

    压力测试预期效果是测试 ECSHOP 商场在 300 人同时登陆查看评论时,服务器压力的变化情况,以便更好地优化服务器配置和性能优化。 JMeter 配置步骤 JMeter 配置步骤包括: 1. 安装 JMeter 和 JDK 2. 配置 JMeter ...

    软件测试——web压力测试实验报告

    本实验报告将详细阐述Web压力测试的概念、工具使用、测试方案设计以及结果分析。 一、Web压力测试概念 Web压力测试旨在模拟实际环境中可能出现的大量并发请求,以测试服务器、数据库、网络等组件的承受能力。它...

    windows下web压力测试工具 ab

    总结,`ab`工具在Windows下的应用为Web开发者和运维人员提供了一种便捷的压力测试手段,通过它,我们可以更好地理解Web服务器在高负载下的性能,从而优化系统、提升用户体验。不过,单一的工具并不能解决所有问题,...

    web压力测试工具was-weba

    Web压力测试工具是用于模拟大量用户并发访问Web应用程序,以评估其性能和稳定性的软件工具。Was-Weba就是这样一个工具,它可以帮助开发者和运维人员识别潜在的性能瓶颈,优化网站服务,确保在高负载情况下仍能正常...

    web压力测试工具.rar

    Web压力测试是评估Web应用程序在高负载或大量并发用户访问情况下的性能和稳定性的关键步骤。这有助于确保网站在高峰期能够正常运行,提供良好的用户体验。"web压力测试工具.rar"这个压缩包包含了进行此类测试所需的...

    Web压力测试工具

    Web压力测试工具是一种专门用于评估和测量Web应用程序性能和稳定性的软件工具。它们的主要目标是模拟大量并发用户访问,以此来测试服务器、网络以及数据库在高负载情况下的表现。这样的测试对于任何规模的Web服务...

    web 压力测试 http_load

    Web压力测试是指通过模拟多个用户同时访问Web服务器,以评估服务器性能、稳定性、安全性的测试方法。Web压力测试工具可以帮助测试者了解服务器在高负载情况下的表现,从而发现系统性能瓶颈,确保系统具备足够的承载...

    微软web压力测试工具

    总的来说,微软Web压力测试工具是Web应用程序性能优化不可或缺的工具,它能帮助确保在高流量情况下,网站仍能保持良好的运行状态,为用户提供流畅的体验。通过深入理解和熟练使用这款工具,开发者和运维人员可以有效...

    web压力测试工具及其使用文档

    Web压力测试工具就是专门用于模拟大量用户同时访问网站,以此来检测服务器、数据库和网络等组件的承受能力。本篇文章将围绕"web压力测试工具",特别是"MS Web Application Stress工具"进行详细的介绍。 MS Web ...

    WEB压力测试

    【标题】:“WEB压力测试”涉及的是评估和优化网站在高并发访问情况下的性能和稳定性。这是一项关键的测试活动,旨在确保Web应用程序在大量用户同时访问时仍能正常运行,提供良好的用户体验。 【描述】:“简单web...

    微软Web压力测试工具

    微软Web压力测试工具正是为这一目的而设计的专业工具,它能够模拟大量用户同时访问,从而检测系统在重负载下的稳定性和性能瓶颈。 ### 工具介绍 微软Web压力测试工具,作为Visual Studio Ultimate的一部分,提供了...

    web并发&压力测试工具http_loadWin32

    在IT领域,性能测试和压力测试是评估系统稳定性和效率的关键环节,特别是在Web服务环境中。本文将详细讨论“web并发&压力测试工具http_loadWin32”,它是一个专为Windows平台设计的性能测试工具,源自于原版的...

    web 压力测试工具 polygraph

    总的来说,Polygraph是一个强大且灵活的Web压力测试工具,它通过详细的参考和用户手册提供了全面的支持,使得用户能够有效地评估和优化Web服务器的性能。无论是服务器管理员还是开发团队,都能从中获益,确保Web服务...

    基于Windows下的web性能测试和压力测试的说明

    在Windows环境下进行Web...总的来说,基于Windows的Web性能测试和压力测试是一个综合的过程,涉及到测试计划、指标设定、工具选择和问题分析。通过这些测试,我们可以确保Web应用在大规模使用时保持高效、稳定和可靠。

    WEB网站压力测试

    接下来,我们将介绍WAS,这是一个由微软提供的免费Web压力测试工具。它允许导入WebCat脚本,提供图形用户界面,且不断更新以满足更高的测试需求。WAS的优势在于其全面的功能和易用性,适合对ASP程序进行压力测试。 ...

Global site tag (gtag.js) - Google Analytics