GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでのSarコマンドと例


Sarコマンドは、CPU使用率、メモリ使用率、I / Oデバイス消費量、ネットワークモニター、スワップ、負荷平均など、さまざまなリソースに関する統計レポートを作成するために使用されます。

SARはSystemActivityReporterの略で、Linux管理者がシステムパフォーマンスを監視し、ボトルネックを調査するための非常に便利なツールです。このツールはsysstatパッケージによって提供されます。

このチュートリアルでは、sysstatパッケージをインストールし、Linuxでsarコマンドを使用する方法について説明します。

sysstatパッケージをインストールする

sysstatパッケージには、Linuxシステムのパフォーマンス監視ツールのコレクションである多くのユーティリティが含まれています。 Sarは、sysstatパッケージに属するツールです。

RHELおよびCentOSへのsysstatパッケージのインストール

$ sudo yum install sysstat

sysstatが正常にインストールされたら、次のコマンドでインストールを確認します。

$ which sar
/usr/bin/sar

デフォルトでは、sysstatはサーバー統計をファイル'/ var / log / sa / saDD'(DDは月の日です。例:/ var / log / sa / sa08)に保存し、データを28日間保持します。それ以上のデータを保持したい場合は、sysstat構成ファイル'/ etc / sysconfig/sysstat'を変更する必要があります。

$ sudo cat /etc/sysconfig/sysstat

HISTORY=28

HISTORYの値を変更します ログを保持する日数を指定します。

UbuntuとDebianへのsysstatパッケージのインストール

$ sudo apt install sysstat

コマンドによるインストールの確認:

$ which sar
/usr/bin/sar

Ubuntuでは、CentOSが不要なときに有効にする必要があります。

お気に入りのエディター(vim、nano、gedit)を使用して、次のファイルを編集します:

$ sudo nano /etc/default/sysstat

そして、ENABLEDを設定します trueに :

ENABLED="true"

サービスを再開します

$ sudo service sysstat restart

Ubuntuでは、構成ファイルは「/ etc / sysstat / sysstat」であり、データはデフォルトで7日以内に保持されます。

$ cat /etc/sysstat/sysstat

HISTORY=7

Fedora 21から、sysstatがデフォルトで提供され、以下のコマンドを実行するだけで済みます。

$ sudo systemctl enable sysstat.service
$ sudo systemctl start sysstat.service

データを収集するために10分ごとに実行され、対応するファイル/ var / log / sa/saDDに保存されるsysstatのcronジョブがあります。このcron実行の間隔を変更する場合は、「/ etc / cron.d/sysstat」で変更できます。

systemdの場合、タイマーユニットファイルは10分ごとにsysstat-collect.service(/usr/lib/systemd/system/sysstat-collect.service)を呼び出して統計を収集します。

$ cat /etc/cron.d/sysstat

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

Sarコマンドの使用法

sarコマンドの基本的な使用法は次のとおりです。

sar [option] [-o filename] [-f filename] [interval] [count]

場所:

間隔 :秒単位の期間。

カウント: 出力統計を作成する回数。

1。 CPUアクティビティの検索

デフォルトでは(他のオプションは指定されていません)、sarコマンドはサーバーのCPUアクティビティを報告します。また、オプション-u CPU使用率レポートを取得するために使用できます。

2秒ごとに3回CPUアクティビティレポートを取得する場合は、次のsarコマンドを使用できます。

$ sar -u 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	09/06/2020 	_x86_64_	(2 CPU)

22:26:54        CPU     %user     %nice   %system   %iowait    %steal     %idle
22:26:56        all      4,03      0,00      0,50      0,00      0,00     95,47
22:26:58        all      8,08      0,00      0,51      0,00      0,00     91,41
22:27:00        all     12,50      0,00      1,00      0,00      0,00     86,50
Average:        all      8,21      0,00      0,67      0,00      0,00     91,11

場所:

%user ユーザーレベル(ユーザースペース)での実行中に発生したCPU使用率のパーセンテージを示します

%system システムレベル(カーネルスペース)での実行中に発生したCPU使用率のパーセンテージを示します

%idle 1つまたは複数のCPUがアイドル状態で、システムに未処理のディスクI/O要求がなかった時間の割合です。

バイナリ形式のファイルで出力を取得する場合は、-oを追加する必要があります sarコマンドを使用したファイル名。例:

$ sar -u 2 3 -o log-file

また、特定の日のCPUアクティビティレポートを取得できます。たとえば、2020年6月9日です。次のように見つけることができます:

$ sudo sar -u -f /var/log/sa/sa09

2。各プロセッサのCPU使用率を確認する

-u オプションは、すべてのプロセッサのCPU使用率を提供します。すべてのプロセッサのCPUアクティビティを個別に検索する場合は、-Pを使用する必要があります。 オプション。

$ sar -P ALL 1 1

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

05:38:18        CPU     %user     %nice   %system   %iowait    %steal     %idle
05:38:19        all      3,03      0,00      0,00      0,00      0,00     96,97
05:38:19          0      3,96      0,00      0,99      0,00      0,00     95,05
05:38:19          1      3,00      0,00      0,00      0,00      0,00     97,00

Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
Average:        all      3,03      0,00      0,00      0,00      0,00     96,97
Average:          0      3,96      0,00      0,99      0,00      0,00     95,05
Average:          1      3,00      0,00      0,00      0,00      0,00     97,00

3。メモリ使用量を見つける

-rを使用して、時間の経過に伴うメモリ使用量(サーバーの使用済みメモリと空きメモリ)を確認できます。 スイッチ。

$ sar -r 1 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

05:41:04    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
05:41:05       855300   3025220     77,96         0   1495276   2426864     30,55   1265008   1158172       100
05:41:06       854800   3025720     77,97         0   1495276   2426864     30,55   1265132   1158172       100
05:41:07       855032   3025488     77,97         0   1495276   2426864     30,55   1265012   1158172       100
Average:       855044   3025476     77,97         0   1495276   2426864     30,55   1265051   1158172       100

場所:

kbmemfree 使用可能な空きメモリの量をキロバイト単位で示します。

kbmemused 使用されているメモリの量をキロバイト単位で示します。これは、カーネル自体が使用するメモリを考慮していません。

特定の日のメモリ使用量を収集する場合は、次のように言います。9月5日、次のコマンドのように実行する必要があります:

$ sar -r -f /var/log/sa/sa05

4。スワッピングアクティビティを見つける

-Wを使用して、マシンのスワップ使用量を確認できます。 オプション。

$ sar -W 1 3
Linux 2.6.18-274.18.1.el5 (myserver) 09/06/2012
03:31:12 PM pswpin/s pswpout/s
03:31:13 PM 16.16 0.00
03:31:14 PM 16.00 0.00
03:31:15 PM 15.84 0.00
Average: 16.00 0.00

場所:

pswpin / s システムが1秒間に持ち込んだスワップページの総数を示します。

pswpout / s システムが1秒間に引き出すスワップページの総数を示します。

9月5日など、特定の日のスワップ使用量を収集する場合は、次のsarコマンドとして実行する必要があります。

$ sar -W -f /var/log/sa/sa05

5。時間の経過に伴う負荷の平均を求めます

-qを使用して、時間の経過に伴う負荷平均を見つけることができます オプション。

$ sar -q 1 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:16:13      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
06:16:14            0       329      0,00      0,04      0,09         0
06:16:15            0       329      0,00      0,04      0,09         0
06:16:16            0       329      0,00      0,04      0,09         0
Average:            0       329      0,00      0,04      0,09         0

場所:

runq-sz :実行キューの長さ(実行時間を待機しているタスクの数)を示します。

plist-sz :タスクリスト内のタスクの数を示します。

ldavg-1/5/15 :最後の1分間/過去5分間/過去15分間のシステム負荷の平均。

特定の日の負荷平均、たとえば9月5日を収集する場合は、sarコマンドに従って実行する必要があります。

$ sar -q -f /var/log/sa/sa05

6。マウントされたファイルシステムのレポート

-Fを使用して、現在のファイルシステムの統計を取得できます。 オプション

$ sar -F 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:30:18     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:20        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:20          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

06:30:20     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:22        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:22          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

06:30:22     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
06:30:24        30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
06:30:24          796       218     21,52     21,52    523947       341      0,07 /dev/sda1

Summary:     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
Summary         30410      5532     15,39     15,39  18245113    166407      0,90 /dev/mapper/centos-root
Summary           796       218     21,52     21,52    523947       341      0,07 /dev/sda1

特定の日にマウントされたファイルシステムを収集する場合は、6月10日と言います。

$ sar -F -f /var/log/sa/sa10

7。 iノード、カーネルテーブル、ファイルテーブルの詳細を報告する

-vでsarコマンドを使用すると、システムで使用されるiノード、プロセス、カーネルスレッド、およびファイルテーブルの詳細を取得できます。 オプション。

$ sar -v 2 3

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

06:57:23    dentunusd   file-nr  inode-nr    pty-nr
06:57:25       160833      2400    132081         3
06:57:27       160833      2400    132081         3
06:57:29       160833      2400    132081         3
Average:       160833      2400    132081         3

場所:

dentunusd :ディレクトリキャッシュ内の未使用のキャッシュエントリの数

file-nr: 使用中のファイルハンドルの数

iノード-nr: iノードハンドラー

pty-nr :疑似端末

8。 CPUのボトルネックを確認する

sarコマンドを使用して、CPUボトルネックの原因となる可能性のある割り込み番号を見つけることができます。

以下の例では、#9 システム割り込み#0を除いて最高でした 。

$ sar -I XALL 2 10
02:07:10 AM INTR intr/s
02:07:12 AM 0 992.57
02:07:12 AM 1 0.00
02:07:12 AM 2 0.00
02:07:12 AM 3 0.00
02:07:12 AM 4 0.00
02:07:12 AM 5 0.00
02:07:12 AM 6 0.00
02:07:12 AM 7 0.00
02:07:12 AM 8 0.00
02:07:12 AM 9 350.50

'/ proc/interrupts'ファイルの詳細も役立ちます。割り込みは、I / Oまたはその他の操作が発生する可能性があるように、処理を一時的に停止します。特定の操作が行われた後、処理が再開されます。したがって、マシンにインストールされている各デバイスには、ハードウェアやその他の周辺機器で使用されている設定と競合しない割り込み設定を提供する必要があることが非常に重要です。

$ sudo cat /proc/interrupts

           CPU0       CPU1       
  0:         48          0   IO-APIC-edge      timer
  1:         54          0   IO-APIC-edge      i8042
  8:          1          0   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 12:         35        116   IO-APIC-edge      i8042
 14:          0          0   IO-APIC-edge      ata_piix
 15:          0          0   IO-APIC-edge      ata_piix
 16:        118       2513   IO-APIC-fasteoi   vmwgfx
 24:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 25:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 26:          0          0   PCI-MSI-edge      PCIe PME, pciehp
 27:          0          0   PCI-MSI-edge      PCIe PME, pciehp
NMI:          0          0   Non-maskable interrupts
LOC:   35392807   14792833   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          0          0   Performance monitoring interrupts
IWI:    2677624     215297   IRQ work interrupts
...

最初の列はIRQ番号を示しています。次の列は割り込みのタイプを報告し、最後の列にはIRQに配置されているデバイスの名前が含まれています。

9。ネットワーク統計を報告する

ネットワーク統計のレポートを取得するには、-nを指定してsarコマンドを使用します。 オプション。例:

$ sar -n DEV

Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 	10/06/2020 	_x86_64_	(2 CPU)

19:20:23        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
19:20:24       ens192     11,00      4,00      1,80      2,75      0,00      0,00      0,00
19:20:24           lo     79,00     79,00     43,62     43,62      0,00      0,00      0,00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:       ens192     11,00      4,00      1,80      2,75      0,00      0,00      0,00
Average:           lo     79,00     79,00     43,62     43,62      0,00      0,00      0,00

場所:

DEV :ネットワークデバイスからの統計が報告されます

IFACE :インターフェースの名前(上記の例では:ens192)

rxpck / s / txpck / s :1秒あたりに受信/送信されたパケットの総数

DEV以外にも、次のようなオプションがあります。

NFS :NFSクライアントアクティビティを表示する

靴下 :使用中のソケットを示します

TCP :TCPv4ネットワークトラフィックを示します

UDP :UDPv4ネットワークトラフィックを示します

6月9日などの特定の日のネットワーク統計を収集する場合は、次のように実行する必要があります。

$ sar -n DEV -f /var/log/sa/sa09

Sarグラフ

上記のセクションでは、ターミナルからsarを使用する方法について説明しました。 kSarは、sarデータを視覚化するJavaベースのGUIアプリケーションです。

ksarのインストール:

$ sudo apt install openjdk-11-jdk
$ sudo yum install epel-release
$ sudo yum install java-openjdk

ksarをダウンロードして解凍します:

$ wget https://sourceforge.net/projects/ksar/files/latest/download
$ mv download kSar.zip
$ unzip kSar.zip

次に、dirにcdします

$ cd kSar-*

次に、run.shファイルを実行可能にして、rootとして実行します。

$ chmod +x run.sh
$ sudo su
./run.sh

これで、ローカルコマンドを実行してテストできます。 Data > Run Local Commandに移動します そこで、デフォルトのコマンドを使用できます。

次に、左側のパネルをクリックして右側に表示されたグラフを見ると、グラフを見ることができます。

ファイルからグラフをロードすることも可能です。まず、sarを実行する必要があります:

LC_ALL=C sar -A > /tmp/sar.data.txt

次に、メニューでData > Loadを選択します テキストファイルから、/tmpでファイルを見つけます または保存した場所ならどこでも。

結論

このチュートリアルでは、sarコマンドを使用して、システムリソースの使用状況に気づき、オペレーティングシステムでの作業中にパフォーマンスを向上させる方法を学びました。

sarの例から、システムアクティビティ情報を収集、報告、または保存するための優れたツールであることは明らかです。

読んでいただきありがとうございます。以下のコメントセクションに提案を残してください。

Related Read: 10 Linux iostat Command to Report CPU and I/O Statistics

Linux
  1. 例を含むLinuxTeeコマンド

  2. 例を含むLinuxヘッドコマンド

  3. LinuxでのJQコマンドと例

  1. 例を含むwcLinuxコマンド

  2. Linuxのソートコマンドと例

  3. Linuxでのエコーコマンド(例付き)

  1. Linuxでのmanコマンドと例

  2. LinuxでのAWKコマンドと例

  3. LinuxでのCurlコマンドと例