是否使用都没关系 Nginx的, 阿帕奇,Lighttpd或其他方式,拥有Web服务器的任何网络管理员都希望在某个时刻知道Web服务器对给定数量的查询的响应速度。
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 Benchmark
我们将要做的是将特定数量的请求(100)分成几组(从20到20)发送到特定站点。 我们将结果保存到.csv文件(result.csv)中,然后使用GNUPloit处理它,该行将为:
ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/
这是我在网络上测试站点时向我显示的输出或日志:
这是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(最长要求)
我用红色标记了我认为最重要的内容,或多或少:
- 我们正在测试的服务器的数据以及相关的URL。
- 每秒的请求数。
- 服务器花了多少毫秒来服务花费时间最长的请求,即花费时间最长的请求。
有了这些信息,他们可以知道服务器处理该数量的请求将花费多长时间,然后他们可以添加更好的缓存系统,停用他们不使用的模块等,然后重新运行测试并查看性能是否有所提高。
其他有用的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”青少年俱乐部"
我用红色标记了您应经常检查的内容。 那就是从上到下:
- 要生成的图像文件的名称
- 总请求数和并发请求数。
- 我们刚刚生成的文件的名称。
- 我们正在研究的领域。
放入后,保存并退出(Ctrl + O 进而 按Ctrl + X),我们将执行以下操作:
gnuplot plot.p
瞧,这将生成具有所需名称的图形,我的是:
Apache Benchmark有很多选择,我们还可以使用许多组合来使性能测试更加完善。
但这是基础知识😉
尽情享受您的购物之旅!
有趣的Apache基准测试,我不了解gnuplot,是否可以修改输出的样式? 我说正式报告。
来自智利的问候。
是的,gnuplot的网络上有很多配置,请搜索Google以查看是否找到足够认真或专业的人来使用它,因为这就是每个人的口味🙂
嗯,我现在要在运行的虚拟apache服务器上对其进行测试,以了解GUTL的运行情况,因为它会迅速从80个请求中触发,对吗?让我们看看100 ms不会它们什么都不是,但是相比于10到70以及80到80的需求,可以提供更多90个请求的高点引起了我的注意
这必须是由于队列或同时要处理的最大线程数所致。 但是,我没有gzip,没有放气,没有缓存或其他任何东西进行了测试😉
非常有趣,特别是对于GNUPlot的使用。 从我看来,它几乎可以用于从任何数据集中生成图形,对吗?...
是的,当然,您可以将数据传递到一个用逗号或类似内容分隔的文件中,并告诉它如何在配置文件中进行处理,然后
您好,我总是花时间阅读此博客,但我从未对任何文章发表评论,这似乎是个好机会。
我想与您分享的是这种类型的图可能会被误解,因为Apache Bench使用ttime(总时间)而不是顺序时间对结果进行排序。 尽管数据仍然是真实的,但该图形可能无法显示我们想要的内容。
在这里,我将链接留在我阅读的地方。
http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/
问候。
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/”
大家好,
使用gnuplot绘制图形(从CSV)时,会出现以下错误,您能告诉我如何解决吗?
“ Plot.p”,第8行:警告:正在跳过没有有效点的数据文件
使用9个平滑sbezier和标题为«AB-localhost / web»的线绘制«graph.csv»
^
“ Plot.p”,第8行:x范围无效
使用gnuplot,我还可以生成HTML页面吗?