パフォーマンスは、システム管理の最も複雑な部分の1つです。パフォーマンスの低下の原因や高いワークロードの理由を調査しようとするときはいつでも、それを行うための適切なツールが必要です。
Perfはそれらのツールの1つです。これは、システムのパフォーマンスに関するデータを収集するために使用できるLinuxのパフォーマンスカウンターです。
UbuntuとCentosにインストールする方法を確認し、基本的なコマンドの使用法について簡単に説明します。
UbuntuへのPerfのインストール
PerfはUbuntuのパッケージ「linux-tools」の一部であり、aptを使用して他のパッケージと同じようにインストールされます。ソースが更新されていることを確認してください。
sudo apt update
まず、パッケージlinux-tools-commonをインストールします:
sudo apt install linux-tools-common
次に、実行中のカーネル用に特定のパッケージを作成する必要があります。カーネルの正確なバージョンを取得するには、次のコマンドを使用します。
uname -r
正確なカーネルバージョンを取得します。
特定のlinux-toolsパッケージをインストールできます。カーネルに特定のバージョンのパッケージがない場合は、linux-tools-genericパッケージを使用できます。しかし、これは期待どおりに機能しない可能性があります。経験則として、linux-toolsパッケージが実行中と一致しない場合、perfは機能しないか、意図したとおりに機能しません(非常に重要です!実行中、 インストールされている)バージョンのLinuxカーネル。
CentOSへのPerfのインストール
いつものように、パッケージ名はCentOSごとに異なりますが、手順は基本的に同じです。最初にパッケージ情報を更新します。
yum update
CentOSのすべての依存関係をトリガーするストレートパッケージがあります。
yum install perf
パフォーマンスコマンドの基本的な使用法
perfの使用方法に関するいくつかの基本的なコマンドを見てみましょう。もちろん、perfの最も基本的な使用法は、コマンドの概要を表示するための「–help」フラグが付いたヘルプページです
システム構成によっては、perfの一部のコマンドがセキュリティポリシーによって制限される場合があります。これらのポリシーを無効にするには、次を使用します:
echo 0 > /proc/sys/kernel/perf_event_paranoid
コマンドには、ライブシステム上で実行されるコマンドとパフォーマンスレコード上で実行されるコマンドの2つの大きなグループがあります。
稼働中のシステムに対するコマンド
perf list [category]
上記のコマンドは、システムで使用可能なすべてのイベントタイプを一覧表示します。これは長いリストであり、システム構成に応じて、less/moreでラップされます。カテゴリ値を指定すると、このカテゴリのイベントのみが表示されます。
使用可能なカテゴリは次のとおりです。hw|sw| cache | tracepoint | pmu | event_glob
perf bench <category> <benchmark>
上記のコマンドは、システム上でいくつかのベンチマークを作成します。それらは異なるカテゴリ(sched、mem、numa、futex、すべて)に分割され、各カテゴリには異なるベンチマークのリストがあります。
すべてのメモリ速度テストを確認する場合は、次のコマンドを使用します。
perf bench mem all
perf stat <command>
上記のコマンドは、パフォーマンス統計を返します。このように出力されます
perf top
これにより、トップのようなシステムプロファイルのライブ分析が表示されますが、より微調整されます。
ここから2番目のコマンドグループを開始します。
パフォーマンスレコードに対するコマンド
次のコマンドラインを使用して、実行する任意のコマンドのパフォーマンスプロファイルを記録できます。
perf record [options]
これにより、生のパフォーマンスレジスタレコードが生成されます。このレコードの深さは、システムのインストールによって異なります。取得する可能性のあるすべてのプロファイリングデータを取得するには、デバッグパッケージまたは開発パッケージが必要になる場合があります。また、プロファイリングされる内容、保存方法、およびプロファイリングされる頻度を制御できるフラグも多数あります。
パフォーマンスの記録ができたら、このデータを操作するためのコマンドがいくつかあります。最も簡単なコマンドは次のとおりです。
perf report -i <perf file> [options]
これにより、パフォーマンスファイルのレポートが生成されます。データを分割または並べ替える方法や、レポートに含めるデータを選択できます。
perf diff <datafile 1> <datafile 2> …
これにより、たとえば、基本実行と比較してパラメータを変更した後にプログラムがどのように実行されているかを知りたい場合に、2つの実行を比較できます。
perf lock -I <perf file>
これにより、以前に記録されたパフォーマンスファイル内のすべてのロックイベントが分析されます。
perf mem -t <Type> [ record <command> | report ]
これにより、選択したタイプのメモリアクセスのプロファイリングが記録または記録から報告されます。
perf timechart
これにより、以前に記録されたプロファイリングの実行のタイムチャートが作成されます。
これらすべてのツールが手元にあれば、サーバーで何が起こっているかを確認し、実行のプロファイルを作成してさまざまな構成をテストできます。また、システムのパフォーマンスを制御するための膨大なツールセットを利用できます。 。