特定タスクの実行に生じるレイテンシの大きさは、システム上で実行中のその他のタスク、接続されたネットワークの回線状況、ネットワーク上の各種サーバが発揮可能なパフォーマンスなどの要因で左右される。こうした、各自のシステム上で実行するアプリケーションに何がレイテンシをもたらしているかを特定するために利用できるのが LatencyTOP というツールであり、これはコマンドライン操作ツールとカーネル用パッチのセットという構成になっている。
|
|
多少煩わしいことに、LatencyTOPプロジェクトは発足して間もないこともあり、LatencyTOPを利用するにあたっては、各自のカーネルにパッチを当てなくてはならない状況に遭遇するかもしれない。いずれにせよアプリケーション本体およびカーネルパッチは、LatencyTOPのダウンロードページから入手できるようになっている。
各自が使用中のディストリビューションにてカーネルの再コンパイルが必要であるかの判定は、下記の実行例のように、ビルドしたlatencytopコマンドを実行してみるのが一番簡単である。ただしLatencyTOPの実行にはroot権限が必要となる。なお2.6.25.10-86.fc9.i686以降のカーネルで動作するFedora 9システムの場合、カーネルのパッチ当てや再起動をすることなく、そのままの状態でLatencyTOPが実行できるので、yumを介してlatencytopパッケージをインストールするだけでいい。その他、Ubuntu Hardy用のLatencyTOPパッケージは用意されていないが、openSUSE 11についてはコミュニティの有志の手により1-Click Install用のLatencyTOPファイルがいくつか作成されている。
$ tar xzvf /.../latencytop-0.4.tar.gz $ cd ./latencytop* $ make $ ./latencytop Please enable the CONFIG_LATENCYTOP configuration in your kernel. Exiting... # sudo ./latencytop LatencyTOP version 0.4 (C) 2008 Intel Corporation Cause Maximum Percentage opening cdrom device 8.7 msec 33.5 % Executing raw SCSI command 7.6 msec 38.0 % Waiting for event (poll) 3.9 msec 5.0 % SCSI cdrom ioctl 3.7 msec 5.7 % Waiting for event (select) 3.6 msec 17.1 % Waiting for TTY to finish sending 1.5 msec 0.5 % Userspace lock contention 0.2 msec 0.2 % ...
パッチ処理が必要な場合は、下記に示したコマンド操作による新規カーネルのコンパイルとインストールおよび、システムの再起動をしなければならない。なおカーネルのビルドを行う前には、CONFIG_LATENCYTOP=yオプションを有効化しておく必要がある。すべてが問題なく進行した場合、更新後のカーネル下での再起動が終了すると、/proc/sys/kernel/latencytopファイルが作成されているはずだ。
$ tar xjf /.../linux-2.6.26.2.tar.bz2 $ cd ./linux-2.6.26.2 $ cat /.../latencytop.patch | patch -p1 $ make menuconfig $ make bzImage modules ...