japan.internet.com
japan.internet.com メンバーID
Twitter
Facebook
RSS
ピックアップ
2009年5月22日 14:30

Linux で最速を追求するハードディスクの最適化(2)

著者Paul Rubensオリジナル版を読む海外海外発
 最良のスケジューラアルゴリズム

では、最良のスケジューラアルゴリズムは何だろうか? 実際、「最良」などというものは存在しない。その代わり、さまざまなスケジューラが多数存在し、それぞれに適したサーバータイプがある。大半の 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 サーバーやワークステーションには便利だが、データにランダムにアクセスするデータベースサーバーには向かないという傾向がある。

cfq


cfq は「completely fair queuing (完全公平な列)」の略。このシステムでは、スケジューラが多数の内部リクエストキューを維持し、システム上で動作するプロセスが1つずつこれらのキューに割り当てられる。すると、このスケジュールがそのリクエストを各キューの先頭から取り出してディスパッチキューの中に入れる。ここではシーク時間が最小限になるよう並べられ、対応が行われる。次に、スケジューラは内部リクエストキューに戻り、これらのキューの先頭からリクエストを持ってきてディスパッチキューを埋めていく。

これは、エレベーターが1基しかなく、そこにテナントになっているオフィスごとに列を作るようなビルに似ている。エレベーターが1階に到着するたびに、特定の会社がエレベーターを占有しないよう、それぞれの会社のキューの先頭から順番に乗っていく。Cfq は中規模から大規模のマルチプロセッサシステムでうまく機能し、Red Hat Enterprise Linux などの Linux ディストリビューションのデフォルトスケジューラになっている。

本稿の最後では、I/O スケジューラの変更方法と、そのパラメータを変更してシステムをチューニングする方法について見ていきたい。

Paul Rubens は英国マーローオンテムズを拠点に活躍する IT コンサルタント兼ジャーナリスト。同氏は1979年に DEC PDP-11に初めて出会って以来、画面の前でプログラミングなどをしてコンピュータを四六時中いじっている。

本稿は ServerWatch からの転載。

« 戻るスケジュールと公平なキュー

目次

1 スケジューリングと公平なキュー
2 最良のスケジューラアルゴリズム
関連テーマ
プリンター用
記事を転送
この記事をクリップ!
【特別連載企画】au 版「GALAXY」の実力は?--ISW11SC 速攻レビュー
【特別連載企画】au 版「GALAXY」の実力は?--ISW11SC 速攻レビュー KDDI(au)から、NTT ドコモの人気スマートフォン「GALAXY S II」を大幅に進展させた「GALAXY SII WiMAX ISW11SC」が発売される。サムスンがこれまでに蓄積してきたノウハウが詰まった本機の実力をレポートする。
⇒詳細記事はこちら
⇒連載記事一覧はこちら
注目のトピックス
最新コラム一覧
週刊-サイト別アクセス状況データ
週刊-サイト別アクセス状況データ
12月の主婦層、ベルメゾンが首位を維持(VRI 調査)
百式のネットビジネス研究
百式のネットビジネス研究
起業に必要なおすすめ Web サービスを紹介してくれる「BEST Vendor」
アウンのグローバルマーケティング動向
アウンのグローバルマーケティング動向
Web プロモーションにおいて大切なこと―年度末編―
多言語×Web×海外マーケティング情報
多言語×Web×海外マーケティング情報
海外発、注目 AR プロモーション
エンジニア転職ノウハウ開発室
エンジニア転職ノウハウ開発室
楽天が目指す変革──Globalization、Agile、Big Data
中国・台湾ネットビジネス情報最前線
中国・台湾ネットビジネス情報最前線
中国から Web を見てもらいたいならば
マーケティングに活用できる最新トレンド
マーケティングに活用できる最新トレンド
改めて、「導線」最適化に目を向ける
次世代マーケティングチェーンの視点
次世代マーケティングチェーンの視点
ソーシャル時代における BtoC 型 Eコマース成功のポイント
Copyright 2012 internet.com K.K. (Japan) All Rights Reserved.