Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Guider – Linux システム全体を徹底分析する究極のパフォーマンスアナライザー

Guiderは、主にPythonで記述されたフリーかつオープンソースの強力なシステム全体パフォーマンス分析ツールです。Linux OS向けに提供されています。

このツールは、システムリソースの使用量を測定し、システムの挙動をトレースすることを目的として設計されています。そのため、パフォーマンス上の問題を効率的に分析したり、チューニングを行ったりすることが容易になります。

CPU、メモリ、ディスクの使用状況をスレッド単位・プロセス単位・システム関数(ユーザー/カーネル)レベルで詳細に表示できるため、異常なシステムパフォーマンスの原因を突き止めたり、システム全体の性能向上を図ったりするのが非常に簡単になります。

動作要件

  • Linuxカーネル(3.0以上)
  • Python(2.7以上)
  • カーネルバッファサイズ 40960

本記事では、Guiderをソースからビルド・インストールし、それを使ってLinuxシステム全体のパフォーマンスを分析・改善する方法を紹介します。

Guiderのビルドとインストール方法

LinuxにGuiderをインストールするには、まずGitHubからguiderリポジトリをクローンします。

$ git clone https://github.com/iipeace/guider.git
$ cd guider
$ guider.py [インストールせずに実行]

guider.pyはインストールしなくても直接実行できます。あるいは、以下のコマンドを実行してビルドおよびインストールすることも可能です。

$ make
$ sudo make install

システムでPIPが利用可能な場合は、次のコマンドでインストールできます。

$ sudo pip install --pre guider

Guiderを使ったLinuxシステムパフォーマンスの分析方法

デフォルトでは、Guiderは起動時に操作用のバッファサイズを自動設定するようになっています。しかし、うまく設定できずエラーが表示される場合は、次のコマンドで現在のバッファサイズを確認してください。

$ sudo cat /sys/kernel/debug/tracing/buffer_size_kb

値が40960未満の場合は、以下のように必要な値に設定します。

$ echo 40960 | sudo tee /sys/kernel/debug/tracing/buffer_size_kb

Guider – Linux システム全体を徹底分析する究極のパフォーマンスアナライザーLinuxカーネルバッファサイズの設定

Guiderは、以下の構文でスレッドモード、関数モード、topモード、ファイルモード、システムモードなどで起動できます。

$ guider [ mode | file ] [options]

多くのコマンドラインベースのLinuxパフォーマンス分析ツールと同様に、Guiderの出力を見やすく表示するには、幅の広い画面が必要です。

スレッドモードでCPU使用率を分析する

次のコマンドを実行すると、スレッドモードでの高精度なトレーシングが開始されます([Ctrl+c]キーでトレーシングを終了)。プロセスを終了するとデータが保存され、分析処理が自動的に開始され、その後分析レポートが表示されます。

$ sudo guider record

Guider – Linux システム全体を徹底分析する究極のパフォーマンスアナライザースレッドモードでのCPUトレーシング

分析レポートには、システム全般の情報、OS情報、CPU情報、メモリ情報、ディスク情報、そしてページャーの末尾近くにスレッド情報が含まれています。キーとキーでページャーを上下にスクロールして確認しましょう。

Guider – Linux システム全体を徹底分析する究極のパフォーマンスアナライザーLinuxシステム情報

Topモードでリアルタイム監視を行う

次のコマンドは、Linuxプロセスのリソース使用状況をリアルタイムで表示します。

$ sudo guider.py top

Guider – Linux システム全体を徹底分析する究極のパフォーマンスアナライザーリアルタイムのLinuxプロセス監視

-iスイッチを使用すると、出力の表示間隔を指定できます。

$ sudo guider top -i 2

リソース使用に関するすべての情報を監視するには、-aフラグを使用します。

$ sudo guider top -a

PIDを指定して特定のLinuxプロセスを分析する

まず、pidofコマンドまたはpsコマンドでプロセスIDを取得します。

$ pidof apache2
または
$ ps -e | grep apache2

続いて、次のコマンドでそのプロセスのリソース使用状況を分析します。CPUサイクル、命令数、IPC、フォルト、キャッシュミス、ブランチミスなどがリアルタイムで出力されます。-gスイッチはフィルターを設定するオプションで、ここではプロセスIDを指定しています。

$ sudo guider top -eP -g 1913

Guider – Linux システム全体を徹底分析する究極のパフォーマンスアナライザーApacheプロセスの使用状況監視

Guiderの出力をファイルに保存する

トレースデータやその他の出力をファイルに保存し、後から分析することもできます。次のコマンドでは、トレースデータがカレントディレクトリのguider.dat(デフォルト名)というファイルに保存されます。別の場所を指定することも可能です。

$ sudo guider -s .

その他の出力をファイルに保存する場合は、カレントディレクトリにguider.out(デフォルト名)として書き出されます。

$ sudo guider top -o .

保存されたファイルは、catコマンドで内容を確認できます。

$ cat guider.dat
$ cat guider.out

利用可能なオプションは数え切れないほど豊富にあるため、ここですべてを紹介することはできません。すべてのオプションやさらなる使用例については、guiderのヘルプページをご覧ください。

$ guider -h

GuiderのGitHubリポジトリ:https://github.com/iipeace/guider

まとめ

Guiderは、今後ますます活躍が期待される優れたシステム全体パフォーマンス分析ツールです。特にLinuxの専門家に適しています。ぜひさまざまな機能を試してみて、感想をお聞かせください。同様のツールをご存じの方も、ぜひ教えてください。

  1. NetHogsで実現! Linuxのプロセス別ネットワーク帯域使用量をリアルタイム監視する方法

    Linux向けのオープンソースネットワーク監視ツールは数多く存在します。たとえば、iftopコマンドで帯域使用状況を監視したり、netstatやssコマンドでインターフェース統計レポートを確認したり、topコマンドでシステム上の実行中プロセスを監視したりすることができます。 しかし、「プロセスごとのネットワーク帯域使用量をリアルタイムで把握したい」というニーズがあるならば、選ぶべきはNetHogs一択といえるでしょう。 NetHogsとは何か? NetHogsは、Linuxのtopコマンドに似た操作性を持つオープンソースのコマンドラインツールで、各プロセスやアプリケーションが消費して

  2. Vimマクロの使い方を徹底解説!操作の記録と再生をステップバイステップでマスター

    Vimには強力な「マクロ」機能が搭載されており、エディタ内で行った一連の操作を記録し、あとで何度でも再生することができます。同じような編集作業を大量に繰り返す場合、この機能を使いこなせるかどうかで作業効率が大きく変わります。 本記事では、Vi/Vimエディタにおけるマクロの記録・再生方法を、2つの具体的な例題を通じて詳しく解説します。 Vimマクロの記録と再生:基本の手順 記録を開始:「q」キーを押した後、小文字のアルファベット(レジスタ名)を入力 編集操作を実行:Vim上で通常どおりの編集を行うと、その操作がすべて記録される 記録を終了:「q」キーを押す マクロを再生:「@」キーの後にマ