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

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

MIT の新しい CPU ロード バランサー
/ 写真 マルコヴェルチ CC BY

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

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

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

シェナンゴの仕組み

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

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

IOKernel は、特定のタスクをどのカーネルに委任するかを決定します。 アルゴリズムは、必要なコアの数も決定します。 プロセスごとに、メイン コア (保証済み) と追加コア (バースト可能) が決定されます。後者は、CPU へのリクエスト数が急激に増加した場合に起動されます。

IOKernel リクエスト キューは次のように編成されます。 リングバッファ。 アルゴリズムは XNUMX マイクロ秒ごとに、コアに割り当てられたすべてのタスクが完了したかどうかを確認します。 これを行うために、バッファの先頭の現在の位置と末尾の以前の位置を比較します。 前回のチェック時に末尾がすでにキューに入っていたことが判明した場合、システムはバッファの過負荷を認識し、プロセスに追加のコアを割り当てます。

負荷を分散する際は、同じ処理が先に実行されてキャッシュに一部が残っているコア、またはアイドル状態のコアが優先されます。

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

シェナンゴはさらにアプローチを採用 仕事を盗む。 XNUMX つのアプリケーションを実行するために割り当てられたコアは、互いのタスクの数を監視します。 XNUMX つのコアが他のコアよりも先にタスクのリストを完了すると、近隣のコアからの負荷の一部が「軽減」されます。

利点と欠点

上の によると MIT のエンジニアを擁する Shenango は、37 秒あたり 100 万件のリクエストを処理し、平均応答時間を XNUMX マイクロ秒を維持することができます。 専門家らは、場合によってはこの技術によりデータセンターのプロセッサーの使用率をXNUMX%まで高めることができるとしている。 その結果、データセンター運営者はサーバーの購入とメンテナンスを節約できるようになります。

ソリューションの可能性 祝う 他大学の専門家もいます。 韓国の研究機関の教授によると、MITシステムはWebサービスの遅延を減らすのに役立つという。 たとえば、オンラインストアで役立ちます。 セール日には、ページの読み込みに XNUMX 回の遅延が発生することもあります приводит サイトビュー数が 11% 減少しました。 迅速な負荷分散により、より多くのクライアントにサービスを提供できるようになります。

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

MIT の新しい CPU ロード バランサー
/ 写真 ティム・レックマン CC BY

類似技術

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

このテクノロジーは Linux 用の C++ ライブラリとして実装されており、そのソース コードは次の場所から入手できます。 GitHubの.

もう 150 つのバランス調整ツールは ZygOS です。 Shenango と同様に、このテクノロジーは作業を盗む手法を使用してプロセスを再分散します。 ZygOS の作成者によると、このツールを使用した場合のアプリケーションの平均遅延は約 450 マイクロ秒、最大は約 XNUMX マイクロ秒です。 プロジェクトコードも パブリックドメインにあります.

所見

最新のデータセンターは拡大を続けており、その増加傾向は特にハイパースケール データセンター市場で顕著です。 そこにある 430 のハイパースケール データ センターですが、今後数年でその数は 30% 増加する可能性があります。 このため、プロセッサーの負荷分散テクノロジーの需要は大きくなるでしょう。 Shenango のようなシステムはすでに利用可能です 埋め込む このようなツールの数は今後も増える一方です。

企業 IaaS に関する First ブログの投稿:

出所: habr.com

コメントを追加します