ホームページ  >  記事  >  php教程  >  Linux でのパフォーマンス異常の特定とパフォーマンスの監視

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

高洛峰
高洛峰オリジナル
2016-11-08 10:25:361551ブラウズ

はじめに: Linux は現在広く使用されていますが、パフォーマンス監視の指標は I/O、メモリ、TCP 接続数、ネットワークにすぎません。 、プロセスまたはスレッド 使用されるコマンドは、iostat、vmstat、sar、mpstat、netstat、ss、iftop、free、pstree/ps、pidstat、top、(uptime) 以下で詳しく説明します。

1. Disk I/ O (iostat)

私たちのマシン上の多くのデータはディスクに保存されており、読み取ったデータの多くはディスクとやり取りする必要がありますが、ディスクは低速デバイスでもあり、多くの場合ブロックされる可能性があります。したがって、ディスク I/O の監視は非常に重要です。ディスクの状態を診断するには iostat を使用します。使用されるマシンは Tencent Cloud ホストです。

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

ps: デバイスの 1 秒あたりの送信数。1 秒あたりの I/O リクエストの数を示します。

Blk_read/s: 1 秒あたりにデバイスから読み取られたデータの量

Blk_wrtn/s: 1秒あたりのデバイス書き込みデータ量

Blk_read: 読み取られたデータの合計量

Blk_wrtn: 書き込まれたデータの合計量

%user: ユーザーモードプロセスによって使用されるCPU負荷を表します

%nice: 優先プロセスの使用量を表しますCPU 負荷

%system: カーネル状態プロセスによって使用される CPU 負荷を表します

%iowait: CPU が I/O を待機しているときの CPU 負荷を表します

%steal: スチールされた CPU 負荷を表し、これは次で使用されます仮想化テクノロジーで使用されます

%idle: アイドル状態の CPU 負荷を表します

iostat には、拡張情報を表す一般的に使用されるパラメーター オプション -x もあります

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

rrqm/s: このデバイスに関連する 1 秒あたりの数読み取りリクエストがマージされました (複数の I/O マージ操作)

wrqm/s: このデバイスに関連する 1 秒あたりの書き込みリクエストの数がマージされました

r/s: 1 秒あたりに送信されたデバイスの読み取りリクエストの数

w/s: 1 秒あたりにデバイスに送信された書き込みリクエストの数

rsec/s: 1 秒あたりのデバイス セクターの読み取り数

wsec/s: 1 秒あたりのデバイス セクターへの書き込み数

avgrq- sz: 平均リクエストセクターサイズ

avgqu-sz: 平均リクエストキュー長

await: 各I/Oリクエストの平均処理時間(待ち時間)

r_await: 各read I/Oリクエストの平均処理時間

w_await: 各書き込み I/O リクエストの平均処理時間

svctm: 各 I/O オペレーションの平均サービス時間を示します。 svctm 値と await 値が非常に近い場合は、I/O の待機がほとんどないことを意味します。await 値が svctm 値よりもはるかに大きい場合は、I/O キューの待機時間が長すぎることを意味します。

%util: I/O 操作の処理に費やされた合計時間、つまり消費された CPU の割合があります。たとえば、統計時間間隔が 1 秒の場合、デバイスは 0.65 秒間 I/O を処理し、0.35 秒間アイドル状態になります。このデバイスの %util=0.65/1=65% は、通常、このパラメータが 100% の場合、デバイスがフル容量に近い状態で動作していることを意味します (もちろん、%util が複数のディスクがある場合でも)。 100%、ディスクの同時実行能力のため、ディスク使用量が必ずしもボトルネックに達するとは限りません)


2. メモリ (空き)

Linux システムでは、メモリ使用量をチェックします。 free コマンドを使用して、

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

の最初の行の情報を表示します (オペレーティング システム レベルから考えることができます)

total: 物理メモリの合計サイズ

used: 割り当てられたサイズ

free: そうでない割り当てられたサイズ

shared: 主に IPC 通信に使用される共有メモリのサイズ

buffers: ブロックデバイスのバッファリングに使用される

cached: ファイルコンテンツのバッファリング、つまりキャッシュに使用される

「キャッシュ」とは分割することメモリ領域内のブロック。プロセスとハードディスクの間のバッファとして、プロセスはデータをキャッシュに書き込みます。データを読み取る必要がある場合、データは「ダート」キャッシュではなく「ハイウェイ」キャッシュから直接読み取られます。ロード」ハードディスク。読み取りにより、パフォーマンスが大幅に向上します

ここのバッファには実際にデータのメタデータ (ディレクトリ名、ファイル サイズ、ファイル ストレージ ブロック、変更時刻、アクセス許可など) が保存され、キャッシュにはデータが保存されます。最近読み取ったドキュメントのデータ。

情報の 3 行目 (アプリケーション レベルから考えることができます)

ここでの -/+ バッファー/キャッシュは、それぞれ -buffers/cache と +buffers/cache です

-buffers/cache = used (いいえ1行) -buffers-cached は、実際には現在のプログラムによって「実際に使用されている」「物理メモリ」です

+buffers/cache =buffers+cachedとして使用するためにシステムに一時的に「貸し出される」メモリのサイズを意味します。 「バッファ」

used=(+buffers/cached)+(-buffers/cached)

したがって、アプリケーションレベルから見ると、利用可能なメモリ = 空きメモリ+バッファ+キャッシュ

次の方法で詳細情報を確認できます。 .

~ 猫 /proc/meminfo

MemTotal: 1020128 kB

MemFree: 670772 kB

バッファ: 97780 kB

キャッシュ済み: 100980 kB

SwapCached: 0 kB

アクティブ: 164988 kB

非アクティブ: 117296 kB

アクティブ(anon): 83536 kB

非アクティブ(anon): 160 kB

アクティブ(ファイル): 81452 kB

非アクティブ(ファイル): 117136 kB

不可避: 0 kB

ロック済み: 0 kB

SwapTotal: 0 kB

SwapFree: 0 kB

ダーティ: 92 kB

ライトバック: 0 kB

AnonPages: 83504 kB

マップ済み: 17500 kB

シュメム: 172 kB

スラブ: 46696 kB

S回収可能: 28652 kB

S未回収: 18044 kB

KernelStack: 1744 kB

PageTables: 2636 kB

NFS_Unstable: 0 kB

バウンス: 0 kB

ライトバックTmp: 0 kB

CommitLimit: 510064 kB

Committed_AS: 343800 kB

VmallocTotal: 34359738367 kB

Vmallocused : 7112 kB

VmallocChunk: 34359727304 kB

ハードウェア破損: 0 kB

AnonHugePages: 36864 kB

HugePages_Total: 0

HugePages_Free: 0

HugePages_Rsvd: 0

HugePages_Surp: 0

Hugepagesize: 2048 kB

DirectMap4k : 8184 kB

DirectMap2M: 1040384 kB


三,CPU(dstat,mpstat)

首先我们使用dstatコマンド来查看下我们的CPU情况,他能够实時のお知らせ、

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

每2秒出力1回、1共出力10回

cpu:hiq、siq分別はハード割り込みおよび软割り込み次数

system:int、csw分別はシステムの割り込み次数(割り込み)および上下文切换次数(コンテキストスイッチ) )。のネットワーク情報

私は何を考えていますか?時間(%)、含まないnice值は负进程 (usr/total)*100

%nice 内部時間セグメント里、nice值は负进程のCPU時間(%) (nice/合計)*100
%sys 内部時間セグメント里、内部核時間(%) (システム/合計)*100

%iowait 内部時間区間里、ハード盘IO等待機時間(%) (iowait/合計)*100

%irq 内部時間区間里、ハード中断時間(%) (irq /total)*100
%soft 内部時間区間で、软中断時間(%) (softirq/total)*100

%idle 内部時間区間で、何らかの理由で CPU 等待機磁盘IO オペレーション外を削除しました。時間設定時間 (%) (アイドル/合計)*100

四,TCP 接続数(ss,netstat)

ss はソケットの統計の書き込み、名前考え ss コマンドはソケットの情報を取得するために使用され、他のユーザーが表示および表示できますnetstat に似た内容ですが、netstat よりも高性能であり、ソケットの接続数が非常に多い場合は、netstat コマンドを使用するかどうかに関係なく、内部コアで接続数cat が表示されます。 /proc/net/tcp の時間は都市が非常に遅いです。

ss が高速である理由は、TCP プロトコルの tcp_diag を使用するためです。tcp_diag は、Linux カーネルで直接の情報を取得できるため、ss の効率が保証されます。

netstat と ss を比較できます。写真と真実があります

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

netstat コマンドの時間は ss コマンドの時間よりも明らかに遅いです

netstat コマンド

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

システム内のデーモンプロセスへの接続ステータス情報と監視対象のポート番号を確認できます

-t:TCP接続を示します

-u:UDP接続を示します

-n:数値形式で情報を表示することを示します

-p: リスニングポート番号の表示を示します


システム内のデーモンプロセスの監視ステータスを表示します

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

Stateステータスの表示が確認できます


ssコマンド

現在のサーバーのネットワーク接続統計: ss - s

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

他の ss の使用法は netstat と同じです


5. ネットワーク (iftop)

iftop -i eth0 を使用します

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

Ctrl+c を使用して終了し、表示を終了します

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

-i パラメーターを使用して、さまざまなネットワークカードのトラフィック情報を監視できます。iftop のどのインターフェイスで p を押してポートのトラフィック情報を表示できます

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

。 6. プロセス情報 (ps/pstree、top、pidstat)

プロセス ツリーを表示するには pstree を使用します。すべてのプロセスは init プロセスの子プロセスです

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

ps コマンド

などの特定のプロセスを表示するにはMySQL プロセスでは ps aux mysqld または ps -elf mysqld を使用できます。Linux は Unix からいくつかのアイデアを継承しているため、この 2 つに本質的に違いはありません。1 つは Unix の Sys-v スタイルで、もう 1 つは BSD スタイルです

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

彼の情報を詳細に見ることができます

pidstat コマンド

pidstat を使用して、各プロセスの pid ステータス情報とそれが占有する CPU 情報を表示できます

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

総合的な表示 (vmstat、top、sar)

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

メモリ、スワップパーティション、I/O、CPU、およびプロセスコンテキストの切り替え時間が表示されます

top コマンド

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

このインターフェイス内:

m を押してメモリ使用量で並べ替えます

P を押してCPU 使用率で並べ替えます

M を押して常駐メモリ サイズで並べ替えます

k を押してプロセスを強制終了します


sar コマンド

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

場合によっては、Linux の起動にかかった時間をカウントする必要があるかもしれません。 uptime コマンドはこの情報を表示します。top も表示できます

uptime コマンド

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

top コマンドは

Linux でのパフォーマンス異常の特定とパフォーマンスの監視

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