検索
ホームページ運用・保守Linuxの運用と保守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 サイトの他の関連記事を参照してください。

声明
この記事はjuejinで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
什么是linux设备节点什么是linux设备节点Apr 18, 2022 pm 08:10 PM

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

Linux中open和fopen的区别有哪些Linux中open和fopen的区别有哪些Apr 29, 2022 pm 06:57 PM

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

linux怎么判断pcre是否安装linux怎么判断pcre是否安装May 09, 2022 pm 04:14 PM

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux中什么叫端口映射linux中什么叫端口映射May 09, 2022 pm 01:49 PM

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

linux中eof是什么linux中eof是什么May 07, 2022 pm 04:26 PM

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

linux怎么查询mac地址linux怎么查询mac地址Apr 24, 2022 pm 08:01 PM

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

手机远程linux工具有哪些手机远程linux工具有哪些Apr 29, 2022 pm 05:30 PM

手机远程linux工具有:1、JuiceSSH,是一款功能强大的安卓SSH客户端应用,可直接对linux服务进行管理;2、Termius,可以利用手机来连接Linux服务器;3、Termux,一个强大的远程终端工具;4、向日葵远程控制等等。

linux中lsb是什么意思linux中lsb是什么意思May 07, 2022 pm 05:08 PM

linux中,lsb是linux标准基础的意思,是“Linux Standards Base”的缩写,是linux标准化领域中的标准;lsb制定了应用程序与运行环境之间的二进制接口,保证了linux发行版与linux应用程序之间的良好结合。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

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

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。