×
最新の人気コンテンツ情報をまとめた
メールマガジンをお届けします

ページトップへ
クラウド利用時の大きな課題である、パフォーマンス問題。知る人ぞ知る、カンタン便利な OSS のパフォーマンス解析ツール「nmon (エヌモン)」について、Open Cloud Innovation festa SoftLayer女子会のセッションにも登壇した、日本アイ・ビー・エム株式会社 クラウド・テクニカル・サービスの中村氏に詳しく聞いてきました。

▼ 日本アイ・ビー・エム株式会社の中村氏。趣味は音楽だそうです


クラウド サーバーのパフォーマンスを、あらゆる角度から速攻で可視化


「トラフィックは多くないが Disk のI/O が大きすぎてレスポンスが低下している」――クラウド サーバーのパフォーマンス課題について、このように明確に原因が分かっていれば対策もとれます。しかし、レスポンスの遅さの原因が瞬時に判明しないという状況に悩むシステム運用担当者は多いのではないでしょうか。
対応が遅れれば、最悪はシステムがダウンしてしまうことにもなりかねませんし、また、管理者側からすれば「ダウンしていない」状況でも、ユーザーからすれば「反応が遅い」と満足度を大きく下げることになるかも知れません。対顧客のシステムであればビジネス機会の損失となり、社内向けシステムであっても、クレーム対応など担当者にとってかなりの負荷となります。

このような事態を回避するためにまず必要なことは、「一刻も早いボトルネックの発見」ということになってきます。そこで活躍するのが、今回お話しをうかがった「nmon」と、「nmon アナライザー」です。

超簡単かつ便利。nmon (えぬもん) インストールと使い方


中村氏: nmon は、リアルタイムでボトルネックを把握できる、オープンソースのパフォーマンス解析ツールです

UNIX 互換 OS である AIXにバンドルされるモニタリングツールとしてだけでなく、オープンソースとして、Linux でも利用できるようになっています。

▼ 「サーバー使用状況についてお問い合わせをいただいた際、nmon をご紹介しています」


UNIX 互換 OS である AIX の開発者である IBM のナイジェルさんがコードを書いた nmon (Nigel's Performance Monitor) は、Softlayer のカスタマー ポータル (管理画面) 上では確認できないような、さらに細かい指標でモニタリングできる上、操作はコマンドキー 1 つという簡単さ。インストールも、モニタリング対象のサーバーにログインして、バイナリの入ったtar ファイルをダウンロードし、対象のOSの実行形式を選んで /usr/local/bin にコピーするだけです。

▼ CentOS6 64bit版の手順。最後のnmon -h でヘルプが表示されれば、実装成功


中村氏: 「SoftLayerカスタマーポータル上でリアルタイムにサーバーの使用状況は見られますか?」というお問い合わせをよくいただきます。その際に、nmon をご紹介しています

nmon (えぬもん) でプロアクティブな障害の検知を


SoftLayer のポータルでも、5 分おきのネットワーク使用量やロードバランサーの状況は見られます。一方で nmon では1秒単位でパフォーマンスをモニタリングできるため、起きている状況を即時確認することが可能です。さらに、CPU 使用率、メモリーの消費量、ディスクのI/O、I/O 待ち率、割り込みの発生量など、パフォーマンスに大きく影響する多数の指標が見られます。

中村氏: 例えば Linux であれば、「top」というnmonに相当する様なモニタリングコマンドがあり、これでもある程度見ることができます。ただ、ログを取ったり、解析をするための情報を記録したりして保存することはできず、取得する項目もかなり限定されています。ですので、一般的には、Nagios とか Zabbix といったような監視ツールをセットアップして、それらを使ってモニタリングします。この「top」に代わるようなモノで、さらに解析やチューニングに使えたりトラブルの原因を解析したりというところで nmon が役立ちます

▼ nmon を起動するとこのような画面が表示されます


▼ CPU、メモリー、ディスクI/Oを選んだところ


nmon アナライザーを使えば自動でグラフ作成、パフォーマンスを可視化


さらに、nmon から出力したログファイルを「nmon アナライザー」を使って、Excel に自動でグラフ化することができます。

中村氏: nmon でリアルタイムなパフォーマンスは見られますが、一瞬一瞬で流れていく情報なので、どうしてもそれぞれの相関関係を検証しづらいかと思います。例えばCPUの使用率・メモリーの消費量・ディスクのI/Oのレートなど、パラメーターがどう相関して変化するかということを見ようとすると、リアルタイムな画面表示だけでは足りないわけです。そこで、nmonアナライザーにかけてグラフ化することでより相関関係を把握しやすくなります

▼ グラフ化したログ。相関関係を自動で可視化することでできる


Excel のマクロで作成されるこのグラフは、デバイスごとなどで時系列にビジュアライズしてくれるため、それぞれの動きの相関関係を把握しやすく、ボトルネックになっている個所を見つけ出しやすくなります。例えば、『CPU の使用率が落ち込む、しかしパフォーマンスは出ていない。その同じ時間にディスクのI/O数を見ると極端に増えている。これはつまりディスクI/Oを頻繁に行うために CPU が使われずに待ち状態になって、ディスクの I/O が全体の速度を決めている』というように総合的にシステムの動きを判別していく把握していくことができます。
しかも Zabbix のようにセットアップや、いろいろな準備をすることなくすぐに使えるので便利に使用できます。

nmon (えぬもん) でプロアクティブな障害の検知を


アプリケーションプログラム、もしくはミドルウェアが、サーバー内臓のメインメモリーを十分使い切っていない。したがってI/Oが多く発生して全体が遅くなっているといったようなことはよくあるケースです。
メモリーはたくさん使いすぎるとスローダウンをおこしてしまう、逆に常にリソースに余剰が出過ぎるメモリーならコスト面から考えてスケールダウンすべきでしょう。しかし、本当に余剰なのか、他に負荷がかかっていないかを正確に把握し検討しなければ、ますますボトルネックになってしまいます。

中村氏:「できるだけメモリーを使って、でも使い過ぎない」というちょうど良い頃合いを探していって、チューニングをする必要があるわけです。そういったときにこのnmonというツールはとても役に立ちます

「ディスクの使用量が多い、メモリーを見てみると余っている」という場合にはミドルウェアの設定を変えてもっとメモリーをたくさん使うようにする。そうすることでI/Oの回数がぐっと減って性能が上がっていく。
このように、ボトルネックの絞り込みから総合的な状況を簡単かつスピーディーに可視化することで、プロアクティブな障害の検知・対策が可能になり、ひいてはビジネスリスクを回避することができるのが、このnmon と nmon アナライザーを使用する意義と言えるでしょう。

ハイエンド機用に作られているので取得できる項目が多く、より高度な状況分析が可能になる nmon と nmon アナライザーは、以下からダウンロードが可能です。

nmon
nmon アナライザー