ホームページ 運用・保守 Linuxの運用と保守 Linux パフォーマンスとは何ですか?使い方? (使い方概要)

Linux パフォーマンスとは何ですか?使い方? (使い方概要)

Nov 05, 2021 pm 05:50 PM
linux

次のコラム linux システム チュートリアル では、linux perf の使用方法を紹介および要約します。困っている友人の役に立てば幸いです。

はじめに

perf は、Linux システムで提供されるパフォーマンス分析ツールであり、「パフォーマンス カウンター」と呼ばれるカーネル サブシステムに基づいて実装され、ハードウェア (CPU、パフォーマンス) をサポートします。 PMU (パフォーマンス監視ユニット) およびソフトウェア (ソフトウェア カウンター、トレースポイント) レベルでの分析。

perf のイベント

Perf は、他のパフォーマンス チューニング ツールと同様に、モニタリング オブジェクトをサンプリングし、サンプリング ポイントの分布に基づいてプログラム全体を推測します。 perf list コマンドを使用すると、perf が分岐ミス、CPU クロックなどの多くのサンプリング イベントをサポートしていることがわかります。 perf の事前定義イベントは、ハードウェア生成イベント (キャッシュ ヒット/ブランチ ミス) やソフトウェア生成イベント (コンテキスト スイッチ/ページ フォールト) など、さまざまなタイプに属します。

tracepoint

トレースポイントは、Linux カーネルで定義されたフックです。有効にすると、他のツールがシステムを取得しやすくするために、特定のロジックが実行されるときにトリガーされます。内部実行ステータスやその他の情報、perf はトレースポイントを使用し、さまざまなトレースポイント イベントを記録およびカウントし、分析レポートを生成します。

使用方法

perf ツールの具体的な使用方法は次のとおりです。

perf [--version] [--help] COMMAND [ARGS]
ログイン後にコピー

コマンド リストは、perf --help を実行すると表示できます。以下に、一般的に使用されるいくつかのコマンドを示します。

perf stat

perf stat の機能は、コマンドを実行し、その操作中にさまざまなデータを収集することです。コマンドの実行ステータスの全体的な概要を提供できます。プログラム。例:

user@localhost:~$ perf stat hostname
localhost
 Performance counter stats for 'hostname':
          0.313464      task-clock (msec)         #    0.481 CPUs utilized          
                 2      context-switches          #    0.006 M/sec                  
                 0      cpu-migrations            #    0.000 K/sec                  
               153      page-faults               #    0.488 M/sec                  
           896,723      cycles                    #    2.861 GHz                    
           620,709      instructions              #    0.69  insn per cycle         
           121,143      branches                  #  386.465 M/sec                  
             6,247      branch-misses             #    5.16% of all branches        
       0.000651441 seconds time elapsed
ログイン後にコピー

上記の例では、hostname コマンドが perf stat を通じて実行され、タスク クロック、コンテキスト スイッチ、待機など、その操作中のいくつかのインジケーターが要約されて表示されます。デフォルトでは、perf stat は、次のような一般的に使用されるいくつかのイベントの統計を出力します。

task-clock-msecs:cpu 使用率
context-switches:进程切换次数
page-faults:发生缺页的次数
cpu-migrations:表示进程运行过程中发生了多少次CPU迁移,即被调度器从一个CPU转移到另外一个CPU上运行
cycles:处理器时钟,一条机器指令可能需要多个cycles
instructions: 机器指令数目
branches:遇到的分支指令数
branch-misses是预测错误的分支指令数
ログイン後にコピー

さらに、-e パラメータを使用して、次のような関心のあるイベントを指定できます。

perf top

perf top の機能は、システムの現在のパフォーマンス統計をリアルタイムで表示することです。以前の perf stat は特定のプログラムを分析するために使用されますが、どのプログラムがシステム パフォーマンスに影響を与えるかわからない場合がありますが、現時点では perf top を使用して疑わしいプログラムを見つけることができます。例:

user@localhost:~$ perf stat -e cache-misses hostname
localhost
 Performance counter stats for 'hostname':
          682      cache-misses                                                
       0.000646676 seconds time elapsed
ログイン後にコピー
上の例は、perf が CPU クロック イベントのデータをカウントし、比率に従ってそれらを並べ替えることを示しています。 perf stat と同様に、-e パラメータを使用して他のイベントの統計を指定できます。たとえば、perf top -e context-switches では、プロセス スイッチが最も多い上位 N プロセスを表示できます。

パフォーマンス レコードとパフォーマンス レポート

パフォーマンス レコードは perf stat に似ており、コマンドを実行して統計情報を生成できますが、パフォーマンス レコードは結果を表示しません。代わりに、結果をファイルに出力します。パフォーマンス レコードによって生成されたファイルは、パフォーマンス レポートで解析できます。

perf レコードでは、-g パラメーターを使用して分析中に呼び出しグラフを生成し、上位レベルの論理分布を特定することもできます。

その他

この例では、パフォーマンス解析結果の [シンボル] 列に C 言語の関数の名前が表示されていることがわかります。 Java の場合、JIT コンパイルで生成された関数は、Java の関数名ではなくシンボル内に直接表示されますが、現時点では問題を特定するのはそれほど簡単ではありません。シンボルとシンボルを組み合わせるには、追加の手段を使用する必要があります。 Javaプログラムのシンボルテーブルとの対応については後で詳しく説明します。

推奨学習: 「

Linux ビデオ チュートリアル

以上がLinux パフォーマンスとは何ですか?使い方? (使い方概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Apacheを始める方法 Apacheを始める方法 Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

Apache80ポートが占有されている場合はどうすればよいですか Apache80ポートが占有されている場合はどうすればよいですか Apr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Debian Readdirのパフォーマンスを最適化する方法 Debian Readdirのパフォーマンスを最適化する方法 Apr 13, 2025 am 08:48 AM

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする

Apacheサーバーを再起動する方法 Apacheサーバーを再起動する方法 Apr 13, 2025 pm 01:12 PM

Apacheサーバーを再起動するには、次の手順に従ってください。Linux/MacOS:sudo systemctl restart apache2を実行します。 Windows:Net Stop apache2.4を実行し、ネット開始apache2.4を実行します。 Netstat -A |を実行しますサーバーのステータスを確認するには、STR 80を見つけます。

Debian syslogを学ぶ方法 Debian syslogを学ぶ方法 Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

Apacheを開始できない問題を解決する方法 Apacheを開始できない問題を解決する方法 Apr 13, 2025 pm 01:21 PM

Apacheは、次の理由で起動できません。構成ファイル構文エラー。他のアプリケーションポートとの競合。権限の問題。メモリから。デッドロックを処理します。デーモン障害。 Selinux許可の問題。ファイアウォールの問題。ソフトウェアの競合。

インターネットはLinuxで実行されますか? インターネットはLinuxで実行されますか? Apr 14, 2025 am 12:03 AM

インターネットは単一のオペレーティングシステムに依存していませんが、Linuxはその上で重要な役割を果たしています。 Linuxは、サーバーやネットワークデバイスで広く使用されており、安定性、セキュリティ、スケーラビリティに人気があります。

Apacheの脆弱性を修正する方法 Apacheの脆弱性を修正する方法 Apr 13, 2025 pm 12:54 PM

Apacheの脆弱性を修正する手順は次のとおりです。1。影響を受けるバージョンを決定します。 2。セキュリティの更新を適用します。 3。Apacheを再起動します。 4.修正を確認します。 5.セキュリティ機能を有効にします。

See all articles