Web 服务器压力测试实例详解
发表于 2012-1-6 14:53 | 来自 51CTO网页
性能指标。
一、测试环境:
服务器操作系统:w indow s XP 专业版(32 位/SP2/DirectX 9.0c )
Web 服务器:Apache 2.2.9
IP 地址:略
压力测试工具:Web Application Stress Tool
硬件:
l 处理器:英特尔 酷睿 2 四核 Q9505 @2.83GHZ
l 主板:富士通-西门子 D2817-A1(英特尔 4Series 芯片组-ICH10DO)
l 内存:4GB(三星 DDR2 800MHZ)
l 主硬盘:日立 HDT721050SLA360(500G B)
l 显卡:英特尔 Q45/Q43 Express Chipset(Fujitsu-Siemens)
l 网卡:英特尔 82567LM-3 Gigab it Netw ork Connection/Fujitsu-Siemens
二、工具介绍
可用来进行 Web 压力测试的工具有很多,比如微软的 Web Application Stress、Linux
下的 siege、功能全面的 Web-CT 等等,这些都是非常优秀的 Web 压力测试工具。虽然这些
工具给我们测试服务器承受能力带来方便,但是它们却是“双刃剑”,攻击者利用随便一
种比较全面的测试工具就可以对一台小型的 Web 服务器发动灾难性的拒绝式攻击。
下面笔者就以微软的 Web Application Stress Tool(简称 WAST)为例进行一次 Web 压
力测试。这是由微软的网站测试人员开发的专门用来进行实际网站压力测试以一套工具。
透过这套功能强大的压力测试工具,管理人员可以在网站实际上线之前先网站进行如同真
实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。
三、工具设置
下载并安装 WAST,过程及其简单。然后运行 WAST 可以看到其界面非常简洁,在对目 标 Web 服务器进行压力测试之前,首先要对它进行一些必要的设置。
1、设置并行连接数
点击左侧的“Defaults→Settings”打开设置面板。在 Concurrent Connections 下进
行并行连接设置。Stress level (threads)是最少线程,Stress multiplier 是最大线程。
这里的线程是指定程序在后台用多少线程进行请求,也就是相当于模拟多少个客户机的连
接,一般填写 500~1000,因为这个线程数是根据本机的承受力来设置的,如果你对自己
的机器配置有足够信心的话,那么可以设置得更高一些。(图 1)
图 1
2、设置持续时间
在“Test Run Time”中用来指定一次压力测试需要持续的时间,分为天、小时、分、
秒几个单位级别,比如我们设置为 1 个小时。(图 2)

图 2
3、其余设置
“Rpquest Delay”设置延迟时间,我们设置为 100~500。“Suspend”设置设定挂起
时间,Warmup 时间是初始化测试运行时间,cooldown 时间就是指定结束阶段的测试时间。
Bandwith”指定带宽瓶颈,允许你模拟从 14.4 Kbps 的 modem 连接到 T1 (1.5 Mbps)的 Local
Area Network (LAN)连接的网络带宽。Redirects 设置重定向时间,“Throughput”设置
用户、密码页面状态保存等是否启用,“Name resolution”设置是否进行名称解析。所有
以上的选项大家可以根据自己的需要进行设置。(图 3)

图 3
四、压力测试
设置完成后就可以进行压力测试,测试的步骤如下:
第一步:点击工具栏上的“new script”按钮在打开的面板中点击“Nanual”按钮创
建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的 server 中填写要测试
的服务器的 IP 地址,这里我们填写 192.168.1.20,在下方选择测试的 Web 连接方式,这
里的方式 Verb 选择 get,path 选择要测试的 Web 页面路径,这里填写/Index.asp 即动网
的首页文件,WAST 可以设置更多的 Path。(图 4)

图 4
第二步:在“Settings”的功能设置中将 Stress level (threads)线程数设置为 1000。
完毕后,点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管
理器中看到 CPU 使用率已经 达到 100%,损耗率达到最大见图 5。在 CMD 窗口中使用命令
netstat -an,可以看到客户端的 IP 地址在服务器上的 80 端口进行了非常多的连接见图 6,
而且 Web 网站已经打不开了,提示过多用户连接。(图 5)(图 6)

图 5

图 6
总结:通过 Web 压力测试,管理员对 Web 服务器的抗压能力有了大概的把握,从而根
据实际需要可以进行服务器硬件扩展,同时也为系统设置、软件选择等提供了依据。总括
来说,在 Web 服务器正式发布前进行压力测试是非常必要的。
Web 服务器压力测试实例详解的更多相关文章
- nginx高性能WEB服务器系列之四配置文件详解
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- Web服务器压力测试一例
近期部门新上线一个服务,我们使用ab和locust分别测试 目前项目属于demo阶段,对访问量的支持不要求太高,我们暂且设定在500请求,20并发 工具介绍 ab ab全称为:Apache HTTP ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- web服务器压力测试工具
http_load 是运行在linux操作系统上的命令行测试工具, 用来对网站做压力测试. 下载地址:http://www.acme.com/software/http_load/http_load- ...
- [转]web服务器压力测试工具
http_load学习心得: 测试网站每秒所能承受的平均访问量(吞吐量) http_load -parallel 5 -fetches 1000 urls.txt这段命令行是同时使用5个进程,随机访问 ...
- Android命令Monkey压力测试,详解
一.Monkey 是什么?Monkey 就是SDK中附带的一个工具. 二.Monkey 测试的目的?:该工具用于进行压力测试. 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出 ...
- 转:Android命令Monkey压力测试,详解
停止Monkey命令: 1. ps命令 查找uiautomator的进程 打开cmd命令行窗口 输入: adb shell ps | grep monkey 返回来的第一个数字,即是monkey的进 ...
- Linux下进行Web服务器压力(并发)测试工具http_load、webbench、ab、Siege、autobench简单使用教程(转)
一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般 ...
- 网站服务器压力Web性能测试(1):Apache Bench:Apache自带服务器压力测试工具
一个网站或者博客到底能够承受多大的用户访问量经常是我们在用VPS或者独立服务器搭建网站了最关心的问题,还有不少人喜欢对LNMP或者LAMP进行一些优化以便提高Web性能,而优化后到底有多大的效果,就需 ...
随机推荐
- Ubuntu 14.04 下NFS安装配置
1.执行命令:sudo apt-get install nfs-kernel-server; 2.执行命令:mkdir /home/jack/nfs-share 建立一个nfs服务的专有的文件夹; 3 ...
- 强制迁移、合区 APP太强势伤害用户同时是否违法?
APP太强势伤害用户同时是否违法?" title="强制迁移.合区 APP太强势伤害用户同时是否违法?"> 对于经常混迹在国内各大手游的玩家来说,"合区& ...
- nexus7入手
平板一直关注了很久了,关键是不知道平板对我来说,拿它来做什么用.所以,一直也就是关注,也没有决心买了. 终于这次出手了,N7,到货了! 照片是原生的android系统,不习惯,不习惯,直接用刷机精灵, ...
- JMeter接口测试-计数器
前言 在测试注册接口的时候,需要批量注册账号时,每注册一个并且需要随时去修改数据,比较繁琐,除了使用随机函数生成账号,我们还可以使用计数器来进行批量注册. 一:添加配置元件-计数器 二:注册10个账号 ...
- 给你的Kubernetes集群建一个只读账户(防止高管。。。后)
给你的Kubernetes集群建一个只读账户 需求:我们知道搭完k8s集群会创建一个默认的管理员kubernetes-admin用户该用户拥有所以权限,有一天开发或测试的同学需要登录到k8s集群了解业 ...
- marquee用到的属性
一.marquee标签的几个重要属性: 1.direction:滚动方向(包括4个值:up.down.left.right) 说明:up:从下向上滚动:down:从上向下滚动:left:从右向左滚 ...
- VM安装Linux Centos7.0虚拟机
一.准备工作 1.安装VMware 官网https://www.vmware.com/cn.html 2.准备centos7的镜像文件 官网下载链接:http://isoredirect.centos ...
- 分割文件和数据(linux)
在某些情况下,必须把文件分割成多个更小的片段.如今我们分割文件的目的比如:提高可读性.生成日志.通过Email发送文件等等. 假设我们有一个erro.log的测试文件,其大小为14M.你可以将该文件分 ...
- k8s环境部署本地.net core web项目
上一篇文章,我们部署了docker+k8s环境,简单测试通过,但是,还没能将我们自己的项目部署上去,继续记录部署踩坑过程. 一.准备工作 1.当然是docker+k8s环境了,详情请看上一篇文档 ht ...
- 对HTML语义化的一些理解和记录
什么是HTML语义化 说HTML语义化就要先说说HTML到底负责的什么?下面摘自维基百科: 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页 ...