如何模拟DDOS/Slashdotting?

Kev*_*rke 17 apache ddos nginx simulate

所以,我希望获得更多使用高流量网站的经验,但不幸的是,互联网并没有打败我的博客.

如何在我的博客上模拟每秒数十/数百次点击并测试其性能?我在共享服务器上使用SSH帐户托管我的博客.

Pas*_*TIN 15

您可以使用以下工具向服务器发送大量请求:


第一个,ab,只允许您向单个URL发送大量请求 - 这对于单个脚本/页面的基准测试非常有用; 但并不反映用户浏览您网站的真实模式(例如,CSS/JS /图像不会被加载).

第二个,围攻,允许您将请求发送到文本文件中指定的URL列表 - 正确构建URL列表(有代理)将为您带来一些不太糟糕的测试.

第三个是JMeter,它将允许您创建更复杂的场景.
那个更复杂,你需要一点时间来使用它 - 但这可能会让你获得最好的结果.


art*_*dev 6

HTTP(S) 基准测试工具、测试/调试和 restAPI (RESTful)

按字母顺序排列(不喜欢)

HTTP(S) 基准测试工具

  • ab – 慢速单线程,写成C
  • apib – ApacheBench (ab) 的大部分功能,也被设计为更现代的替代品,写在C
  • baloo – 用 Go (golang)编写的富有表现力的端到端 HTTP API 测试变得简单
  • baton – HTTP 负载测试,用 Go (golang)编写
  • 轰炸机- 快速跨平台 HTTP 基准测试工具,用 Go (golang)编写
  • curl-loader - 各种应用程序服务和流量生成的性能加载,写在C
  • fasthttploader - 基于 fasthttp 库的具有自动调整和图表的基准(有点 ab),用 Go 编写(golang
  • fortio – 负载测试库和命令行工具以及 Web UI。允许指定设置的每秒查询负载并记录延迟直方图和其他有用的统计信息,用 Go (golang)编写
  • gatling – 基于 Scala、Akka 和 Netty 的高性能负载测试框架,写入Scala
  • go-wrk – 一个基于优秀 wrk 工具 (wg/wrk)的 HTTP 基准测试工具,用 Go (golang)编写
  • goad – Goad 是一个 AWS Lambda 驱动的、高度分布式的负载测试工具,用 Go (golang)编写
  • gobench – HTTP/HTTPS 负载测试和基准测试工具,用 Go (golang)编写
  • gohttpbench类似ab基准测试工具运行在多核 cpu 上,用 Go (golang)编写
  • hey – HTTP(S) 负载生成器,ApacheBench (ab) 替代品,以前称为rakyll/boom,用 Go (golang)编写
  • htstress – 多线程高负载基准测试服务(> 5K rps),写在C/Linux
  • httperf - 配置困难,缓慢且单线程,编写C
  • inundator – 一个简单的高吞吐量 HTTP 洪水程序,用C/编写Linux
  • jmeter – Apache JMeter™,纯应用程序,旨在对静态和动态资源的性能进行负载测试,编写Java
  • locust – 易于使用的分布式负载测试工具,具有实时 Web UI。模拟一群并发用户,每个用户的行为由您的 Python 代码定义。写在Python
  • mgun – 一种现代的 HTTP 服务器负载测试工具,用 Go (golang)编写
  • 突袭-事件触发,但结果出现波动,它有时比快htstress,写在C
  • siege - 缓慢且单线程,用C
  • slapper - 简单的负载测试工具,具有实时更新的请求时序直方图,用 Go (golang)编写
  • slow_cooker – 一个负载测试器,专注于生命周期问题和长时间运行的测试,服务具有可预测的负载和并发级别很长一段时间,用 Go (golang)编写
  • sniper – 用 Go (golang)编写的强大且高性能的 http 负载测试器
  • -为了测试基于IP的客户机/服务器应用程序的可伸缩性和性能模拟应力用户HTTPWebDAVSOAPPostgreSQLMySQLLDAPJabber/XMPP服务器,写在Erlang
  • vegeta – HTTP 负载测试工具和库,用 Go (golang)编写
  • weighttp – 多线程,但比没有 keepalive 的 htstress 慢,写在C
  • wrk – 多线程~~,但不提供并发连接和保活开关~~,写在C/Lua
  • wrk2 – 恒定吞吐量,正确的wrk延迟记录变体,写入C/Lua

    Concurrent connections are enabled with:
      -c, --connections <N>  Connections to keep open
    And keepalive (which is default) can be disabled using:
      -H "Connection: close"
    
    Run Code Online (Sandbox Code Playgroud)
  • yandex-tank – 负载和性能基准测试工具,用Python/C|C++|Asm( phantom )编写

用于测试/调试 HTTP(S) 和 restAPI (RESTful) 的工具包

  • bat – Go 实现 CLI,类似 cURL 的人类工具,用 Go (golang)编写
  • curl – 功能强大的命令行工具,用于传输使用 URL 语法指定的数据,以C
  • curlconverter – 将 curl 命令转换为 python、javascript、php
  • httpie – 客户端,用户友好的 curl 替换,带有直观的 UI,JSON 支持,语法高亮,类似 wget 的下载,扩展,用Python
  • jq – 是一个轻量级、灵活的命令行 JSON 处理器,用C

SaaS/PaaS

  • BlazeMeter – 在整个产品开发生命周期中为整个技术团队(开发人员、devops、ops 和 QA)提供跨企业的测试自动化框架。对 API、移动应用程序和网站运行连续或“按需”测试。从云端、内部部署或作为混合解决方案运行。与 JMeter 和 Selenium WebDriver 一起使用并与您现有的 CI、CD 和 APM 工具集成。
  • NewRelic – 开发人员、运维人员和软件公司使用的软件分析工具套件来了解您的应用程序在开发和生产中的表现
  • NGINX Amplify – 直观地识别性能瓶颈、过载的服务器或潜在的 DDoS 攻击。通过智能建议和建议改进和优化 NGINX 性能。当您的应用程序交付出现问题时收到警报。规划 Web 应用程序的容量和性能。跟踪运行 NGINX 1的系统

链接

来源:https : //github.com/denji/awesome-http-benchmark