web-dev-qa-db-ja.com

私のウェブサーバーはいくつのリクエストを処理できますか?

私はこれについての本当の答えがないことを知っているので、仕様の詳細には入りません。しかし、私は今日、Apacheのabコマンドを使用して負荷テストを行っています。

また、4つの異なるDBテーブルから読み込み、データを操作しているページで、1秒あたり70リクエスト(100同時ユーザーで1000リクエスト)の数に達しました。そのため、かなり重いページです。

サーバーは今のところ他の何にも使用されておらず、開発中であるため、サーバーへの負荷は私だけです。しかし、アプリケーションは多くのユーザーによって毎日使用されます。

しかし、これで十分ですか?または心配する必要があります(Xリクエストが1秒を超えている限り)

私は心配する必要はないと思いますが、これについていくつかのヒントをお願いします。

41
Ólafur Waage

1秒あたり70リクエストは、毎時252,000ページレンダリング/時間の割合で機能します。

サイトの平均ブラウジングセッションが10ページの深さであると想定した場合、25,000ユニーク/時間をサポートできます。

あなたはおそらくビジネス側の人々から入手できるはずの予想される訪問者数に対してこれらの数をチェックするべきです。

私が取り組んでいるサイトの多くは、毎日およそ3時間のピーク期間で、毎日のトラフィックの約50%を占めています。これがサイトに当てはまる場合(提供するコンテンツの種類、および対象ユーザーによって異なります)、1日あたりのユニーク訪問数が約150,000になることをサポートできるはずです。

これらはかなり良い数字です。大丈夫だと思います。オペコードのキャッシングとデータベースのチューニングを検討するのが賢明ですが、時期尚早な最適化がすべての悪の根源です。サイトを監視し、ホットスポットを探して、トラフィックが増大するのを待ってから、発生しない可能性のある問題に対して費用のかかる最適化作業を行ってください。

45
Tim Howland

私は過去に2つのツールを使用してApacheサーバーのパフォーマンスを監視しました

1つはmuninであり、Apacheインスタンスの数、接続の数、使用可能なメモリ、プロセッサの使用状況など、あらゆる種類のグラフが表示されます、など-そして、危険ゾーンに近づいている時期とその理由を判断するのに役立ちます。

2つ目は単にApache server-status pagehttp:// your_server/server-status?refresh = 1 )これにより、各接続の状態と、現時点で利用可能な空き接続の数を確認できます。

6
Brent

アプリが地面に落ちたときに非常にビジーになると思われる場合にのみ、心配することをお勧めします。問題のページはそんなにヒットする可能性がありますか?もっと強く?もっと少なく?わからない場合は、それが以前の問題になる可能性は低いと思います。最も遅いページの場合、後でシステムを最適化する必要があるかどうかを確認する場所が1つわかります。

また、ほとんどのWebサーバーとデータベースエンジンをチューニングして、より多くのパフォーマンスを引き出すためにできることがたくさんあります。

1
acrosman

サイトをライブにすると、mod_top 1 も確認できます。これにより、Apacheの現在の負荷をリアルタイムで確認できます。私自身はインストールしていませんが、標準のApacheサーバーのステータスよりも多くの情報があり、負荷の内訳が優れているようです。

0

空のページでサーバーが1秒あたり2,900件のリクエストを処理できるとコメントで述べています。これは、Webサーバー自体ではなく、処理であることを強く示しています。

PHPを使用している場合は、 [〜#〜] apc [〜#〜] のようなオペコードキャッシュを検討してください。 DBがボトルネックである場合は、 memcached も役立ちます。

0
ceejayoz