【Linux】ApacehBenchを使ってみる

ApacehBenchでの負荷テストをやったので、忘れないうちに覚えておかないといけないことはメモっておこうね。

-nが合計リクエスト数、-cが平行する処理数。なので、以下の場合100リクエストを10列並行して投げる。

FailedRequestが0であれば、処理しれきれていること。
だんだん、並列数、リクエスト数を増やしていき、FailedRequestが発生してきたタイミングが現状での限界。
なので、ミドルウェアのエラーログやアプリケーションログを見始める必要があるよ。

ちなみに、1番最初のリクエストで取得したサイズをそれ以降のリクエストを照合し、サイズが同じならComplete、違った場合Failedとなるらしい。
なので、リクエストごとにサイズが変化するページをテストする場合は、サーバ内のアクセスログがすべて200で処理されていることを確認する必要があるみたい。

その他にも、
・httpdをインストールすれば、バンドルされてる
・「https」は非対応?
・abコマンドを実行するマシンのスペックにも左右される
・ネットワーク的に近いマシンから実行するほうが、障害となる要因がすくないので、より現実的なテストになる(と思う)
・Windows用のApacehBenchはとてつもなく遅い気がするので、全然並列してくれていない(が、WSLからなら普通に早かった)
・社内NWからとかは怒られちゃうからやめようね

このようなメッセージが出力されるときは、プロセスがオープンできるファイルディスクリプタの上限にあたってしまっているということ。
上限まできているのは、abコマンドを実行しているマシン。相手先ではないよ。

なので、上限をulimitコマンドで増やしてあげる。

3 thoughts on “【Linux】ApacehBenchを使ってみる

  1. 負荷テストは、シナリオの立て方によって、想定した運用と違う負荷をかけてしまい、判断を誤る場合がよくあります。
    たとえば、1000人が同時アクセスして、入力して、処理を実行する、といった場合、入力画面がひらいたら、すぐにリクエストを投げるというシナリオを組んでしまうと、想定より高い負荷をかけてしまうことになります。

    また、リクエストごとにサイズが変化するページをテストする場合は、他の負荷テストツールを用いたほうがよいかもしれないですね。

    1. あと、忘れてましたが、httpsにリクエストを投げるときは、absコマンドを使いますので、それでいけるかと。

      1. ありがとうございます!なるほど勉強になります。
        absっていうhttps対応のもあるんですね。参考にさせていただきます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*