ネットワークのパフォーマンスをspeedometerで監視する

  speedometer は過去から現在までのネットワーク速度をグラフにし、コンソールに表示する。これを見れば、ネットワーク接続の上り速度と下り速度が一目でわかる。また、ネットワークの全トラフィックでなく特定ファイルだけに注目して、そのダウンロードパフォーマンスを監視することができるし、同ダウンロードの過去の速度を見ることもできる。全トラフィック監視時のspeedometerは、過去から現在までのネットワークパフォーマンスをグラフにするという点でgkrellmに似ているが、gkrellmdをセットアップしなくてもSSH接続上で簡単に動作させられるという利点がある。

speedometer1_thumb.png
speedometer

 speedometerは、Ubuntu Hardyパッケージには最初から含まれているし、openSUSE 10.3では1-Click installでインストールできる。ただ、Fedoraリポジトリにはないので、本稿では64ビットFedora 8マシンを使い、speedometer 2.6をソースからビルドしてみた。

 speedometerはPython言語で書かれており、端末への表示にはUrwidライブラリを使う。したがって、ソースからビルドするときは、Urwidのインストールもしくはビルドも必要となる。Urwidは、下記のとおり、setup.pyを使って正規のPython手順でビルドし、インストールできる。speedometer自体は1個のPythonファイルにすぎないので、示す方法で直接インストールできる。

$ tar xzvf urwid-0.9.8.2.tar.gz
$ cd ./urwid-0.9.8.2/
$ python      setup.py build
$ sudo python setup.py install
$ cd ~
$ tar xzvf speedometer-2.6.tar.gz
$ cd ./speedometer-2.6/
$ sudo install -m 755 speedometer.py /usr/local/bin

 ネットワークインタフェースでの全トラフィック監視には、-txと-rxコマンドラインオプションを使う。-txが送信の監視、-rxが受信の監視である。「speedometer.py -tx eth1 -rx eth1」というコマンドの出力をスクリーンショットに示しておく。speedometerは、gnome端末でローカルに使うときも、SSH接続で使うときも、端末ウィンドウのサイズが変わるごとにグラフのサイズを変えて、再描画してくれる。

 特定ダウンロードのみを監視するときは、speedometerの監視対象がネットワークインタフェースから特定ファイルに変わる。これは、WebからのHTTPダウンロード、SambaやNFSでのファイル転送、SCP Secure Transferなど、あらゆるネットワーク転送の監視に便利に使える。ただ、ファイル転送の監視の場合、そのファイルが最終的にどれほどの大きさになるかがspeedometerでは与えられない。つまり、転送速度を無表情に表示するだけで、転送終了まであとどれだけの時間がかかるかを教えてくれない。だが、オプションのサイズパラメータを使えば、ウィンドウの下端に完了度合いを示すバーが表示されて、転送の進捗状況が一目で把握できる。

 上の例からもわかるとおり、speedometerでは複数の事柄を同時に監視できる。これは、マルチホームホストで使えば、同時に複数のネットワークインタフェースを監視できることを意味する。

 ファイル転送の監視には、-fオプションを使う。このオプションで筆者が1つ不満に思うのは、ファイルが作成されるまでspeedometerが動作開始を待つことである。つまり、待っている間、他のネットワークトラフィックに対して監視の目が働かない。背景でファイルが作成されている間もspeedometerが動作をつづけ、監視したいほかの事柄を見逃さずにすむようにしてもらえれば、非常にありがたい。

 下に示す縦並びのスクリーンショットは、次のコマンドの実行結果である。

speedometer.py -tx eth1 \
  -c -f 'lca08-fixing-xfs-filesystems-faster-mel8-135.ogg' \
  -c -f foo

speedometer2_thumb.png
特定ダウンロードの監視

 複数のものを監視したいときは、必要なだけの-tx、-rx、-fオプションをコマンドラインに追加していけばよい。グラフを横並びにせず、縦に重ねたいときは、次のオプション指定の前に-cを付ける。監視対象の数が少ないのに、表示画面がワイドだというときは、グラフを縦に並べるのも1つのアイデアだろう。1つの画面で横並びと縦並びを併用することもできる。その場合は、新しく縦並びを開始したいときのみ-cを使う。

 筆者は、記述的な長いファイル名をspeedometerがどう扱うかに興味があり、わざわざそういう名前のファイルを選んでファイル転送を監視してみた。ご覧のとおり、2番目のファイル転送グラフは、他のファイル転送グラフと同じ幅で表示されている。こういう表示のほうが一般には読みやすく、とてもいいと思う。

 speedometerは簡単にインストールでき、ローカルマシンとリモートマシンの別を問わずにファイル転送やネットワークインタフェースを監視できて、とても便利である。表示のサイズ変更にも巧みに対応して、サイズが変わったことに気づくだけでなく、現在のグラフ情報を適切に描画しなおしてくれる。

Ben Martinは、ファイルシステムに取り組みはじめてもう10年以上になる。Ph.D.を取得し、現在はlibferris、ファイルシステム、検索ソリューションを中心にコンサルタント業を行っている。

Linux.com 原文