新しいMIT CPUロードバランサー

Shenangoシステムは、データセンターで使用する予定です。




/写真マルコ・ヴェルチ CC BY



プロバイダーの1つによると、データセンターは利用可能なコンピューティング能力の20〜40%しか使用していません。 高負荷では、この数値は60%に達する可能性があります。 このリソースの分散により、いわゆる「ゾンビサーバー」が出現します。 これらは、ほとんどの時間アイドル状態になり、エネルギーを浪費するマシンです。 今日、世界のサーバーの30%は仕事がなく 、年間300億ドルの電力を消費しています。



MITは、コンピューティングリソースの非効率的な使用と戦うことにしました。



エンジニアチームは、Shenangoと呼ばれるプロセッサ用の負荷分散システムを開発しました。 その目的は、タスクバッファーの状態を監視し、 "スタック"プロセス(プロセッサ時間を受信できない)を空きマシンに再配布することです。



Shenangoの仕組み



Shenangoは、RustおよびC ++バインディングを備えたCベースのLinuxライブラリです。 プロジェクトコードとテストアプリケーションは、GitHubのリポジトリに公開されます。



ソリューションの基本は、マルチプロセッサシステムの専用コアで実行されるIOKernelアルゴリズムです。 DPDKフレームワークを使用してCPU要求を管理し、アプリケーションがネットワークデバイスと直接対話できるようにします。



IOKernelは、特定のタスクを渡すカーネルを決定します。 アルゴリズムは、必要なコアの数も決定します。 各プロセスについて、メインカーネル(保証済み)および追加(バースト可能)が定義されています-CPUへのリクエスト数が急激に増加した場合、2番目のカーネルが起動されます。



IOKernelリクエストキューは、 リングバッファとして構成されています。 アルゴリズムは、5マイクロ秒ごとに、カーネルに割り当てられたすべてのタスクが完了したかどうかを確認します。 これを行うために、彼はバッファの「ヘッド」の現在の位置とその「テール」の以前の位置を比較します。 前のチェックの時点でテールがすでにキューにあったことが判明した場合、システムはバッファーのオーバーロードを記録し、プロセスに追加のカーネルを割り当てます。



負荷を分散するとき、同じプロセスが以前に実行されてキャッシュに一部残っていたカーネル、またはアイドル状態のカーネルに優先順位が与えられます。







Shenangoはさらに、 仕事を盗むアプローチを取ります。 1つのアプリケーションの操作に割り当てられたカーネルは、相互のタスク数を監視します。 1つのコアが他のコアよりも早くタスクのリストを完了した場合、隣接するコアから負荷の一部を「削除」します。



長所と短所



MITのエンジニアによる 、Shenangoは毎秒500万のリクエストを処理し、平均応答時間を37マイクロ秒に維持できます。 専門家によると、場合によっては、このテクノロジーによってデータセンターのプロセッサーの使用率を100%に高めることができます。 その結果、データセンターのオペレーターは、サーバーの購入とメンテナンスを節約できます。



このソリューションの可能性は、他の大学の専門家にも注目されています。 韓国研究所の教授によると、MITのシステムはWebサービスの作業の遅延を減らすのに役立ちます。 たとえば、オンラインストアの運用に役立ちます。 販売の日には、ページの読み込み 2秒遅れただけでも、サイトビューの数が11%減少します。 オンライン負荷分散は、より多くの顧客に役立つでしょう。



この技術にはまだ欠点があります-チップが異なるメモリモジュールに接続され、互いに「通信」しないマルチプロセッサNUMAシステムをサポートしません。 この場合、IOKernelはすべてのサーバーチップではなく、個別のプロセッサグループの動作を調整できます。





/写真ティム・レックマン CC BY



同様の技術



他のプロセッサー負荷分散システムの中でも、Arachneは際立っています。 起動時にアプリケーションが必要とするコアの数を計算し、この指標に従ってプロセスを分散します。 著者によると、Arachneでの最大アプリケーション遅延は約1万マイクロ秒です。



このテクノロジーはLinux用のC ++ライブラリとして実装されており、そのソースコードはGitHubにあります



もう1つのバランス調整ツールはZygOSです。 Shenangoのように、テクノロジーはワークスティーリングメソッドを使用してプロセスを再配布します。 ZygOSの作成者によると、ツールを使用したときのアプリケーションの平均遅延は約150マイクロ秒で、最大は約450マイクロ秒です。 プロジェクトコードもパブリックドメインです。



結論



現代のデータセンターは拡大を続けており、特にハイパースケールデータセンターの市場では上昇傾向が顕著です。現在、世界には 430のハイパースケールデータセンターがありますが、今後数年でその数は30%増加する可能性があります。 このため、CPUロードバランシングテクノロジーは大きな需要があります。 Shenangoのようなシステムはすでに大企業で実装されており、将来的にはそのようなツールの数は増え続けるでしょう。






最初の企業IaaSブログからの投稿:






All Articles