パフォーマンスと負荷テストをバランスするツール

あなたのアプリケーションは本当に高速で、拡張可能ですか?どうすれば、それが分かるでしょうか?パフォーマンスや負荷のテストを、どれくらいの頻度で行っていますか?この投稿では、
Web アプリケーションのパフォーマンスと負荷テストをバランスするツールの概要を紹介します。

オープンソースのパフォーマンステストツール
こうしたツールでは、無料でアプリケーションの負荷をテストできます。私のお気に入りは、「Bees with Machine Guns」です。
単に名前のためでなく、主に Amazon の EC2 を使って、ハイレベルの並列性を容易に生み出せるからです。
Bees with Machine Guns – ターゲット (web アプリケーション) を攻撃するたくさんの蜂 (マイクロ EC2 インスタンス) を退治する武装 (負荷テストの作成) のためのユーティリティです

MultiMechanize – Multi-Mechanize は、パフォーマンスと負荷をテストするためのオープンソースのフレームワークです。 並列 Python スクリプトを実行して、

リモートのサイトやサービスに対する負荷を生成します (合成トランザクション)。Multi-Mechanize は、
最も広く使われているweb のパフォーマンスおよび拡張性のテストですが、 Python からアクセス可能なリモート API に対するワークロードを生成するためにも使えます。
Siege – Siege は http の負荷テストであり、ベンチマークのユーティリティです。web 開発者が、強制のもとでコードを測定し、
インターネットでの負荷にどのように対処できるかを知ることができるように設計されています。Siege は、基本的な認証、クッキー、HTTP および HTTPS のプロトコルをサポートしています。 これを使うと、
設定可能な数の Web ブラウザで Web サーバーにアクセスするシミュレーションを行うことができます。ブラウザは、サーバーを “siege の下に” 配置することになります。
HttpPerf – Httperf は web サーバーのパフォーマンスを測定するツールです。さまざまな HTTP の作業負荷を生成し、
サーバーのパフォーマンスを測定できる柔軟な機能を提供します。httperf が、フォーカスしているのは、特定のベンチマークを実装することだけでなく、マイクロレベルとマクロレベルの両方でベンチマークを構築できる、
堅実で高性能なツールを提供することです。3 つの際立っている
httpperf の特徴は、サーバーの過負荷を生成、維持できる機能を含めた確実性、
HTTP/1.1 および SSL プロトコルのサポート、新しいワークロードジェネレータやパフォーマンス測定に関する拡張性です。
Apache Bench – AB は Apache HTTP サーバーのためのベンチマーキングのツールです。Apache の性能を把握できるように設計されています

JMeter – Apache JMeter は、静的および動的の両方のリソース (ファイル、Servlets、Perl スクリプト、 Java オブジェクト、データベースやクエリ、FTP サーバー、その他)
に関するパフォーマンスをテストするために使用されます。サーバー、ネットワーク、オブジェクトなどへの高い負荷をシミュレーションして、強度をテストしたり、
さまざまなタイプに対する負荷の下での全体的なパフォーマンスを分析するのに使用されます。このツールを使うと、パフォーマンスをグラフィカルに分析したり、サーバー/スクリプト/オブジェクトの挙動を、
並列性が高い状況でテストしたりすることができます。

サービスとしてのパフォーマンステストツール
こうしたサービスを通じて、パフォーマンステストを構築、実行、分析することができます。
Apica Load Test – Web やモバイル向けアプリケーションのためのクラウドベースの負荷テスト
Blitz.io – Blitz では、世界中のどこからでも、アプリを 24×7 でモニターできます。シングルユーザーであれ、何百ものユーザーであれ、終日中、毎日、エミュレーションを行って、
何かがおかしければ、すぐに通知することができます。
Soasta – 単一の強力で、直観的なプラットフォームで、パフォーマンステストを構築、実行、分析することができます。
Blazemeter – BlazeMeter は、セルフサービスによるパフォーマンスおよび負荷のテストクラウドであり、 JMeter と 100% 互換です。 30k、50k、80k、あるいはもっと多くの並列ユーザーでのテストを、
オンデマンドで簡単に実行できます。

クライアントサイドでのパフォーマンステスト
Googleで Web パフォーマンスに関するベストプラクティスで始められる最高の場所です。
Google PageSpeed Insights – PageSpeed Insights は、web ページの内容を分析し、
そのページをより高速にするための推奨を与えます。ページのロード時間を短縮することで、直帰率を下げ、コンバージョンレートを上げることができます。
Google ngx_pagespeed – ngx_pagespeed は、サイトを高速化し、ページのロード時間を短縮します。このオープンソースの nginx サーバーモジュールは、既存のコンテンツやワークフローを修正することなく、web パフォーマンスに関するベストプラクティスを自動的にページや、
関連するアセット (CSS、 JavaScript、画像など) に適用します

Google ngx_pagespeed – ngx_pagespeed は、サイトを高速化し、ページのロード時間を短縮します。このオープンソースの Apache HTTP サーバー
モジュールは、 既存のコンテンツやワークフローを修正することなく、web パフォーマンスに関するベストプラクティスをページや、関連するアセット (CSS、JavaScript、画像など)
に自動的に適用します。

Web 加速サービス
シンプルな DNS の変更で、貴社のウェブサイトのトラフィックを、これらのサービスを通じてルーティングすることが可能であり、コンテンツを最適化して、グローバルにキャッシュすることで、
より良いパフォーマンスを達成できます。これこそ、最小の努力で、簡単にパフォーマンスを改善できる素晴らしい方法です。
Yottaa – オールインワンの web 最適化ソリューションで、スピード、スケール、セキュリティ、ならびにウェブサイトに関する対処可能な洞察を提供します。
Cloudflare – 無料および商用のクラウドベースのサービスで、セキュアで高速化されたウェブサイトを実現します。
Torbit – Torbit は、ウェブサイトのパフォーマンスの正確な測定や、速度が収益に与える影響の定量化に役立ちます。
Incapsula – Incapsula は、あらゆる規模のウェブサイトの先進的なセキュリティやパフォーマンスを提供します。

推奨記事
John Allspaw 氏の著作による、キャパシティプランニングと運用トラフィックの準備に関するこの偉大な一冊は、キャパシティプランニングのアートです。John
Allspaw 氏は、Flickr のスケーリングに関する自らの経験に基づいて、この本を書きました。
いつものように、私が見逃しているかもしれない何かについてのご意見、あるいは予定している投稿へのリクエストがございましたら、遠慮なくコメントをください。