質問: 1日に1,000万のリクエストとmysqlクエリを処理するには、どのようなサーバーが必要ですか? 私はサーバー管理の初心者です。新しいwebサイトをホストする強力なホスティングサービスを探しています。このwebサイトは基本的にモバイルオンラインゲームのバックエンドであり、次のことを行います。 1日に最大1,000万のhttpsリクエストとmysqlクエリを処理する ハードディスクに最大2000 gbのファイルを保存 おそらく月あたり5000 gbのデータの送受信 phpおよびmysqlで実行されます mysqlデータベースに1000万のレコードがあり、各レコードには5〜10のフィールドがあり、それぞれ約100バイトです。 これらの要件を処理するために必要なサーバーの種類が本当にわかりません。私の質問は次のとおりです。 専用サーバーまたはvpsにはどのcpu/ramが必要ですか? この種の専用サーバーまたはvpsを提供できるホスティング会社は何ですか? クラウドコンピューティングはどうですか?私はamazon ec2を調査しましたが、それは私には複雑なようです。そして、私はrackspaceに連絡しましたが、奇妙なことに、cloudsitesは私の要件に適していないと彼らは言いました。他にクラウドホスティング会社はあるのかな。 他の代替方法はありますか?
回答: 役立つかもしれない私の経験のいくつかを追加するには: tomtomが述べたように、多くの場合、アプリケーションの設計と実装に依存するため、正確な仕様を指定することは困難/不可能です。私または他の誰かにxリクエスト/秒を与えるハードウェアは、あなたにはうまく機能しないかもしれません。 ローエンドの専用mysqlサーバー(intel core2 duo e4600 2.40 ghz、4 gb ram)を使用しており、cpuアイドル率が90%で、平均100リクエスト/秒(1日あたり1000万近く)に対応しています。構成へのいくつかの基本的な調整を除いて、読み取りは重いため(+ 95%読み取り)、アクティブなレコードセットはメモリに簡単に格納できるため、うまく動作しています。サーバーの量を選択するときは、アクティブセットのサイズを考慮してくださいramこれは大きな違いを生む可能性があります。データベースのサイズとアクティブなレコードセットのサイズの違いを理解してください。たとえば、私のデータベースの合計は約7gbですが、アクティブセットはたった数百mbです。 同様に、1日あたり約100万件のリクエストに対応する同様の仕様のapacheサーバーを使用しており、平均で約95%のcpuアイドル率があります。リクエストは非常に単純な地図データajaxクエリとより複雑なmediawikiページの組み合わせです。 特定のアプリケーションのベンチマークは、必要なものを正確に判断するための良いスタートです。見積もりを下回る必要はありませんが、お金と労力を浪費する可能性があるため、見積もりを立てすぎると同様に悪い結果になることがあります。 平均リクエストレートだけでなく、ピークレートも考慮してください。リクエストレートは日、週、月によって大幅に変化する可能性があるため、平均レートをほとんど処理できないサーバーは望ましくありません。たとえば、週末のピーク時のトラフィックは、平日の最短時間の3〜4倍になります。どの程度変化するかは、アプリケーションとユーザーベースによって異なります。 データベース/ httpリクエストをキャッシュできますか?これにより、キャッシュできる量に応じて、ハードウェアがより安く/より少なくなり、リクエストレートが大幅に向上します。 将来の成長に備えて、後でではなく今すぐスケーリングオプションを検討してください。最適なオプションは、最小限のハードウェアから始めて必要に応じて簡単に拡張できる水平スケーリングを使用することです。 アプリケーション層の適切な設計は、その最終的なパフォーマンスに大きな影響を与える可能性があります。インデックスのないテーブルでの不正なsqlクエリは、適切に設計されたクエリよりも桁違いに遅い場合があります。同様に、設定が不十分なapache/mysqlサーバーは、正しく設定されている場合よりも何倍も遅くなる可能性があります。