如何在Ubuntu 18.04中对你的apache服务器运行压力测试

本文概述

  • 1.安装apache2-utils
  • 2.运行压力测试
对于apache, 存在Apache Bench(ab)工具。此工具可帮助你评估Linux环境中HTTP服务器的性能, 它通过向给定URL生成大量请求(如果未正确配置并发请求的服务器数量, 则为DoS类)来工作, 并返回一些屏幕上易于消化的与性能相关的指标。这种简单性使其非常适合运行快速而肮脏的负载测试, 并且对于发现Web堆栈中的限制或意外的服务瓶颈非常有好处。它旨在使你对当前的Apache安装方式有一个印象。这尤其向你显示Apache安装每秒能够处理多少个请求。该工具可帮助你基本了解:
  • 我的应用程序何时会中断(有多少用户)?
  • 在大量同时请求的情况下, 你的应用程序的平均响应时间是多少?
  • 我的服务器每秒可以处理的最大请求数量是多少?
在本文中, 我们将轻松向你说明如何在Ubuntu发行版上安装AB以测试apache服务器。
1.安装apache2-utils为了使用apache基准测试工具, 我们将需要在Ubuntu系统上使用以下命令安装apache2实用程序集合:
sudo apt-get install apache2-utils

请注意, 这不需要安装在要运行测试的同一服务器上。你甚至可以将其安装在本地桌面Ubuntu中, 然后针对特定的URL运行测试。该软件包提供了对任何Web服务器都有用的其他工具。这包括:
  • ab:Apache基准测试工具(我们将在本文中使用的工具)
  • fcgistarter:启动FastCGI程序
  • logresolve:将IP地址解析为日志文件中的主机名
  • htpasswd:处理基本身份验证文件
  • htdigest:处理摘要身份验证文件
  • htdbm:使用APR处理DBM格式的基本身份验证文件
  • htcacheclean:清理磁盘缓存
  • rotationlogs:定期停止写入日志文件并打开一个新的日志文件
  • split-logfile:拆分包含多个虚拟主机的单个日志
  • checkgid:检查呼叫者是否可以将gigid设置为指定的组
  • check_forensic:从Apache日志文件中提取mod_log_forensic输出
  • httxt2dbm:生成用于RewriteMap的dbm文件
有关此工具的更多信息, 请在此处访问apache的官方网站。
2.运行压力测试要使服务器承受压力以检查它在大量请求下的行为, 可以开始使用以下命令:
ab -c 100 -n 500 -r https://yourwebsite-or-ip.com/

其中:
  • -c:并发, 一次执行的多个请求的数量。默认值为一次一个请求。
  • -n:请求数, 基准测试会话要执行的请求数。默认设置是仅执行一个请求, 这通常会导致非代表性的基准测试结果。
  • -r:不退出套接字接收错误。
  • 作为位置参数, 是带有指定模块的网站的网址, 例如/(用于首页)。
在这种情况下, 我们的请求将同时每秒发出100个请求, 总共将发出500个请求, 因此测试时间不会太长。在像样的服务器上, 此测试不应关闭你的服务器, 因此那里的大多数服务器都应能够进行此测试, 但是你可以开始更改值以使服务器发汗:
# 200 simultaneous request should start to be heavy for your server, making 5K requests in totalab -c 200 -n 5000 -r https://yourwebsite-or-ip.com/

【如何在Ubuntu 18.04中对你的apache服务器运行压力测试】当你在apache中具有DoS / DDoS保护时, 例如使用qos_module时, 你将看到命令输出中将出现很多失败的请求。发生这种情况是因为保护确实有效, 并且如上所述, ab工具基本上将请求泛洪到服务器, 因此许多具有相同IP的请求将被apache模块自动阻止。
如果要完全测试而没有失败的请求, 则可以在短时间内禁用服务器中qos模块的保护, 但是一旦完成测试, 请不要忘记启用它。如果只有四分之一成功到达服务器, 则将无法最大程度地测试服务器资源。
编码愉快!

    推荐阅读