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ởisar
ở 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 -P
và ALL
, 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 -I
và ALL
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
và -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
, mptstat
và pidstat
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.