DDO/SlashDottingをシミュレートする方法は?
質問
そのため、トラフィックの高いウェブサイトを使用してより多くの経験を積んでみたいと思いますが、残念ながらインターネットは私のブログへのドアを打ち負かしていません。
ブログで毎秒/数百ヒットをシミュレートし、そのパフォーマンスをテストするにはどうすればよいですか?共有サーバーでSSHアカウントを使用してブログをホストしています。
解決
次のようなツールを使用して、多くのリクエストをサーバーに送信できます。
最初のABであるABは、単一のURLに多くのリクエストを送信することのみを可能にします。これは、単一のスクリプト /ページのベンチマークに最適です。しかし、あなたのウェブサイトを閲覧するユーザーの本当のパターンを反映していません (たとえば、CSS/JS/画像が読み込まれません).
2番目のSiegeを使用すると、テキストファイルで指定されたURLのリストにリクエストを送信できます。 (そのためのプロキシがあります) それほど悪くないテストを取得します。
また、3番目のJmeterでは、より複雑なシナリオを作成できます。
それはより複雑で、それを使用するのに少し時間が必要です - しかし、それはおそらくあなたに最高の結果をもたらすものです。
他のヒント
http(s)ベンチマークツール、テスト/デバッグ、&retapi(restful)
アルファベット順に位置する(好まない)
HTTP(S)ベンチマークツール
- ab - ゆっくりと単一のスレッド、書かれています
C
- apib - Apachebenchの機能のほとんど(
ab
)、aとしても設計されています より近代的な代替品, 、 で書かれているC
- バルー - 表現力豊かなエンドツーエンドのHTTP APIテストは簡単に作成され、GOで書かれています(
golang
) - バトン - httpロードテスト、go(
golang
) - ボンバルディア - go(
golang
) - カールローダー - さまざまなアプリケーションサービスとトラフィック生成のパフォーマンス負荷、
C
- fastttploader - fastttpライブラリに基づいた自己調整とチャートを使用したベンチマーク(ちょっとAB)、go(
golang
) - フォルティオ - ライブラリとコマンドラインツールとWeb UIをロードする。セットクエリあたりのセットクエリを1秒あたりの負荷とレコードレイテンシヒストグラムやその他の有用な統計を指定できます。
golang
) - ガトリング - Scala、Akka、Nettyに基づいた高性能負荷テストフレームワーク、書き込み
Scala
- go-wrk - 優れたWRKツールに基づいたSpiritに基づいたHTTPベンチマークツール(
wg/wrk
)、goで書きます(golang
) - ゴード - Goadは、AWS Lambdaを搭載し、高度に分布している荷重テストツールです。
golang
) - ゴーベンチ - http/httpsロードテストとベンチマークツール、go(
golang
) - gohttpbench –
ab
- マルチコアCPUで実行されるベンチマークツールのように、Go(golang
) - おい - http(s)ロードジェネレーター、apachebench(
ab
)以前は知られていた交換 Rakyll/Boom, 、goで書かれています(golang
) - htstress - マルチスレッドハイロードBehmarkingサービス(> 5K RPS)、
C
/Linux
- httperf - 困難な構成、スローとシングルスレッド、で書かれている
C
- Inundator - で書かれたシンプルでハイスループットHTTPフラッドプログラム
C
/Linux
- jmeter - Apache Jmeter™、静的リソースと動的リソースの両方でテストパフォーマンスをロードするように設計された純粋なアプリケーション、
Java
- イナゴ - リアルタイムWeb UIを使用した使いやすい分散荷重テストツール。同時のユーザーの群れをシミュレートすると、それぞれの動作はPythonコードによって定義されます。で書かれている
Python
- mgun - goで記述された荷重テストHTTPサーバーの最新のツール(
golang
) - 騒ぎます - イベントがありますが、結果は変動しますが、時にはより速くなります
htstress
, 、 で書かれているC
- 包囲 - ゆっくりと単一のスレッド、書かれています
C
- スラッパー - GOで記述されたリクエストのリクエストタイミングのリアルタイム更新ヒストグラムを備えた単純な負荷テストツール(
golang
) - slow_cooker - ライフサイクルの問題と長期にわたるテストに焦点を当てた負荷テスター、予測可能な負荷レベル、長期間の並行性レベル、Go(
golang
) - 狙撃兵 - Go(
golang
) - Tsung - IPベースのクライアント/サーバーアプリケーションのスケーラビリティとパフォーマンスをテストするために、ストレスユーザーをシミュレートする
HTTP
,WebDAV
,SOAP
,PostgreSQL
,MySQL
,LDAP
とJabber
/XMPP
インで書かれたサーバーErlang
- ベジータ - 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"
- yandex-tank - 書き込まれたロードおよびパフォーマンスベンチマークツール
Python
/C|C++|Asm
(ファントム)
テスト/デバッグhttp(s)とrectapi(restful)のためのツールキット
- バット - Go(go)で書かれた人間のためのカールのようなツール、CLIを実装します(
golang
) - カール - 強力な機能URL構文で指定されたデータを転送するためのコマンドラインツール、
C
- カールコンバーター - カールコマンドをPython、JavaScript、PHPに変換します
- httpie - 直感的なUI、JSONサポート、構文ハイライト、WGETのようなダウンロード、拡張機能、書かれたクライアント、ユーザーフレンドリーなカール交換
Python
- JQ - で書かれた軽量で柔軟なコマンドラインJSONプロセッサです
C
saas/paas
- Blazemeter - 製品開発ライフサイクル全体で、テクニカルチーム(開発者、DevOps、OPS、QA)全体にエンテルプライズテスト自動化フレームワークを提供します。 API、モバイルアプリ、Webサイトの継続的または「オンデマンド」テストを実行します。クラウド、オンプレミス、またはハイブリッドソリューションとして実行します。 Jmeter&Selenium WebDriverで使用し、既存のCI、CD、APMツールと統合します。
- NewRelic - 開発者、OPS、およびソフトウェア会社が使用するソフトウェア分析ツールスイートの開発と生産でアプリケーションがどのように機能しているかを理解するために
- nginx Amplify - パフォーマンスのボトルネック、過負荷のサーバー、または潜在的なDDO攻撃を視覚的に識別します。インテリジェントなアドバイスと推奨事項を使用して、NGINXパフォーマンスを改善および最適化します。アプリケーションの配信に何か問題がある場合は、アラートを取得します。 Webアプリケーションの容量とパフォーマンスを計画します。 Nginxを実行しているシステムを追跡します 1
リンク
- マルチメカイズ|パフォーマンステストフレームワーク
- パフォーマンステストツールリスト
- REST APIクライアント - シンプルで美しく、無料のREST APIクライアント(
Mac
,Windows
, 、 とLinux
)
ソース: https://github.com/denji/awesome-http-benchmark
ABのような明白なツールとは別に、あなたは次のようなものを見てみたいと思うかもしれません Tsung -Erlangベースの負荷テストジェネレーター。素晴らしい機能の1つは、分散型の負荷テストを実行できることです(つまり、トラフィックの生成を多数のマシンで分割することです)。
Jmeterを使用して、Webアプリケーションをロードテストします。それはあなたが探していることをするかもしれません。
アパッチベンチ 簡単で簡単です。がある たくさんのチュートリアル.