こんにちは、habravchane。
数か月前、ポータルの1つであるタタールの出会い系サイトが夕方の負荷に耐えなくなり、バカになったときが来ました。 オンラインのユーザー数は1800人に達し、1日あたり5万人以上の参加者がありました(2万人以上) ポータルは1つの専用サーバーでホストされていました。 分析中に、プロセッサだけでなく、ディスクサブシステム全体も対処できないことがわかりました。 次に何をするかを決める必要がありました。
来年、登録ユーザーの少なくとも半数の増加と、それに対応する出席者と作業負荷の増加が計画されました。 現時点では、データベースのサイズは約15 GBでした。
ポータルは、MS SQL Server 2008 R2 DBMSと組み合わせてASP.NETで作成されました。
現在のサーバーの構成は次のとおりです。プロセッサー-Intel Core Quad 9550(12MBキャッシュ)、4 GBのメモリー、2つのディスク-7200 rpmのサーバーWD。
ディスクサブシステムの問題は単純に解決されました-90ギガバイトのSSDディスクを購入し、その上に写真を置くと、現時点では約40ギガバイトになります(サーバーでSSDを使用した経験については別の投稿を書くことができます)。
2番目のプロセッサ関連の問題は、データベースを追加のサーバーに移動することで解決できます。 予算は非常に限られていたため(約2500ドル)、購入せずに自分でサーバーを組み立てたほうが収益性が高いと判断しました。 十分な信頼性を維持しながら、このお金のためにできるだけ多くの電力を絞り出すことが必要でした。
サーバーの構成と構築の両方の経験があるため、4つの高速ディスクを備えた2プロセッササーバーで停止することにしました。
サーバープラットフォーム(4つのホットスワップディスクと2つのプロセッサをサポートする最も安価なプラットフォーム):
Tyan GT20B7002-1ユニット〜700ドル、
プロセッサー(1366ソケットの下):
Intel「Xeon E5620」-2個〜760ドル(1個あたり380ドル)、
ハードドライブ(SASの予算では使用できず、SSDではデータベースサーバーの使用をあえてしませんでした):
WD "VelociRaptor WD1500HLFS"-4ユニット〜480ドル(ユニットあたり120ドル)、
メモリ:
2 Gb ECCキングストン-8個〜$ 540
次に、アセンブリの写真レポートと、いくつかのテスト:
プロセッサー、メモリー、ドライブ
すべてを組み立てる準備ができました
ディスクをインストールして実行します。
アセンブリの後、負荷のかかったサーバーを数日間テストし、ディスクをチェックして、それらをソフトウェアRAID 1にマージしました2。最初のRAIDはシステムとログ、2つ目はデータです。 ハードウェアRAID 10ですぐに聞いてみませんか? はい、このプラットフォームのマザーボードのBIOSを理解していないためです。 そこでは、どういうわけか明らかではありません。
MS SQL Server 2008R2 Standardをインストールしました。 さらに、彼は別のプロジェクトのベース(25 GB)をわずかに少ないトラフィック(1万ホスト、最大800オンライン)で配置しました。 以下は、ピーク時間(夕方、19〜22時間)の負荷を示すグラフです。
ここで約2500人のユーザーがオンラインになっていることに注意してください(登録された総数は約17万人)。
結論として、サーバーは非常に満足しており、私の期待に応えてコストを削減したことに注意してください。サーバーのレンタルは完全に拒否しました。 データベース自体をわずかに最適化する必要があります。そのようなアーキテクチャは、数十万人の登録ユーザーで1万オンラインに耐えます。
UPD:写真をファイルシステムに保存します。