10

包囲ユーティリティを使用して、サーバーの高負荷耐性をテストしようとしています。

包囲 http://my.server.ru/ -d1 -r10 -c100

Siege は次のような多くのメッセージを出力します:

HTTP/1.1 200 0.46 秒: 10298 バイト ==> /

ただし、次のようなエラー メッセージが表示されることがあります。

エラー: ソケット: sock.c:220 に接続できません: 接続がタイムアウトしました

またはこれ:

警告: ソケット: -598608128 選択タイムアウト: 接続がタイムアウトしました

テスト後の包囲レポートがあります。

トランザクション: 949 ヒット
可用性: 94.90 %
...
成功したトランザクション: 949
失敗したトランザクション: 51
最長トランザクション: 9.87
最短取引: 0.37

私のサーバーのnginxログでは、コード200の950メッセージのみで、応答は問題ありません。

"GET / HTTP/1.1" 200 10311 "-" "JoeDog/1.00 [en] (X11; I; Siege 2.68)"

これが何を意味するのか誰か教えてくれませんか

エラー: ソケット: sock.c:220 に接続できません: 接続がタイムアウトしました
警告: ソケット: -598608128 選択タイムアウト: 接続がタイムアウトしました

nginx ログにコード 200 の応答しか表示されないのはなぜですか?

4

1 に答える 1

5

おそらく、パイプがいっぱいで、それ以上の接続を処理できないことを意味します。パイプがいっぱいの場合、nginxまたはnginxバックエンドがより多くの接続を受け入れるようにすることはできません。ローカルホストに対してテストしてみてください。次に、スタックとパイプではなく、スタックをテストします。実際の負荷に似ていませんが、より大きなパイプで何を処理できるかがわかります。

于 2012-03-07T21:09:28.263 に答える