Apache Benchmark + GNUPlot:测量和绘制Web服务器的性能图

是否使用都没关系 Nginx的, 阿帕奇,Lighttpd或其他方式,拥有Web服务器的任何网络管理员都希望在某个时刻知道Web服务器对给定数量的查询的响应速度。

托管服务服务器管理e1368625038693

Apache 基准测试 + GNUPlot

这次我们将使用一个名为 Apache基准测试,尽管它的名称中带有“ apache”,但它不仅用于衡量Apache的性能,而且还可以用于Nginx等。 实际上,我将使用它来衡量 Nginx的.

我们还将使用 GNU绘图,这将帮助我们用几行代码制作出这样的图形:

结果

安装Apache Benchmark和GNUPlot

Apache Benchmark是安装Apache软件包后可以使用的工具,安装了相同名称的软件包后,GNUPlot将可用。 那...

在Debian,Ubuntu或类似的发行版上:

sudo apt-get install apache2 gnuplot

在诸如ArchLinux或衍生版本的发行版中:

sudo pacman -S apache gnuplot

我们只需要安装Apache软件包,我们不需要启动它或配置其他任何东西,只需安装就足够了。

使用Apache Benchmark

我们将要做的是将特定数量的请求(100)分成几组(从20到20)发送到特定站点。 我们将结果保存到.csv文件(result.csv)中,然后使用GNUPloit处理它,该行将为:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

将最终的/放在要测量的站点的URL中非常重要。

这是我在网络上测试站点时向我显示的输出或日​​志:

这是ApacheBench,版本2.3 <$修订:1638069 $>版权所有1996 Adam Twiss,Zeus Technology Ltd,http://www.zeustech.net/已获Apache软件基金会许可,http://www.apache.org/ Benchmarking gutl.jovenclub.cu(请耐心等待).....完成

服务器软件:nginx服务器主机名:gutl.jovenclub.cu服务器端口:80

文件路径:/
文档长度:206字节并发级别:20测试时间:0.101秒完整请求:100失败请求:27(连接:0,接收:0,长度:27,异常:0)非2xx响应:73传输总数: 1310933字节HTML传输:1288952字节
每秒请求数:993.24 [#/秒](平均)
每个请求的时间:20.136 [ms](平均值)每个请求的时间:1.007 [ms](所有所有并发请求的平均值)传输速率:12715.49 [Kbytes / sec]接收的连接时间(ms)最小均值[+/- sd]中位数最大值连接:0 1 0.2 1 1处理中:1 17 24.8 4 86等待中:1 15 21.5 4 76总计:1 18 24.8 5 87在一定时间内服务的请求百分比(ms)50%5 66%6 75% 22 80%41 90%62 95%80 98%87 99%87
100%87(最长要求)

我用红色标记了我认为最重要的内容,或多或少:

  1. 我们正在测试的服务器的数据以及相关的URL。
  2. 每秒的请求数。
  3. 服务器花了多少毫秒来服务花费时间最长的请求,即花费时间最长的请求。

有了这些信息,他们可以知道服务器处理该数量的请求将花费多长时间,然后他们可以添加更好的缓存系统,停用他们不使用的模块等,然后重新运行测试并查看性能是否有所提高。

我建议运行测试2或3次,以便创建类似边距的内容,因为连续两次测试的结果很少相同。

其他有用的Apache Benchmark选项或参数:

-k -H'接受编码:gzip,deflate' :使用此ab将接受服务器已配置的缓存和压缩,因此时间将减少。

-f 网址.txt :因此,它不仅会测试网站的索引,还会对我们在该文件中指定的URL进行测试。

反正...看看 男人ab 让你明白。

在图形中显示结果:

为了将输出结果显示在图像中,也就是在更直观的媒体中进行多次显示,这是管理人员设法理解的一切……为此,我们将像我之前所说的那样, GNU绘图

在我们有文件results.csv的同一文件夹中(记住,我们只是用上面的命令生成的),我们将创建一个名为gnuplot.p的文件:

nano plot.p

我们将在其中放入以下内容:

设置终端png大小600设置输出“results.png“设置标题”100 要求, 20 并发请求“设置大小比例0.6设置网格并设置xlabel”请愿书“设置ylabel”响应时间(毫秒)“情节”results.csv“使用带有行标题的9个平滑sbezier”青少年俱乐部"

我用红色标记了您应经常检查的内容。 那就是从上到下:

  1. 要生成的图像文件的名称
  2. 总请求数和并发请求数。
  3. 我们刚刚生成的文件的名称。
  4. 我们正在研究的领域。

放入后,保存并退出(Ctrl + O 进而 按Ctrl + X),我们将执行以下操作:

gnuplot plot.p

瞧,这将生成具有所需名称的图形,我的是:

结果2

结束!

Apache Benchmark有很多选择,我们还可以使用许多组合来使性能测试更加完善。

但这是基础知识😉

尽情享受您的购物之旅!


9条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   旧金山

    有趣的Apache基准测试,我不了解gnuplot,是否可以修改输出的样式? 我说正式报告。

    来自智利的问候。

    1.    KZKG ^ Gaara

      是的,gnuplot的网络上有很多配置,请搜索Google以查看是否找到足够认真或专业的人来使用它,因为这就是每个人的口味🙂

  2.   Wolf119

    嗯,我现在要在运行的虚拟apache服务器上对其进行测试,以了解GUTL的运行情况,因为它会迅速从80个请求中触发,对吗?让我们看看100 ms不会它们什么都不是,但是相比于10到70以及80到80的需求,可以提供更多90个请求的高点引起了我的注意

    1.    KZKG ^ Gaara

      这必须是由于队列或同时要处理的最大线程数所致。 但是,我没有gzip,没有放气,没有缓存或其他任何东西进行了测试😉

  3.   查理·布朗

    非常有趣,特别是对于GNUPlot的使用。 从我看来,它几乎可以用于从任何数据集中生成图形,对吗?...

    1.    KZKG ^ Gaara

      是的,当然,您可以将数据传递到一个用逗号或类似内容分隔的文件中,并告诉它如何在配置文件中进行处理,然后

  4.   阿道夫

    您好,我总是花时间阅读此博客,但我从未对任何文章发表评论,这似乎是个好机会。
    我想与您分享的是这种类型的图可能会被误解,因为Apache Bench使用ttime(总时间)而不是顺序时间对结果进行排序。 尽管数据仍然是真实的,但该图形可能无法显示我们想要的内容。
    在这里,我将链接留在我阅读的地方。
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    问候。

  5.   雨果

    Apache Benchmark并不是衡量多核计算机中HTTP服务器性能的最佳工具,此外,只有100个具有20个并发连接的请求是一个非常弱的测试,更现实的情况是1,000个或10,000个有100个并发连接的请求(众所周知(Nginx是每秒能够处理10,000个以上请求的应用程序之一),为此,最好使用weighttp之类的工具,该工具专为多核计算机而设计,并且使用的epoll更快,这与Apache Bench不同使用单个线程和效率较低的事件处理机制。

    我的观点是,假设服务器只有4个核心:

    weighttp -n 10000 -c 100 -t 4 -k“ http://our-web-site.com/”

  6.   信仰

    大家好,
    使用gnuplot绘制图形(从CSV)时,会出现以下错误,您能告诉我如何解决吗?

    “ Plot.p”,第8行:警告:正在跳过没有有效点的数据文件

    使用9个平滑sbezier和标题为«AB-localhost / web»的线绘制«graph.csv»
    ^
    “ Plot.p”,第8行:x范围无效

    使用gnuplot,我还可以生成HTML页面吗?