|
ニュース検索
ピックアップ
今週のIT求人情報
|
2009年5月22日 14:30
Linux で最速を追求するハードディスクの最適化(2) 最良のスケジューラアルゴリズム
では、最良のスケジューラアルゴリズムは何だろうか? 実際、「最良」などというものは存在しない。その代わり、さまざまなスケジューラが多数存在し、それぞれに適したサーバータイプがある。大半の Linux システムで一般的に利用される主なスケジューラは以下の4つだ。 ●noop ●deadline ●anticipatory ●completely fair queuing noop最もシンプルなのがこのスケジューラで、これはリクエストをマージしてキューに入れ、それらがキューの先頭に到着した順番で処理を行う。 「noop」スケジューラは、I/O を OS よりうまくスケジュールできる最新のRAIDコントローラを利用するシステムで便利だ。また、これはデバイス上の格納位置にかかわらずデータのシーク時間がすべて一定になるフラッシュメモリドライブ(SSD) (RAM ディスクを含む)搭載システムでも便利だ。 deadline「deadline」スケジューラは、ディスクの近い場所へのリクエストで、いつもキューの最後に回されるために離れた場所へのリードリクエストへの対応があまりに遅くなる、という問題を克服する設計になっている。 これは、途中階に断続的に停止して乗客を乗せるエレベータで、ビルの最上階に行こうとするのに似ている。これを克服するため、各リクエストには待ち時間、あるいは「(期限) deadline」が与えられる。期限が来る前にリクエストへの対応が行われない場合は、そのリクエストがキューの先頭に置かれ、ディスクの近くの位置に対するリクエストとマージされて即座に対応が行われる。 たいていの場合は待ち時間が短くなり、どのリクエストも deadline で決められた比較的短いタイムフレームで対応が行われるため、「deadline」スケジューラはリアルタイムアプリケーションで便利だ。 anticipatory「anticipatory」スケジューラは、次に来るリクエストは対応が行われたばかりのディスクブロックの次の位置になると予想する、という仕組みになっている。リードもしくはライトを実行したあとで、スケジューラは若干のディレイを強制的に入れ、特定のアプリケーションが次のディスクブロックにリクエストを出す時間を与える。このようなリクエストが(予想通り)来ると、別のリクエストに対応すべく移動させられるのではなく、ディスクヘッドが適切な位置に移動してこちらのリクエストに対応する。 エレベータで言えば、ビジネスブロックに多数の企業があって、それぞれが2階分を専有している状況を想像されたい。1人の会社員がある階で乗ってきた場合は、この人物が自分の会社が入っている次の階で降りる可能性は非常に高い。したがって、エレベーターはこの乗客が目的階のボタンを押すまで急いで次の階を通り越すのを待ちたいと考える。 このようなわずかな遅れも積み上がればシステムの待ち時間が若干増えるが、状況によっては、次の行き先を予測することで得られる効率の改善分が容易にそれを上回る。 「anticipatory」スケジューラは、外部リクエストに定期的に中断されないような作業に適している。データにシーケンシャルにアクセスする Web サーバーやワークステーションには便利だが、データにランダムにアクセスするデータベースサーバーには向かないという傾向がある。 cfqcfq は「completely fair queuing (完全公平な列)」の略。このシステムでは、スケジューラが多数の内部リクエストキューを維持し、システム上で動作するプロセスが1つずつこれらのキューに割り当てられる。すると、このスケジュールがそのリクエストを各キューの先頭から取り出してディスパッチキューの中に入れる。ここではシーク時間が最小限になるよう並べられ、対応が行われる。次に、スケジューラは内部リクエストキューに戻り、これらのキューの先頭からリクエストを持ってきてディスパッチキューを埋めていく。 これは、エレベーターが1基しかなく、そこにテナントになっているオフィスごとに列を作るようなビルに似ている。エレベーターが1階に到着するたびに、特定の会社がエレベーターを占有しないよう、それぞれの会社のキューの先頭から順番に乗っていく。Cfq は中規模から大規模のマルチプロセッサシステムでうまく機能し、Red Hat Enterprise Linux などの Linux ディストリビューションのデフォルトスケジューラになっている。 本稿の最後では、I/O スケジューラの変更方法と、そのパラメータを変更してシステムをチューニングする方法について見ていきたい。 Paul Rubens は英国マーローオンテムズを拠点に活躍する IT コンサルタント兼ジャーナリスト。同氏は1979年に DEC PDP-11に初めて出会って以来、画面の前でプログラミングなどをしてコンピュータを四六時中いじっている。 本稿は ServerWatch からの転載。 « 戻るスケジュールと公平なキュー
関連記事
新着ニュース・コラム ホワイトペーパー
|
注目のトピックス 話題の記事
企業の約4割がいまでも IE 6 以前のブラウザを利用 ― Web 広告研究会調査
SNS「非モテ+」、バレンタイン関連ワード投稿を禁止に
Android 版 Chrome ベータ1登場、ただし Android 4.0用
さぬきうどんの食べ歩きをサポートするスマホアプリ「Udooon!」が公開
東芝、5人の美女と15分間限定の”モテ期気分”が体験できるウェブコンテンツを公開
⇒一覧を見る
アクセスランキング
最新コラム一覧
|
|||||||||||||||||||||