CPUパフォーマンスは、測定の1つの側面です。システムのパフォーマンス。 CPUのパフォーマンスの監視は、システム内のプロセスのデバッグ、システムリソースの管理、システムの決定、システムのリアルタイムの評価と調査に不可欠です。
監視と表示に使用できるツールはたくさんあります。 CPUパフォーマンス。オペレーティングシステムには、これらのツールがパフォーマンスの読み取り値を抽出するために依存する組み込みのシステムコールがあります。
このチュートリアルでは、Linuxベースのディストリビューションでの最適なCPU使用率監視ツールとその使用法について説明します。
1)Top
topコマンドは、システムで実行中のすべてのプロセスのパフォーマンス関連データのリアルタイムビューを表示します。デフォルトでは、topコマンドは5秒ごとにデータを更新します。ターミナルから「top」と入力して、システムのパフォーマンスに関連する統計データを表示します。
# top
topコマンドの出力を変更するには、次のコマンドを押します。
「P」はCPU使用率でソートします。
「I」はアイドル状態のプロセスを表示から削除し、元に戻すには「I」をもう一度押します。
「M」はデータをメモリ使用量で並べ替えます。
「S」はプロセスの実行時間で並べ替えます。
「P」はCPU使用率で並べ替えます。
「U」は特定のユーザーが所有するプロセスを表示します。
「K」はプロセスを強制終了します。
「R」はプロセスを解放します。
2)Iostat
iostatコマンドは、CPU使用率、デバイス使用率、およびネットワークファイルシステム使用率を一覧表示します。このユーティリティは、最後の再起動以降のシステムの平均CPU使用率を表示します。オプションを指定せずに次のコマンドを実行すると、3つのレポートすべてが表示されます。
# iostat
個々のレポートを一覧表示するには、CPU使用率に-c、-d、および-hスイッチを使用します。 、デバイス使用率およびネットワークファイルシステム使用率。次のコマンドは、CPU使用率をユーザープロセス、システムプロセス、I / O待機時間、アイドル時間に分割します。
# iostat -c
次のコマンドは、拡張統計を表示します( -x)、CPU使用率(-c)について各レポートを表示する回数(-t)。
# iostat -xtc 5 2
3)Vmstat
vmstatコマンドは、システムプロセス、メモリ、スワップ、I / O、およびCPUパフォーマンスに関する統計を表示します。統計を表示するために、コマンドが最後に実行されてから現在までのデータが収集されます。コマンドが実行されない場合、データは最後の再起動から現在の時刻までになります。
複数のCPUシステムでは、vmstatは出力にCPUの数を平均します。 vmstatコマンドは、topコマンドのように出力を更新します。
次のコマンドは、割り込みが発生するまで5秒ごとにレポートを更新します。
# vmstat 5
次のコマンドは、5秒ごとに更新されるデータを表示し、値は1秒ごとに再測定および報告されます。
# vmstat 1 5
最初の行には、コンピューターが最後に再起動されてからの平均値が出力されます。残りの行には、それぞれの現在の値が表示されます。通常のユーザーはvmstatコマンドを実行できます。
4)Mpstat
Mpstatは、Linuxのsysstatパッケージの一部です。 mpstatコマンドは、使用可能な各プロセッサのアクティビティに関する標準出力に書き込みます。プロセッサ0が最初のプロセッサです。アクティビティが選択されていない場合、デフォルトのレポートはCPU使用率レポートです。
オプションのないmpstatは、すべてのCPUのグローバル平均アクティビティを表示します
# mpstat
-pオプションと “ALL”を指定したmpstatは、すべてのCPUに関する統計を0から1つずつ一覧表示します。
# mpstat -P ALL
次のコマンドはそれぞれ2秒後の4回の平均CPU使用率を一覧表示します。
# mpstat -P ALL 2 4
5)Sar
sarは、次のパフォーマンス監視ツールです。パフォーマンスデータを収集、表示、記録し、システムが常に実行していることを一覧表示できます。 Sarコマンドは、レポートを生成してシステム管理者に電子メールで送信できます。 sarによって報告される統計には、I / O転送速度、ページングアクティビティ、プロセス関連のアクティビティ、割り込み、ネットワークアクティビティ、メモリとスワップスペースの使用率、CPU使用率、カーネルアクティビティ、TTY統計などが含まれます。オプションなしでsarを実行し、出力を確認します。デフォルトの出力リストは、10分ごとの統計と最終平均です。
# sar
CPU統計を2秒間隔で3回表示します。
# sar 2 3
次のコマンドは、2秒ごとに合計3回、すべてのCPUの累積リアルタイムCPU使用率を表示します。
# sar -u 2 3
「-PALL」オプションは、すべての個々のコアの統計を表示します。システムに4つのコアがある場合、「CPU列」には、対応するCPUコア番号を示す番号0、1、2、3が含まれます。「23」オプションは、2秒ごとに3回統計を表示します。
# sar -P ALL 2 3
「-P2」オプションは、2秒ごとに3番目のコアの統計を表示します。 3回。
# sar -P 2 2 3
6)CoreFreq
CoreFreqは、Intelアーキテクチャを搭載した64ビットプロセッサ向けに設計されたCPUパフォーマンス監視ソフトウェアです。 Atom、Core2、Nehalem、SandyBridge、および優れたAMDファミリー。 CoreFreqは、CPUデータを高精度で取得するためのフレームワークを提供します。カーネルモジュール、デーモン、およびユーザーランドコマンドラインインターフェイス(CLI)は、Corefreqの3つの部分です。カーネルモジュールは、ホストへのフルアクセスを持ちます。低レベルのデータを収集するのはその責任です。 userlandデーモンがデータを収集します。デーモンを実行するには、rootユーザーである必要があります。最後に、CoreFreqには、人間が読める形式でデータを報告するためのターミナルインターフェイスが付属しています。このCLIツールは通常のプロセスであり、エンドユーザーが使用できます。
前提条件
i)CoreFreqは低レベルのカウンターを使用するため、最初に/を使用してNMIウォッチドッグを無効にする必要があります。 etc / default / grub。 / etc / default / grubを編集し、「nmi_watchdog = 0」カーネルコマンドライン引数を追加してから、update-grubを実行します。
# vi /etc/default/grub
.................... .................... GRUB_CMDLINE_LINUX="nmi_watchdog=0" .................... ....................
# update-grub && reboot
ii)仮想化なし。 VMは、CoreFreqドライバーが使用するレジスターへのアクセスを提供しません。
CoreFreqをインストールします
insmodを使用してカーネルモジュールをインストールします
# sudo insmod corefreqk.ko
lsmodを使用してCoreFreqモジュールを一覧表示します
# lsmod | grep corefreq corefreqk 49152 0
dmesgコマンドの出力は、CoreFreqがプロセッサによって認識されたことを示しています。
# sudo dmesg | grep CoreFreq CoreFreq: Processor Architecture CPU
CoreFreqデーモンを起動します
# sudo ./corefreqd -i &
ここで、corefreqクライアントをユーザーとして起動します。
# ./corefreq-cli
7)Htop
Htopは、プロセスビューアであり、topのようにリアルタイムでシステムを監視するためのテキストモードアプリケーションです。完全に表示されます。実行中の使いやすいプロセスのリスト。ターミナルで実行されているGUIのような環境でプロセスを表示するためのncursesに基づいています。Htopは、CPUごとの使用量をメモリとスワップの使用量とともに表示し、重要なテキストグラフを印刷します。 Htopは非常に使いやすく、理解しやすいです。HTOPを使い始めたら、y TOPに戻らない場合があります。
ターミナルで次のコマンドを使用してhtopをインストールします
# sudo apt-get install htop
次のコマンドを使用してhtopを実行します。
# htop
8)Nmon
nmon(Nigel’s Linux用パフォーマンスモニター& AIX)は、IBMの従業員であるNigelGriffithsによって開発されました。このツールは、CPU、メモリ、ネットワーク、ディスク、ファイルシステム、NFS、ターミナルのトッププロセスなどのシステムリソースを監視するために使用されます。 NMONは、POWER、x86、x86_64、メインフレーム、ARM(Raspberry Pi)などのさまざまなアーキテクチャをサポートしています。このツールは、システム管理者がパフォーマンス情報を調整してベンチマークし、問題が発生したときにCPU /システムパフォーマンスのトラブルシューティングを行うのに役立ちます。リアルタイムの監視では、CPUへの影響を少なくするためにcursesライブラリを使用し、画面に統計を表示して2秒ごとに更新します。 nmonはcursesライブラリを使用するため、他のツールと比較してCPUメモリの消費量が少なくなります。
インストール
# sudo apt-get install nmon (Ubuntu) # sudo yum install nmon (CentOS)
CentOSユーザーはインストール/有効化する必要がありますnmonをインストールするにはEPELリポジトリ。
ターミナルにnmonと入力し、Enterキーを押すと、nmonはそれをさらに使用するためのすべてのオプションを含むウェルカム画面を表示します。 CPU使用率を表示する場合は、cを押し、CPU使用率ウィジェットの統計を非表示にするには、もう一度「c」を押します。
9)Glances
Glancesは、Pythonで記述されたクロスプラットフォームのcursesベースの監視ツールであり、psutilライブラリを使用してシステムからデータをフェッチします。 Glanceは、CPU、負荷平均、メモリ、ネットワークインターフェイス、ディスクI / O、プロセス、およびファイルシステムスペースの使用率を監視します。
次のコマンドを使用して、システムにGlanceをインストールします。
Ubuntuの場合:
# sudo apt-get install glances
Centosの場合:
# sudo yum install glances
Glanceは3つのモードで実行できます-
1。スタンドアロン
ローカルマシン(スタンドアロン)を監視する場合は、単に実行します-
# glances
2。クライアント/サーバー
マシンをリモートで監視する場合は、サーバーで次の手順を実行します。
# glances -s
次に、クライアントから、次のコマンドを実行します。
# glances -c @server
ここで、@ serverはサーバーのIPアドレスまたはホスト名です。
3。 Webサーバー
ターミナルで次のコマンドを実行して、Webサーバーモードでglanceを実行します。
# glances -w Glances web server started on http://0.0.0.0:61208/
のリフレッシュレートを変更するにはページでは、URLの最後に秒単位の期間を追加するだけです。たとえば、30秒ごとにページを更新するには、ブラウザからglanceサーバーのURLに10を追加します。
http://@server:61208/30
10)Cpustat
Cpustatはさまざまなことをする派手なトップのようなものです。ほとんどのパフォーマンスツールは、数秒または1分でCPU使用率を平均します。これにより、リソース使用量が急激に増加し、ビジー状態が少なくなるため、容量が過剰になるという幻想が生まれます。一方、cpustatは、各プロセスのより高い頻度のサンプルを取得し、これらのサンプルをより低い頻度で要約します。たとえば、200ミリ秒ごとにプロセスを測定し、5秒ごとにサンプルを要約できます。これには、一部のメトリックの最小/平均/最大値が含まれます。
Cpustatのインストール
CpustatはGo言語で。したがって、システムにGOが必要です。存在しない場合は、ターミナルで次のコマンドを使用してインストールします。
Ubuntuの場合
# sudo add-apt-repository ppa:longsleep/golang-backports # sudo apt-get update # sudo apt-get install golang-go
CentOSの場合
# yum install golang
Golangがシステムにインストールされたら、Cpustatのディレクトリを作成し、このディレクトリをGOPATHで使用できるようにします。
# mkdir cpustat # export GOPATH=$HOME/cpustat
Cpustatをインストールし、ディレクトリがcpustatフォルダーにコピーされていることを確認します。
# go get github.com/uber-common/cpustat # cd cpustat && ls
binフォルダーをPATH環境変数に追加します。使用しているものに応じて、〜/ .bashrcまたは/ etc / profileに次の行を追加することもできます。
# export PATH=$PATH:/root/cpustat/bin
これを表示する方法は2つあります。データ。要約間隔の純粋なテキストリスト、または各サンプルのカラフルなスクロールダッシュボード。ファンシーターミナルモードでデータを表示するには、ターミナルで次のコマンドを実行します。
# cpustat -t
プレーンテキストモードで実行するには、次のコマンドを使用します。テキストモードでは、システム全体のサマリーメトリックは/ proc / statから取得されません。
# cpustat
次のコマンドは、500ミリ秒ごとにすべてのプロセスのサンプルを取得します。このデータを10サンプル後、つまり5秒ごとに要約します。
# cpustat -s 500 -s 10 -n 20
次のコマンドを使用して、ユーザーrootまたはユーザーubuntuが所有するプロセスを測定します。システム全体の統計は引き続き測定されます。
# cpustat -u root, ubuntu
「apache」または「mysql」のプロセスのみを測定します。 cpustatの-pオプションは、pgrepによって返されるプロセスIDのリストを取ります。 pgrepはプロセスIDを取得するために使用されます(-dオプション)。
# cpustat -p $(pgrep -d, apache2\|mysqld)
次のコマンドを使用して、メモリプロファイルをファイルに書き込みます。
# cpustat -memprofile test.txt
11)perf
Perfは、Linuxカーネルに含まれているCPUパフォーマンスカウンター、トレースポイント、kprobe、およびuprobeをtools / perfで測定できます。 perfは、Linuxでパフォーマンスカウンターサブシステムを使用するためのツールとして始まり、トレース機能を追加するためにさまざまな機能拡張が行われました。 perfツールは2.6バージョン以降Linuxカーネルに統合されており、perfイベントサブシステムに基づいています。 perfプロファイラーは、ハードウェアカウンターを使用してアプリケーションのプロファイルを作成します。このプロファイラーの結果は明示的で高速です。 perfユーティリティはlinux-toolsパッケージにあります。
Measure entire system for 10 seconds using perf.
# perf stat -a -- sleep 10
cpなどの特定の「コマンド」のCPUパフォーマンスを調べることに関心がある場合。次のperfコマンドは、ディレクトリ全体のドキュメントを新しい場所(ドキュメント)にコピーしているときにcpをプロファイルします。
# perf stat cp -r Documents/ Docs
CPUカウンターの統計を検索する場合指定されたPIDは、CTRL + Cが押されるまで次のコマンドを使用します。
# perf stat -p 2087
次のパフォーマンスを使用して、システム全体の基本的なCPU統計を10秒間検索します。コマンド。より具体的にするために、-eオプションの下のオプションのいずれかを省略することもできます。
# perf stat -e cycles,instructions,cache-references,cache-misses,bus-cycles -a sleep 10
サンプルのオンCPUユーザー命令を5秒間収集してから、 perfレポートを使用してレポートを表示します。
# perf record -e cycles:u -a -- sleep 5 # perf report
サンプルのCPUスタックトレースを10,000レベル1データキャッシュミスごとに1回、5秒間収集してから、perfレポートを使用します。レポートを表示するには。
# perf record -e L1-dcache-load-misses -c 10000 -ag -- sleep 5 # perf report
12)tiptop
Tiptopは、ハードウェアパフォーマンスカウンターを読み取り、IPCなどの実行中のLinuxプロセスに関する統計を表示します。 、またはキャッシュミス。これは、システムで実行されているタスクの動的なリアルタイムビューを提供します。 Tiptopはtopと非常に似ていますが、表示される情報はハードウェアカウンターから取得されます。
ライブモードとバッチモードの2つの実行モードがあります。どちらのモードでも、システムはハードウェアカウンターの値を定期的に照会され、タスクごとにさまざまな比率が出力されます。
13)psコマンド
psコマンドを使用して検索できます。各プロセスまたはユーザーのCPU使用率。理解すべきいくつかの例を挙げます
最高のCPUを表示するには& rootによって実行されるプロセスによるメモリ使用率。
次のコマンドを実行して、特定のコマンドのCPU使用率を表示します。
すべてのユーザーのプロセスを表示し、並べ替えを使用して完全な形式のリストで端末に接続されていない場合
14)dstatコマンド
dstatコマンドは、システムリソース統計を生成するための多目的なツールであり、CPU統計も表示します。使用するにはインストールする必要があります
Centosの場合
# yum install -y dstat
Ubuntuの場合
# apt-get install dstat
CPUを最も多く使用し、メモリを最も多く消費しているプログラムを監視します。
# dstat -c --top-cpu -dn --top-mem
結論
このチュートリアルでは、いくつかのCPUパフォーマンス監視ツールとその使用法について説明しました。使用法も詳細に記載されているので、それぞれのマニュアルページを必ず読んでください。これらのツールを使用すると、CPUスライスも必要になることに注意してください。たとえば、topはCPUの3%〜4%を使用し、glanceはCPUの15%〜20%を使用します。したがって、これらのいずれかを使用するときは、この側面も考慮する必要があります。一言で言えば、どのプロセスがより多くのCPU時間を費やしているか、十分な空きメモリがあるかどうか、I / Oの待機中にプロセスが停止しているかどうかを確認できます。ディスクまたはネットワークにアクセスして、いくつかの組み合わせを使用して読み取り/書き込みなどを完了します。
関連項目:
- Sarコマンドを使用してLinuxのパフォーマンスを監視する方法
- Linuxでhtop2.0.2をインストールし、コマンドラインを使用する