负载生成器是一些生成用于测试的流量的程序。它们可以向你展示服务器在高负载的情况下的性能,以及让你能够找出服务器可能存在的问题。为了得到更加客观和准确的数值,应该从远程访问、局域网访问和本地等多个方面进行全方位的测试。一般用127.0.0.1进行本机测试。
ab 命令会创建很多的并发访问线程,模拟多个访问者同时对某一 URL 进行访问,可用来测试 Apache 的负载压力,也可以测试 Nginx、lighthttp、IIS 等其它 Web 服务器的压力。
- 安装
Unix 安装:yum install httpd
Windows安装:下载 http://pan.baidu.com/s/1mifnlUS
在安装目录 bin下可以看到 ab.exe。
2. 使用
为了避免因为网络原因而导致服务器压力测试结果不准确,一般可以用 ab -n 100 -c 50 http://127.0.0.1/index.php 来测试自己服务器Web性能。所有 ab 命令的组成遵循此结构: ab [options] [full path to web document] 。
ab -n 1000 -c 10 http://www..com/
“-n”表示:每次请求数,默认不能超过1024个,“-c”表示:1个请求的并发连接数,默认最大不能超过50000
可选标记
响应描述
HTML transferred、Requests per second 以及 Time per request 都是关键字段。根据这些数据,我们能大概了解 Web 服务器的性能水平,这些字段使我们能够大概了解Web服务器为一个请求返回的数据量、Web服务器一秒可以处理的请求总数以及一个请求成功地收到来自Web服务器的响应所花费的总时间。
我们的目标是成功降低 HTML transferred,提高 Requests per second 并且降低 Time per request 值。
其他字段解释
1、吞吐率(Requests per second)
服务器并发处理能力的量化描述,单位是reqs/s,指的是在某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
记住:吞吐率是基于并发用户数的。这句话代表了两个含义:
a、吞吐率和并发用户数相关
b、不同的并发用户数下,吞吐率一般是不同的
计算公式:总请求数/处理完成这些请求数所花费的时间,即 Request per second=Complete requests/Time taken for tests 。
必须要说明的是,这个数值表示当前机器的整体性能,值越大越好。
2、用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/(总请求数/并发用户数),即: Time per request=Time taken for tests/(Complete requests/Concurrency Level) 。
3、服务器平均请求等待时间(Time per request:across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间/总请求数,即: Time taken for/testsComplete requests 。
可以看到,它是吞吐率的倒数。 同时,它也等于用户平均请求等待时间/并发用户数,即 Time per request/Concurrency Level 。

最后一个部分包含一个表,其中包含Connect、Processing、Waiting以及Total字段。这些字段告诉我们请求在每个过程状态中所需的时间。我们最感兴趣的是Total字段及其最大、最小值列。这两列提供响应一个请求所需花费的最长和最短时间的数据。
Webbench 最多可以模拟3万个并发连接数来测试服务器压力,可以设置压力测试时间和测试请求的成功率。
1. 安装:
如果在编译webbench的时候,出现/bin/sh: ctags: command not found,如下所示

是没安装ctags组件,使用yum -y install ctags,解决问题
如果安装了ctags, 仍然报错:
报错:make: * [install] Error 1
解决方法
2. 使用
这是运行Webbench测试结果,Speed显示的是每分钟响应请求数和每秒钟传输数据量,Requests显示的是成功请求数和失败请求数。

为准确得到服务器的承受压力,测试时并发数可逐渐加大,如并发100时观察一下网站负载是多少、打开页面是否流畅,当网站打开缓慢时并发是多少、网站打不开时并发又是多少。
Tsung 是一款重型的(heavy-duty)、分布式的、多协议测试工具。它每秒基本可以产生 40,000 个请求,这绝对是我们想要的工具。类似于 Jmeter,你可以把一些行为记录下来在测试时运行,并且可以测试大多数的协议。比如 SSL、HHTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP 和 Jabber/XMPP。与 Jmeter 不同的是,它没有让人感到迷茫的 GUI 设置,它仅有一个 XML 配置文件,和一些你选择的分布式节点的 SSH 密钥。它的简洁和效率对我的吸引力,完全不亚于它的健壮性和可扩展性。我发现它是一个很强大的工具,在正确的配置下它可以每秒产生百万级的 HTTP 请求。
除此之外,Tsung 还可以在 HTML 上产生图表以及输入你的测试的详细报告。
在 CentOS 6.2 上安装 Tsung
1. 首先,你要安装(Erlang 需要的) EPEL 源。因此,在进行下一步之前要把它安装好。安装完后,继续安装你用来产生负载的每个节点需要的包。如果你还没有在节点之间建立无密码 SSH 密钥(passwordless SSH key),那么请建之。
2. 从 Github 或者 Tsung 的官网上下载最新的 Tsung。
使用
把示例配置复制到 ~/.tsung 目录里。这是 Tsung 的配置文件和日志文件的存放地方(目录不存在创建即可)。
你可以根据你的需求去编辑这个配置文件,或者使用我的配置文件。经过大量的尝试以及失败后,我目前的配置文件在使用 7 个分布式节点时可以每秒产生 5 百万个 HTTP 请求。
刚开始的时候有很多东西要理解,但你一旦理解了它们后就会变得很简单。
<client> 只是简单地指定了运行 Tsung 的主机。你可以指定 Tsung 使用的 IP 和 CPU 的最大数。你可以使用 maxusers 设置节点能够模拟的用户数量上限。每一个用户都会执行我们之后定义的操作。
<servers> 指定了你要测试的 HTTP 服务器。我们可以使用这个选项去测试一个 IP 集群,或者一个单一的服务器。
<load> 定义了我们的模拟用户将会在什么时候“到达”我们的网站。以及它们达到的有多快。
<arrivalphase> 在持续了 10 分钟的第一个阶段里,以 每秒 8 个用户的速率到达了 15,000 个用户。
这里还有两个 arrivalphases,它们的用户都以同样的方式达到。
这些 arrivalphases 一起组成了一个 <load>,它控制了我们可以每秒产生多少个请求。
<session> 这部分定义了一旦这些用户达到了你的网站,它们将会执行什么动作。
probability 允许你定义用户可能会做的随机事件。有时他们可能点击这里,有时他们可能点击那里。所有的Probability 加起来一定要等于 100% 。
在上面的配置里,用户只做一件事,所以它的 probability 等于 100% 。
<for from=”1″ to=”″ var=”i”> 这就是用户在 100% 的时间里做的事情。它们循环遍历 10,000,000 次并且 <request> 一个网页:/test.txt 。
这个循环结构允许我们使用少量的用户连接去获取比较大的每秒请求数量。
一旦你已经很好地理解了它们,你就可以创建一个便利的别名,去快速观察 Tsung 报告。
然后启动 Tsung
结束后观察报告
把-1004通过 ftp下载下来就可以使用查看了,如下图

使用 Tsung 去规划你的集群构造
现在我们拥有了一个足够强大的负载测试工具,我们可以规划余下的集群构造了:
1. 使用 Tsung 去测试一个单一的 HTTP 服务器。获取一个基本的基准。
2. 对 web 服务器进行调优,定期使用 Tsung 进行测试提高性能。
3. 对这些系统的 TCP 套接字进行调优,获取**的网络性能。再来一次,测试,测试,不停地测试。
4. 构造 LVS 集群,它包含了这些充分调优过的 web 服务器。
5. 使用 Tsung IP 集群对 LVS 进行压力测试。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/159005.html