I/Oスケジューラを使う。

(参考)LinuxカーネルのI/Oスケジューラ
http://memo.blogdns.net/iosched.html

以下、上の記事の抜粋です。特に「スケジューラの種別ってなんだっけ」レベルの方は'''下の記事を鵜呑みにせず、上のリンク先に訪問して全文をお読みください''。


(ここから抜粋)

Linux カーネルの I/O スケジューラ

従来は Linux カーネルの I/O スケジューラは一種類だけで、コンパイル時に固定されていました。しかし Linux カーネル 2.6.10 からは複数の I/O スケジューラをデバイス毎に切り替えて、ハードウェアや用途に最適なスケジューラを選べるようになりました。カーネル 2.6.17 に組み込まれているスケジューラは下の四種類です。

noop スケジューラ

noop スケジューラはその名の通り、何もしないスケジューラです。入出力インタフェースや周辺機器自身がハードウェアレベルで高度な処理を行う場合 (インテリジェントな RAID コントローラなど) や、非常に性能が良い場合 (半導体ディスクなど) は、カーネルはむしろ何もしないほうがシステム負荷が軽減できるという場合があります。 noop スケジューラはこのような場合に指定します。普通のパソコンでは noop スケジューラを指定すると性能が落ちるでしょう。

anticipatory スケジューラ

anticipatory スケジューラ (as) はデバイスが伝統的なハードディスクと同様の構造を持つと仮定して、将来の入出力要求を予測したスケジューリングを行います。また入出力要求を待っていくつか貯めてから処理を行う性質があるので、レイテンシは悪くなるかもしれません。このスケジューラは比較的低速のハードディスクを用いた環境で良い性能を示すでしょう。

deadline スケジューラ

データベース向きのスケジューラです。スループットよりもレイテンシに最適化したスケジューリングを行います。デスクトップなどの普通のファイルシステムで使用してもあまり良い性能は得られないでしょう。

cfq スケジューラ

Completely Fair Queuing (CFQ) スケジューラは Fedora Core のカーネルパッケージのデフォルトです。 CFQ はプロセス毎の I/O キューを持ち、極力公平なスケジューリングをしようとします。これにより従来の Linux カーネルで見られた「バックグラウンドで I/O 処理が行われているとレスポンスが悪くなる」という現象を抑えています。 CFQ はどのような環境でも比較的良好な性能を示すオールラウンドプレイヤー的な性質を持っているようです。


(抜粋はここまで)

設定方法

デバイスごととシステム全体でやりかたが違います。デバイスごとの設定についてはここでは触れません。

システム全体