グーグルのクラウドを支えるテクノロジー > 第117回 ユーザースペースのプラグイン型タスクスケジューラ「ghOSt」(パート1)

CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第117回 ユーザースペースのプラグイン型タスクスケジューラ「ghOSt」(パート1)」を公開しました。

###

はじめに
 今回からは、2021年に公開された論文「ghOSt: Fast and Flexible User-Space Delegation of Linux Scheduling」を元にして、Googleのエンジニアが開発したプラグイン型のタスクスケジューラ「ghOSt」を紹介します。ここで言うタスクスケジューラは、OS上で実行するプロセスを選択するLinuxカーネルの機能にあたります。今回は、Googleのエンジニアが独自のタスクスケジューラを開発した背景とghOStのアーキテクチャの概要を紹介します。

Linuxのタスクスケジューラ
 はじめに前提知識として、Linuxのタスクスケジューラの役割を簡単に説明します。Linuxはマルチタスク型のOSで、複数のプロセスをマイクロ秒やナノ秒といった単位の時間間隔で切り替えながら実行することにより、1つのCPUコア上で複数のプロセスを並列に実行しているように見せかけることができます。この時、複数のプロセスに対して、CPUコアの処理時間を順に割り当てていく機能を提供するのがタスクスケジューラの役割になります。タスクスケジューラの機能は、Linuxカーネルに実装されており、現在は、CFS(Completely Fair Scheduler)が標準的に利用されています。
 CFSは、CPU負荷の高いプロセスやユーザーとの対話的処理を行うプロセス(つまり、ユーザーからの入力待ち時間が多いプロセス)など、広い範囲のプロセスについて公平にCPU処理時間を割り当てるように設計されています。一方、特定のワークロードに特化したスケジューラを利用することで、サーバー上で稼働するアプリケーションの性能を向上したいという場合もあります。Linuxカーネルには、「スケジューリングクラス」と呼ばれる仕組みがあり、原理的には、プロセスごとに異なるスケジューラを適用することもできます。しかしながら、新しいスケジューリングポリシーを実装する場合は、Linuxカーネルを再ビルドして入れ替える必要があります。とりわけ、Googleのデータセンターのように多数のサーバーが稼働している環境では、さまざまなスケジューリングポリシーを自由に入れ替えるというのは簡単なことではありません。

この続きは以下をご覧ください
リンク

本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]