21

ですから、トラフィックの多いWebサイトでの作業をもっと経験したいのですが、残念ながらインターネットは私のブログへの扉を打ち負かしていません。

ブログで毎秒数十/数百のヒットをシミュレートし、そのパフォーマンスをテストするにはどうすればよいですか?共有サーバーでSSHアカウントを使用してブログをホストしています。

4

5 に答える 5

17

次のようなツールを使用して、サーバーに多くのリクエストを送信できます。


最初のabは、単一のURLに大量のリクエストを送信することしかできません。これは単一のスクリプト/ページのベンチマークに最適です。ただし、Webサイトを閲覧しているユーザーの実際のパターンは反映されていません(たとえば、CSS / JS /画像は読み込まれません)

2番目のsiegeを使用すると、テキストファイルで指定されたURLのリストにリクエストを送信できます。URLのリストを適切に構築すると(そのためのプロキシがあります)、それほど悪くないテストが行​​われます。

そして3番目のJMeterを使用すると、より複雑なシナリオを作成できます。
これはもっと複雑で、使用するには少し時間が必要ですが、おそらくそれが最良の結果をもたらすでしょう。

于 2011-03-19T22:56:50.837 に答える
6

HTTP(S)ベンチマークツール、テスト/デバッグ、およびrestAPI(RESTful)

アルファベット順に配置(好ましくない)

HTTP(S)ベンチマークツール

  • ab –低速でシングルスレッド、で書かれているC
  • apib – ApacheBench()のほとんどの機能は、より現代的な代替品abとしても設計されており、C
  • バルー–表現力豊かなエンドツーエンドのHTTP APIテストが簡単になり、Go(golang
  • batongolang – Go( )で記述されたHTTP負荷テスト
  • bombardier – Go(golang
  • curl-loader –さまざまなアプリケーションサービスのパフォーマンスローディングとトラフィック生成。C
  • fasthttploader – fasthttpライブラリに基づく自動調整とチャートを備えたベンチマーク(ちょっとab)、Go(golang
  • fortio –負荷テストライブラリとコマンドラインツールおよびWebUI。設定された1秒あたりのクエリの負荷を指定し、レイテンシヒストグラムやその他の有用な統計を記録し、Go(golang
  • ガトリング– Scala、Akka、Nettyに基づく高性能負荷テストフレームワーク、書き込みScala
  • go-wrk –優れたwrkツール()に基づいたHTTPベンチマークツール。Go()wg/wrkで記述します。golang
  • goad – Goadは、AWS Lambdaを利用した、高度に分散された負荷テストツールであり、Go(golang
  • gobench – HTTP / HTTPS負荷テストおよびベンチマークツール、Go(golang
  • gohttpbenchabマルチコアCPUで実行されるベンチマークツールのように、Goで書き込みます(golang
  • ねえ– HTTP(S)ロードジェネレーター、ApacheBench(ab)置換、以前はrakyll / boomと呼ばれ、Go(golang
  • htstress –マルチスレッドの高負荷ベンチマークサービス(> 5K rps)、C/Linux
  • httperf –難しい構成、低速でシングルスレッド、で書かれているC
  • 氾濫器C– /で書かれたシンプルで高スループットのHTTPフラッドプログラムLinux
  • jmeter – ApacheJMeter™、静的リソースと動的リソースの両方でテストパフォーマンスをロードするように設計された純粋なアプリケーション。Java
  • イナゴ–リアルタイムのWebUIを備えた使いやすい分散負荷テストツール。同時ユーザーの群れをシミュレートします。各ユーザーの動作はPythonコードによって定義されます。で書かれているPython
  • mgungolang – Go( )で記述されたHTTPサーバーの負荷テスト用の最新ツール
  • パウンス–イベントが発生しましたが、結果は変動htstressC
  • 包囲–低速でシングルスレッド、で書かれたC
  • slappergolang – Go( )で記述された、要求タイミングのリアルタイム更新ヒストグラムを備えたシンプルな負荷テストツール
  • slow_cookergolang –ライフサイクルの問題と長期にわたるテストに焦点を当てた負荷テスター。Go( )で記述された、予測可能な負荷と同時実行レベルのサービスを長期間提供します。
  • snipergolang – Go( )で記述された強力で高性能なhttpロードテスター
  • tsung – IPベースのおよび/HTTPのスケーラビリティとパフォーマンスをテストするためにストレスユーザーをシミュレーWebDAVSOAPします。PostgreSQLMySQLLDAPJabberXMPPErlang
  • vegetagolang – Go( )で記述されたHTTP負荷テストツールとライブラリ
  • weighttp –マルチスレッドですが、キープアライブなしの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 –負荷とパフォーマンスのベンチマークツール。/(ファントム)で記述されPythonC|C++|Asmます

HTTP(S)およびrestAPIをテスト/デバッグするためのツールキット(RESTful)

  • bat – Goは、Goで記述された人間向けのcURLのようなツールであるCLIを実装します(golang
  • curl –URL構文で指定されたデータを転送するための強力な機能コマンドラインツールC
  • curlconverter – curlコマンドをpython、javascript、phpに変換します
  • httpie –クライアント、直感的なUI、JSONサポート、構文の強調表示、wgetのようなダウンロード、拡張機能を備えたユーザーフレンドリーなcurl置換、Python
  • jq –軽量で柔軟なコマンドラインJSONプロセッサであり、C

SaaS / PaaS

  • BlazeMeter –製品開発ライフサイクル全体を通じて、技術チーム全体(開発者、DevOps、運用、QA)に企業間テスト自動化フレームワークを提供します。API、モバイルアプリ、ウェブサイトの継続的または「オンデマンド」テストを実行します。クラウドから、オンプレミスで、またはハイブリッドソリューションとして実行します。JMeterおよびSeleniumWebDriverで使用し、既存のCI、CD、およびAPMツールと統合します。
  • NewRelic –開発者、運用会社、ソフトウェア会社が開発と本番環境でのアプリケーションのパフォーマンスを理解するために使用するソフトウェア分析ツールスイート
  • NGINX Amplify –パフォーマンスのボトルネック、サーバーの過負荷、または潜在的なDDoS攻撃を視覚的に識別します。インテリジェントなアドバイスと推奨事項を使用して、NGINXのパフォーマンスを改善および最適化します。アプリケーションの配信に問題がある場合にアラートを受け取ります。Webアプリケーションの容量とパフォーマンスを計画します。NGINX1を実行しているシステムを追跡する

リンク

出典:https ://github.com/denji/awesome-http-benchmark

于 2018-03-09T21:08:34.727 に答える
2

abのような明らかなツールとは別に、アーランベースの負荷テストジェネレーターであるtsungのようなものを見てみることをお勧めします。優れた機能の1つは、分散負荷テストを実行できることです(つまり、トラフィック生成を複数のマシンに分割します)。

于 2011-03-19T23:07:49.187 に答える
2

私はjmeterを使用してWebアプリケーションの負荷テストを行っています。それはあなたが探していることをするかもしれません。

http://jmeter.apache.org/

于 2011-03-19T22:56:49.263 に答える
0

Apacheベンチは簡単で簡単です。チュートリアルはたくさんあります。

于 2011-03-19T22:57:52.197 に答える