Giới thiệu bộ công cụ Sysstat trên Linux Image Giới thiệu bộ công cụ Sysstat trên Linux

Bài viết này giới thiệu với các bạn bộ công cụ Sysstat trên hệ điều hành Linux. Từ đây giúp cho chúng ta có thể theo dõi hiệu suất của các hệ thống Linux(CPU, Bộ nhớ, I/O ..) tự tìm hiểu và tự học Linux cơ bản dễ dàng hơn.

1. Giới thiệu sysstat

Công cụ sysstat là một tiện ích dùng để giám sát tài nguyên hệ thống, hiệu suất và hoạt động sử dụng của chúng. Sysstat là một công cụ mã nguồn mở và miễn phí. Một số tính năng của sysstat như sau:

  • iostat: Được sử dụng để kiểm tra các số liệu thống kê về thống kê CPU và thống kê I/O cho các thiết bị khối và phân vùng.
  • vmstat: Dùng để báo cáo thống kê bộ nhớ ảo.
  • mpstat : Được sử dụng cho các báo cáo và thống kê chi tiết về CPU.
  • pidstat: Thống kê về các tiến trình, CPU, bộ nhớ.
  • sar: Lưu và báo cáo chi tiết về các tài nguyên (CPU, Bộ nhớ, IO, Mạng, kernel,...).
  • sadf: Được sử dụng để hiển thị dữ liệu được tạo bởi sar ở các định dạng khác nhau (CSV hoặc XML).

2. Cài đặt sysstat

Gói sysstat có trong hầu hết các bản phân phối Linux. Để kiểm tra xem gói sysstat có khả dụng trên hệ thống của chưa bằng cách chạy lệnh sau:

[root@localhost ~]# sar -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)

Nếu gói sysstat không có trên hệ thống của bạn, bạn có thể dễ dàng cài đặt như sau:

  • Đối với bản phân phối Debian/Ubuntu:

    Chạy lệnh sau để cài đặt gói sysstat:

    root@ubuntuserver:~# apt-get -y install sysstat
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages were automatically installed and are no longer required:
    apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libbrotli1 libjansson4 liblua5.2-0
    ssl-cert
    Use 'apt autoremove' to remove them.
    The following additional packages will be installed:
    libsensors-config libsensors5
    Suggested packages:
    lm-sensors isag
    ...
    
  • Đối với bản phân phối RHEL/CentOS:

    Chạy lệnh bên dưới để thực hiện cài đặt gói sysstat:

    [root@localhost ~]# yum -y install sysstat
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirrors.viethosting.com
     * extras: mirrors.viethosting.com
    * updates: mirrors.viethosting.com
    base                                                                                                                | 3.6 kB  00:00:00
    extras                                                                                                              | 3.4 kB  00:00:00
    updates                                                                                                             | 3.4 kB  00:00:00
    updates/7/x86_64/primary_db                                                                                         | 6.5 MB  00:00:02
    ...
    

3. Cách dùng lệnh mpstat

Ví dụ 1: Sử dụng lệnh mpstat không chứa bất kỳ đối số nào thì sẽ hiển thị hoạt động trung bình của tất cả các CPU.

[root@localhost ~]# mpstat
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:25:27 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:25:27 PM  all    0.35    0.00    0.31    0.11    0.00    0.00    0.00    0.00    0.00   99.23

Qua kết quả trong chúng ta thu được các thông số có ý nghĩa như sau:

  • 08:25:27 PM: Thời gian mà lệnh mpstat được thực thi.
  • all: Có nghĩa là tất cả các CPU.
  • %usr: Hiển thị tỷ lệ sử dụng CPU xảy ra trong khi thực thi ở cấp độ người dùng bao gồm các tiến trình, công việc người dùng đang chạy.
  • %nice: Tỷ lệ sử dụng CPU xảy ra trong khi thực hiện ở cấp độ người dùng với mức độ ưu tiên tốt.
  • %sys: Hiển thị tỷ lệ phần trăm sử dụng CPU xảy ra trong khi thực thi ở cấp hệ thống (kernel).
  • %iowait: Hiển thị phần trăm thời gian mà CPU không hoạt động trong thời gian hệ thống có yêu cầu đĩa I/O.
  • %irq: Hiển thị phần trăm thời gian mà CPU dành cho các ngắt phần cứng dịch vụ.
  • %soft: Hiển thị phần trăm thời gian mà CPU dành cho các phần mềm dịch vụ bị gián đoạn.
  • %steal: Hiển thị phần trăm thời gian dành cho sự chờ đợi CPU trong khi trình ảo hóa đang phục vụ một bộ xử lý ảo khác. Loại sử dụng CPU này sẽ chỉ xảy ra trong trường hợp máy ảo.
  • %guest: Hiển thị phần trăm thời gian dành cho CPU để chạy bộ xử lý ảo.
  • %gnice: Hiển thị phần trăm thời gian mà CPU dành điều hành một guest.
  • %idle: Hiển thị phần trăm thời gian mà CPU không hoạt động và hệ thống không có yêu cầu đĩa I/O.

Ví dụ 2: Sử dụng lệnh mpstat với tùy chọn -PALL, sẽ hiển thị số liệu thống kê về tất cả các CPU từng cái một bắt đầu từ 0 (0 sẽ là số đầu tiên).

[root@localhost ~]# mpstat -P ALL
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:25:48 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:25:48 PM  all    0.35    0.00    0.31    0.11    0.00    0.00    0.00    0.00    0.00   99.23
08:25:48 PM    0    0.35    0.00    0.31    0.11    0.00    0.00    0.00    0.00    0.00   99.23

Ví dụ 3: Khi chúng ta muốn hiển thị số liệu thống kê cho y số lần lặp lại sau khoảng thời gian x giây với trung bình của mỗi cpu sử dụng như sau:

[root@localhost ~]# mpstat -P ALL 2 3
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:26:14 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:26:16 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
08:26:16 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

08:26:16 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:26:18 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
08:26:18 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

08:26:18 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:26:20 PM  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
08:26:20 PM    0    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all    0.00    0.00    0.17    0.00    0.00    0.00    0.00    0.00    0.00   99.83
Average:       0    0.00    0.00    0.17    0.00    0.00    0.00    0.00    0.00    0.00   99.83

Ví dụ 4: Khi chúng ta sử dụng tùy chọn -IALL sẽ in tổng số thống kê ngắt về mỗi bộ xử lý như CPU, SCPU và SUM như bên dưới:

[root@localhost ~]#  mpstat -I ALL
Linux 5.2.1 (localhost.localdomain) 	07/29/2019 	_x86_64_	(1 CPU)

03:07:36 PM  CPU    intr/s
03:07:36 PM  all    191.97

03:07:36 PM  CPU        0/s        1/s        8/s        9/s       12/s       14/s       15/s       16/s       18/s       19/s       24/s       25/s       26/s       27/s       28/s       29/s       30/s       31/s       32/s       33/s       34/s       35/s       36/s       37/s       38/s       39/s       40/s       41/s       42/s       43/s       44/s       45/s       46/s       47/s       48/s       49/s       50/s       51/s       52/s       53/s       54/s       55/s       56/s       57/s       58/s       59/s       60/s       61/s       62/s       63/s      NMI/s      LOC/s      SPU/s      PMI/s      IWI/s      RTR/s      RES/s      CAL/s      TLB/s      TRM/s      THR/s      DFR/s      MCE/s      MCP/s      HYP/s      HRE/s      HVS/s      ERR/s      MIS/s      PIN/s      NPI/s      PIW/s
03:07:36 PM    0       0.08       0.06       0.01       0.00       0.43       0.00       0.00       5.00       0.43       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00      28.93       3.40       0.00       0.36       0.00       1.07       0.27       0.00       0.00     151.94       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.01       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00

03:07:36 PM  CPU       HI/s    TIMER/s   NET_TX/s   NET_RX/s    BLOCK/s IRQ_POLL/s  TASKLET/s    SCHED/s  HRTIMER/s      RCU/s
03:07:36 PM    0       0.01     134.61       0.17       3.76      29.56       0.00       0.63       0.00       0.00     163.13

Ví dụ 5: Chúng ta có thể nhận tất cả các thông tin với tùy chọn -A và tuỳ chọn này tương đương với -u, -I ALL, -p ALL:

[root@localhost ~]# mpstat -A
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:27:36 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
08:27:36 PM  all    0.34    0.00    0.31    0.11    0.00    0.00    0.00    0.00    0.00   99.24
08:27:36 PM    0    0.34    0.00    0.31    0.11    0.00    0.00    0.00    0.00    0.00   99.24

08:27:36 PM  CPU    intr/s
08:27:36 PM  all     78.50
08:27:36 PM    0     89.33

08:27:36 PM  CPU        0/s        1/s        8/s        9/s       12/s       14/s       15/s       16/s       18/s       19/s       24/s       25/s       26/s       27/s       28/s       29/s       30/s       31/s       32/s       33/s       34/s       35/s       36/s       37/s       38/s       39/s       40/s       41/s       42/s       43/s       44/s       45/s       46/s       47/s       48/s       49/s       50/s       51/s       52/s       53/s       54/s       55/s       56/s       57/s       58/s       59/s       60/s       61/s       62/s       63/s      NMI/s      LOC/s      SPU/s      PMI/s      IWI/s      RTR/s      RES/s      CAL/s      TLB/s      TRM/s      THR/s      DFR/s      MCE/s      MCP/s      HYP/s      HRE/s      HVS/s      ERR/s      MIS/s      PIN/s      NPI/s      PIW/s
08:27:36 PM    0       0.00       0.00       0.00       0.00       0.00       0.00       0.00       4.81       0.01       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       1.51       4.38       0.00       0.13       0.00       0.50       0.14       0.00       0.00      67.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00       0.00

08:27:36 PM  CPU       HI/s    TIMER/s   NET_TX/s   NET_RX/s    BLOCK/s IRQ_POLL/s  TASKLET/s    SCHED/s  HRTIMER/s      RCU/s
08:27:36 PM    0       0.00      52.00       0.18       4.51       1.99       0.00       0.15       0.00       0.06      30.44

4. Cách dùng lệnh pidtat

Lệnh pidstat được sử dụng để giám sát các tác vụ riêng lẻ hiện đang được quản lý bởi nhân Linux. Lệnh pidstat cũng có thể được sử dụng để giám sát các tiến trình con của các tác vụ được chọn.

Cú pháp lệnh pidtat như sau:

pidstat [option] [interval] [count]

Ví dụ 1: Sử dụng lệnh mpstat không chứa bất kỳ đối số nào thì sẽ hiển thị tất cả các tiến trình đang hoạt động như bên dưới:

[root@localhost ~]# pidstat
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:28:49 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
08:28:49 PM     0         1    0.01    0.03    0.00    0.03     0  systemd
08:28:49 PM     0         9    0.00    0.00    0.00    0.00     0  ksoftirqd/0
08:28:49 PM     0        10    0.00    0.01    0.00    0.01     0  rcu_sched
08:28:49 PM     0        11    0.00    0.00    0.00    0.00     0  migration/0
08:28:49 PM     0        23    0.00    0.00    0.00    0.00     0  khugepaged
08:28:49 PM     0       442    0.00    0.00    0.00    0.00     0  scsi_eh_1
08:28:49 PM     0       445    0.00    0.00    0.00    0.00     0  scsi_eh_2
08:28:49 PM     0       459    0.00    0.00    0.00    0.00     0  kworker/0:1H-kblockd
08:28:49 PM     0       573    0.00    0.00    0.00    0.00     0  kworker/u2:27-events_unbound
08:28:49 PM     0       586    0.01    0.00    0.00    0.01     0  irq/16-vmwgfx
08:28:49 PM     0       674    0.00    0.01    0.00    0.01     0  xfsaild/dm-0
...

Trong kết quả chúng ta có thể thấy: * PID: Số PID của tiến trình được theo dõi. * %usr: Phần trăm CPU được sử dụng bởi tiến trình trong khi thực thi ở cấp độ người dùng. * %system: Phần trăm CPU được sử dụng bởi tiến trình trong khi thực thi ở cấp hệ thống. * %guest: Phần trăm CPU được sử dụng cho tiến trình trong bộ xử lý ảo. * %CPU: Tổng phần trăm thời gian CPU được sử dụng bởi tiến trình. * CPU: Số bộ xử lý mà tiến trình được đính kèm. * Command: Tên lệnh của tiến trình.

Ví dụ 2: Để có thể in tất cả các tiến trình đang hoạt động và không hoạt động chúng ta sẽ sử dụng tùy chọn -p:

[root@localhost ~]# pidstat -p ALL
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:29:19 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
08:29:19 PM     0         1    0.01    0.03    0.00    0.03     0  systemd
08:29:19 PM     0         2    0.00    0.00    0.00    0.00     0  kthreadd
08:29:19 PM     0         3    0.00    0.00    0.00    0.00     0  rcu_gp
08:29:19 PM     0         4    0.00    0.00    0.00    0.00     0  rcu_par_gp
08:29:19 PM     0         6    0.00    0.00    0.00    0.00     0  kworker/0:0H-kblockd
08:29:19 PM     0         8    0.00    0.00    0.00    0.00     0  mm_percpu_wq
08:29:19 PM     0         9    0.00    0.00    0.00    0.00     0  ksoftirqd/0
08:29:19 PM     0        10    0.00    0.01    0.00    0.01     0  rcu_sched
08:29:19 PM     0        11    0.00    0.00    0.00    0.00     0  migration/0
...

Ví dụ 3: Chúng ta sử dụng lệnh pidstat kết hợp với tùy chọn -d N để lấy số liệu thống kê I/O và N là khoảng thời gian tính bằng giây để có được số liệu thống kê được làm mới. Tùy chọn này hữu ích trong trường hợp hệ thống của bạn đang trải qua I/O nặng và bạn muốn biết về các tiến trình tiêu tốn tài nguyên cao:

[root@localhost ~]# pidstat -d 1
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:29:53 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
08:29:54 PM     0       970      0.00      3.92      0.00  auditd
08:29:54 PM     0      1069      0.00      3.92      0.00  NetworkManager
08:29:54 PM     0      1456      0.00      3.92      0.00  rsyslogd

08:29:54 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

08:29:55 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

08:29:56 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

08:29:57 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

08:29:58 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
...

Ví dụ 4: Để biết số liệu thống kê cpu cùng với tất cả các luồng về id tiến trình trong khoảng thời gian 2 giây trong 2 lần, hãy sử dụng lệnh pidstat với tùy chọn -t như sau:

[root@localhost ~]# pidstat -t -p 674 2 3
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:30:40 PM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
08:30:42 PM     0       674         -    0.00    0.00    0.00    0.00     0  xfsaild/dm-0
08:30:42 PM     0         -       674    0.00    0.00    0.00    0.00     0  |__xfsaild/dm-0

08:30:42 PM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
08:30:44 PM     0       674         -    0.00    0.00    0.00    0.00     0  xfsaild/dm-0
08:30:44 PM     0         -       674    0.00    0.00    0.00    0.00     0  |__xfsaild/dm-0

08:30:44 PM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
08:30:46 PM     0       674         -    0.00    0.00    0.00    0.00     0  xfsaild/dm-0
08:30:46 PM     0         -       674    0.00    0.00    0.00    0.00     0  |__xfsaild/dm-0

Average:      UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
Average:        0       674         -    0.00    0.00    0.00    0.00     -  xfsaild/dm-0
Average:        0         -       674    0.00    0.00    0.00    0.00     -  |__xfsaild/dm-0

Ví dụ 5: Sử dụng tùy chọn -rh để xem về việc sử dụng bộ nhớ của các tiến trình thường thay đổi mức sử dụng của chúng trong khoảng thời gian 2 giây như bên dưới:

[root@localhost ~]# pidstat -rh 2 4
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1564147868     0      4839    233.00      0.00  108428   2528   0.12  pidstat

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1564147870     0         1      0.51      0.00  128156   8180   0.40  systemd
 1564147870     0      4839    209.09      0.00  108428   2572   0.13  pidstat

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1564147872     0         1      0.50      0.00  128156   8180   0.40  systemd
 1564147872     0       745      3.50      0.00   39088   5600   0.27  systemd-journal
 1564147872     0      4839    201.50      0.00  108428   2572   0.13  pidstat

#      Time   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
 1564147874     0      4839    201.50      0.00  108428   2572   0.13  pidstat

5. Cách dùng lệnh sar

Lệnh sar báo cáo về hiệu suất của toàn hệ thống giúp chúng ta xác định vị trí và cung cấp trợ giúp để tìm ra giải pháp cho các vấn đề hiệu suất của toàn hệ thống.

Linux Kernel duy trì một số bộ đếm bên trong, theo dõi tất cả các yêu cầu, thời gian hoàn thành và số lượng I/O,... Từ tất cả các thông tin này, sar tính toán tỷ lệ của các yêu cầu để tìm hiểu về các khu vực tắc nghẽn.

Ví dụ 1: Sử dụng lệnh sar và tạo một tập tin có tên sartest trong thư mục hiện tại. Cùng với tùy chọn -u dành cho chi tiết CPU và sẽ thu thập 5 báo cáo trong khoảng thời gian 2 giây như sau:

[root@localhost ~]# sar -u -o sartest 2 5
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:33:03 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
08:33:05 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
08:33:07 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
08:33:09 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
08:33:11 PM     all      0.50      0.00      0.50      0.00      0.00     99.00
08:33:13 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.10      0.00      0.20      0.00      0.00     99.70

Qua kết quả trong chúng ta thu được các thông số có ý nghĩa như sau:

  • 08:33:03 PM: Thời gian mà lệnh sar được thực thi.
  • all: Có nghĩa là tất cả các CPU.
  • %usr: Hiển thị tỷ lệ sử dụng CPU xảy ra trong khi thực thi ở cấp độ người dùng bao gồm các tiến trình, công việc người dùng đang chạy.
  • %nice: Tỷ lệ sử dụng CPU xảy ra trong khi thực hiện ở cấp độ người dùng với mức độ ưu tiên tốt.
  • %system: Hiển thị tỷ lệ phần trăm sử dụng CPU xảy ra trong khi thực thi ở cấp hệ thống (kernel).
  • %iowait: Hiển thị phần trăm thời gian mà CPU không hoạt động trong thời gian hệ thống có yêu cầu đĩa I/O.
  • %steal: Hiển thị phần trăm thời gian dành cho sự chờ đợi CPU trong khi trình ảo hóa đang phục vụ một bộ xử lý ảo khác. Loại sử dụng CPU này sẽ chỉ xảy ra trong trường hợp máy ảo.
  • %idle: Hiển thị phần trăm thời gian mà CPU không hoạt động và hệ thống không có yêu cầu đĩa I/O.

Ví dụ 2: Khi chúng ta muốn kiểm tra độ dài hàng đợi chạy, tổng số quy trình và tải trung bình bằng sử dụng tùy chọn -q như bên dưới:

[root@localhost ~]# sar -q 2 3
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:33:40 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
08:33:42 PM         1       224      0.00      0.00      0.00         0
08:33:44 PM         1       224      0.00      0.00      0.00         0
08:33:46 PM         1       224      0.00      0.00      0.00         0
Average:            1       224      0.00      0.00      0.00         0

Ví dụ 3: Kiểm tra số liệu thống kê về các file system được mount bằng cách kết hợp lệnh sar và tùy chọn -F như bên dưới:

[root@localhost ~]# sar -F 2 3
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:34:06 PM  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
08:34:08 PM     29394     15028     33.83     33.83  22581912    167272      0.74 /dev/mapper/cl-root
08:34:08 PM       675       339     33.38     33.38    523914       374      0.07 /dev/sda1

08:34:08 PM  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
08:34:10 PM     29394     15028     33.83     33.83  22581912    167272      0.74 /dev/mapper/cl-root
08:34:10 PM       675       339     33.38     33.38    523914       374      0.07 /dev/sda1

08:34:10 PM  MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
08:34:12 PM     29394     15028     33.83     33.83  22581912    167272      0.74 /dev/mapper/cl-root
08:34:12 PM       675       339     33.38     33.38    523914       374      0.07 /dev/sda1

Summary:     MBfsfree  MBfsused   %fsused  %ufsused     Ifree     Iused    %Iused FILESYSTEM
Summary         29394     15028     33.83     33.83  22581912    167272      0.74 /dev/mapper/cl-root
Summary           675       339     33.38     33.38    523914       374      0.07 /dev/sda1

Ví dụ 4: Để có thể xem số liệu thống kê mạng chúng ta sử dụng tùy chọn -n DEV:

[root@localhost ~]# sar -n DEV 1 2 | egrep -v lo

08:34:30 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
08:34:31 PM    ens224      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:31 PM    ens192      0.99      0.00      0.18      0.00      0.00      0.00      0.00

08:34:31 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
08:34:32 PM    ens224      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:32 PM    ens192      1.01      1.01      0.07      0.38      0.00      0.00      0.00

08:34:32 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
08:34:33 PM    ens224      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:33 PM    ens192      3.00      1.00      0.32      0.37      0.00      0.00      0.00

Ví dụ 5: Xem số liệu thống kê thiết bị đĩa như iostat bằng cách kết hợp tùy chọn -d với lệnh sar:

[root@localhost ~]# sar -d 2 3
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:34:51 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
08:34:53 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:53 PM   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:53 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:53 PM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:53 PM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

08:34:53 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
08:34:55 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:55 PM   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:55 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:55 PM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:55 PM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

08:34:55 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
08:34:57 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:57 PM   dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:57 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:57 PM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
08:34:57 PM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:       dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Ví dụ 6: Khi chúng ta muốn in số liệu thống kê bộ nhớ thì chúng ta sử dụng tùy chọn -r như sau:

[root@localhost ~]# sar -r 2 3
Linux 5.2.1 (localhost.localdomain) 	07/26/2019 	_x86_64_	(1 CPU)

08:35:14 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
08:35:16 PM   1445192    593272     29.10      2188    357848    378012     10.17    265368    174188         0
08:35:18 PM   1445192    593272     29.10      2188    357848    378012     10.17    265376    174188         0
08:35:20 PM   1445192    593272     29.10      2188    357848    378012     10.17    265380    174188         0
Average:      1445192    593272     29.10      2188    357848    378012     10.17    265375    174188         0

Ví dụ 7: Khi chúng ta muốn trích xuất bộ nhớ, trao đổi không gian và thống kê mạng từ tệp hoạt động hệ thống sa21 và hiển thị chúng theo định dạng có thể được cơ sở dữ liệu nhập vào sử dụng lệnh sadf và tùy chọn -d như sau:

[root@localhost ~]# sadf -d /var/log/sa/sa21 -- -n DEV
localhost.localdomain;-1;2019-07-21 04:37:05 UTC;LINUX-RESTART
# hostname;interval;timestamp;IFACE;rxpck/s;txpck/s;rxkB/s;txkB/s;rxcmp/s;txcmp/s;rxmcst/s
localhost.localdomain;599;2019-07-21 05:20:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:20:01 UTC;ens192;1.63;0.02;0.22;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:20:01 UTC;ens224;0.00;0.16;0.00;0.02;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:30:02 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:30:02 UTC;ens192;1.77;0.03;0.24;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:30:02 UTC;ens224;0.00;0.16;0.00;0.03;0.00;0.00;0.00
localhost.localdomain;598;2019-07-21 05:40:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;598;2019-07-21 05:40:01 UTC;ens192;1.73;0.03;0.23;0.00;0.00;0.00;0.00
localhost.localdomain;598;2019-07-21 05:40:01 UTC;ens224;0.03;0.11;0.00;0.02;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:50:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:50:01 UTC;ens192;1.72;0.02;0.23;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 05:50:01 UTC;ens224;0.07;0.10;0.02;0.02;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:00:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:00:01 UTC;ens192;1.68;0.02;0.22;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:00:01 UTC;ens224;0.06;0.16;0.02;0.02;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:10:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:10:01 UTC;ens192;2.05;0.03;0.25;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:10:01 UTC;ens224;0.04;0.16;0.01;0.03;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:20:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:20:01 UTC;ens192;1.91;0.02;0.24;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 06:20:01 UTC;ens224;0.03;0.10;0.01;0.02;0.00;0.00;0.00
localhost.localdomain;-1;2019-07-21 13:17:07 UTC;LINUX-RESTART
# hostname;interval;timestamp;IFACE;rxpck/s;txpck/s;rxkB/s;txkB/s;rxcmp/s;txcmp/s;rxmcst/s
localhost.localdomain;599;2019-07-21 14:00:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:00:01 UTC;ens224;0.00;0.16;0.00;0.02;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:00:01 UTC;ens192;3.47;0.96;0.37;0.13;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:10:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:10:01 UTC;ens224;0.00;0.16;0.00;0.03;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:10:01 UTC;ens192;2.56;0.33;0.29;0.04;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:20:01 UTC;lo;0.00;0.00;0.00;0.00;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:20:01 UTC;ens224;0.00;0.10;0.00;0.02;0.00;0.00;0.00
localhost.localdomain;599;2019-07-21 14:20:01 UTC;ens192;3.27;0.65;0.34;0.11;0.00;0.00;0.00

Ví dụ 8: Sử dụng lệnh sadf với tuỳ chọn -p-P để trích xuất số liệu thống kê CPU cho bộ xử lý 1 (bộ xử lý thứ hai) từ tệp dữ liệu hiện tại.

[root@localhost ~]# sadf -p -P 1
localhost.localdomain	-1	2019-07-29 07:39:26 UTC	LINUX-RESTART
localhost.localdomain	-1	2019-07-29 12:15:59 UTC	LINUX-RESTART

6. Lời kết

Qua bài trên, giúp cho chúng ta biết cách sử dụng bộ công cụ Sysstat trên hệ điều hành Linux. Với các ví dụ về lệnh sar, iostat, mptstatpidstat giúp cho chúng ta có thể quản lý hệ thống của chúng ta một cách an toàn và hiệu quả nhất.