web压力测试

公司游戏提交到sina微博平台,同时还需要提供一份压力测试报告,因为没有压力测试的经验,所以查了不少资料,走了不少弯路,做一个总结,分享给大家吧

 

首先我们只有1台服务器,8G内存,操作系统centos5.5(64位),安装了Mysql 5.5,Apache 2.2.17,TC 1.4.47,TT 1.1.41,PHP 5.3.5,这么多的软件都跑在一台机子上,着实有点担心伤不起啊

 

选择web压力测试软件的时候,做了一番选择,有ab,siege,最终还是选择了webbench,理由是webbench开源免费,安装方便,可以模拟高达3w的并发,同时参数简单,省去了不少研究的功夫

 

webbench的官网是:http://home.tiscali.cz/~cz210552/webbench.html

同时介绍比较详细的网址有:http://blog.s135.com/post/288/

 

1.安装先

#wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
#tar -zxvf webbench-1.5.tar.gz
#make
#make install

 

2.写一段php代码,包含了经常调用且需要操作mysql,tt,假设url是 http://mytest.com/

 

开始测试前,还需要几个准备工作

3.写一个shell脚本ps.sh,记录每秒的http请求数

#!/bin/sh

while [ 1 ]
do
ps aux | grep httpd | wc -l
sleep 1
done

4.再写一个shell脚本ms.sh,记录每秒最高的请求数

#!/bin/bash

m=0
while [ 1 ]
do
c=$(ps aux | grep httpd | wc -l)
if [ $m -lt $c ]; then
m=${c}
echo $m
fi
sleep 1
done

 

5.给shell脚本权限后,开启2个远程窗口,分开运行脚本

#chmod +x ps.sh
#./ps.sh

 

#chmod +x ms.sh
#./ms.sh

 

6.开启新窗口,查看内存和cpu使用情况

#top
 

7.开启新窗口,webbench压力测试,8000的并发,持续30秒

#webbench -c 8000 -t 30 http://mytest.com/
 

8.得到结果,各自的操作窗口的数据进行总结了

 

9.优化apache的并发配置,加上了自己的注释

// 注释: 查看编译的模块
// 这里是查看是否编译prefork.c

#/usr/local/apache/bin/apachectl -l

Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
// 编辑httpd.conf
#vi /usr/local/apache/conf/httpd.conf

// 去掉“#”
# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf
// 编辑httpd-mpm.conf
#vi /usr/local/apache/conf/extra/httpd-mpm.conf

// 刚才看到是prefork.c,这里就派上用场了
// 编辑prefork模块
<IfModule mpm_prefork_module>
    // 启动apache同时产生10个进程
    StartServers        10

    // 最少50个空闲进程,理解最少50个候补人员,供apache差遣
    MinSpareServers     50

    // 最多100个空闲进程,如果少于MinSpareServers,则在MinSpareServers基础上+1
    MaxSpareServers     100

    // 此项如果不存在,自行添加,如果允许最大客户端超过256个,此项必须设置,必须在MaxClients之前,必须大于MaxClients
    ServerLimit         3000

    // 允许的最大并发数
    MaxClients          3000

    // 每个并发数允许的最多子进程,如果超过,会直接杀死进程
    MaxRequestsPerChild 1000
</IfModule>

配置好apache后,记得重启,先stop在start比较保险

#/usr/local/apache/bin/apachectl stop
#/usr/local/apache/bin/apachectl start
 

10.调整心得

  1. StartServers 主要是考虑如果少于MinSpareServers,则会每秒按2的倍数生成1个新的空闲进程,就是1生2,2生4,4生8,直到达到MinSpareServers,所以和MinSpareServers相关
  2. MinSpareServers 开始设置得很大,对于一下子有大量的并发http效果明显,但是如果没有过大的http并发请求,则该项会占用内存和cpu,所以要慢慢调节到需要的量即可
  3. ServerLimit 据说最大值是20000,么尝试过
  4. MaxClients 并发数,如果设置太小,则超过并发数的请求只能排队等待,影响体验,当然,如果设置太大,则会增加服务器负担,使得每个得到处理的请求的体验也下降,难呐
  5. MaxRequestsPerChild 默认是0 表示所有子进程都会进行完后才会删除,所以很多人建议是设置一个定值

 

11.总结

总算把报告提交上去了,也不知道能不能通过

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一个开源的Java应用程序,主要用于进行压力测试和性能测量。它可以模拟多种类型的负载,包括Web应用程序、数据库、FTP服务器等。对于Web压力测试,你可以使用JMeter来模拟多个用户同时访问一个Web应用程序,并收集性能数据和指标。 要进行Web压力测试,首先你需要安装JMeter并启动它。然后,你可以按照以下步骤进行测试: 1. 创建测试计划:在JMeter中,你需要创建一个测试计划,该计划将包含所有的测试元素和配置。右键点击测试计划,选择"Add",然后可以添加线程组、HTTP请求等元素。 2. 配置线程组:线程组定义了并发用户的数量和其他相关设置。你可以设置线程数、启动时间、循环次数等。根据你的需求进行配置。 3. 添加HTTP请求:在线程组下,你可以添加HTTP请求元素来模拟用户的行为。你可以指定请求的URL、方法(GET、POST等)、参数等。 4. 添加监听器:监听器用于收集性能数据和指标。你可以选择合适的监听器来监视请求响应时间、错误率、并发用户数等。 5. 运行测试计划:准备好测试计划后,你可以点击运行按钮开始压力测试。JMeter将模拟多个用户并发送请求到目标服务器。 6. 分析结果:测试运行完成后,你可以查看监听器中收集的数据和指标。通过这些数据,你可以评估Web应用程序的性能,找出性能瓶颈,并进行优化。 以上是使用JMeter进行Web压力测试的基本步骤。当然,JMeter还提供了更多高级功能和配置选项,可以根据具体需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值