Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh iostat
của Linux, một công cụ mạnh mẽ để theo dõi hiệu suất đầu vào/đầu ra (I/O) của hệ thống, bao gồm mức sử dụng CPU và thống kê I/O của đĩa. Chúng ta sẽ bắt đầu bằng cách tìm hiểu mục đích và cách sử dụng của lệnh iostat
, bao gồm cách cài đặt gói sysstat
cần thiết và chạy lệnh iostat
cơ bản để xem thống kê CPU và I/O. Sau đó, chúng ta sẽ đi sâu hơn vào việc phân tích thống kê CPU và I/O do iostat
cung cấp, cũng như theo dõi hiệu suất I/O của đĩa bằng lệnh.
Tìm hiểu Mục đích và Cách sử dụng của Lệnh iostat
Trong bước này, chúng ta sẽ tìm hiểu về mục đích và cách sử dụng của lệnh iostat
trong Linux. Lệnh iostat
là một công cụ mạnh mẽ để theo dõi hiệu suất đầu vào/đầu ra (I/O) của hệ thống, bao gồm mức sử dụng CPU và thống kê I/O của đĩa.
Đầu tiên, hãy cài đặt gói sysstat
, bao gồm lệnh iostat
:
sudo apt-get update
sudo apt-get install -y sysstat
Bây giờ, hãy chạy lệnh iostat
để xem thống kê CPU và I/O cơ bản:
iostat
Ví dụ đầu ra:
Linux 5.15.0-52-generic (labex-ubuntu) 07/11/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.25 0.00 0.00 99.25
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.17 1.67 1.67 1024 1024
Đầu ra hiển thị mức sử dụng CPU trung bình và các số liệu I/O của đĩa khác nhau, chẳng hạn như số lượng giao dịch mỗi giây (tps), thông lượng đọc và ghi (kB_read/s và kB_wrtn/s) và tổng dữ liệu đọc và ghi (kB_read và kB_wrtn).
Bạn cũng có thể sử dụng lệnh iostat
để theo dõi các thiết bị cụ thể hoặc hiển thị thống kê chi tiết hơn. Ví dụ: để theo dõi thiết bị sda
cứ sau 2 giây trong 10 lần:
iostat -d sda 2 10
Điều này sẽ cung cấp một cái nhìn chi tiết hơn về hiệu suất I/O cho thiết bị sda
theo thời gian.
Phân tích Thống kê CPU và I/O với iostat
Trong bước này, chúng ta sẽ tìm hiểu cách phân tích thống kê CPU và I/O do lệnh iostat
cung cấp.
Đầu tiên, hãy chạy lệnh iostat
để xem thống kê hệ thống tổng thể:
iostat
Ví dụ đầu ra:
Linux 5.15.0-52-generic (labex-ubuntu) 07/11/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.25 0.00 0.00 99.25
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.17 1.67 1.67 1024 1024
Đầu ra hiển thị mức sử dụng CPU trung bình và các số liệu I/O của đĩa khác nhau. Hãy chia nhỏ thông tin:
avg-cpu
: Phần này hiển thị mức sử dụng CPU trung bình, bao gồm tỷ lệ phần trăm thời gian dành cho chế độ người dùng (%user
), chế độ nice (%nice
), chế độ hệ thống (%system
), chờ I/O (%iowait
) và thời gian rảnh (%idle
).Device
: Phần này hiển thị thống kê I/O cho mỗi thiết bị khối, chẳng hạn như số lượng giao dịch mỗi giây (tps
), thông lượng đọc và ghi (kB_read/s
vàkB_wrtn/s
) và tổng dữ liệu đọc và ghi (kB_read
vàkB_wrtn
).
Bây giờ, hãy xem xét kỹ hơn về mức sử dụng CPU. Để xem thống kê CPU cho từng CPU riêng lẻ, chúng ta có thể sử dụng tùy chọn -c
:
iostat -c
Ví dụ đầu ra:
Linux 5.15.0-52-generic (labex-ubuntu) 07/11/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.25 0.00 0.00 99.25
0.50 0.00 0.25 0.00 0.00 99.25
Điều này hiển thị mức sử dụng CPU cho từng lõi CPU riêng lẻ.
Để theo dõi thống kê I/O cho một thiết bị cụ thể, chúng ta có thể sử dụng tùy chọn -d
theo sau là tên thiết bị:
iostat -d sda
Ví dụ đầu ra:
Linux 5.15.0-52-generic (labex-ubuntu) 07/11/2023 _x86_64_ (2 CPU)
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.17 1.67 1.67 1024 1024
Điều này cung cấp thống kê I/O chi tiết hơn cho thiết bị sda
.
Theo dõi Hiệu suất I/O của Đĩa bằng iostat
Trong bước này, chúng ta sẽ tìm hiểu cách sử dụng lệnh iostat
để theo dõi hiệu suất I/O của đĩa của hệ thống.
Đầu tiên, hãy chạy lệnh iostat
với tùy chọn -x
để có được thống kê I/O của đĩa chi tiết hơn:
iostat -x
Ví dụ đầu ra:
Linux 5.15.0-52-generic (labex-ubuntu) 07/11/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.25 0.00 0.00 99.25
Device r/s w/s rkB/s wkB/s await r_await w_await svctm %util
sda 0.17 0.17 1.67 1.67 5.00 5.00 5.00 2.00 0.03
Các số liệu bổ sung do tùy chọn -x
cung cấp bao gồm:
r/s
: Số lần đọc mỗi giâyw/s
: Số lần ghi mỗi giâyrkB/s
: Thông lượng đọc tính bằng kB/swkB/s
: Thông lượng ghi tính bằng kB/sawait
: Thời gian trung bình cho các yêu cầu I/O (tính bằng mili giây)r_await
: Thời gian trung bình cho các yêu cầu đọc (tính bằng mili giây)w_await
: Thời gian trung bình cho các yêu cầu ghi (tính bằng mili giây)svctm
: Thời gian phục vụ trung bình (tính bằng mili giây)%util
: Tỷ lệ phần trăm thời gian CPU mà các yêu cầu I/O được đưa ra (mức sử dụng CPU cho I/O)
Các số liệu này có thể giúp bạn xác định các nút thắt cổ chai hiệu suất hoặc các vấn đề với I/O của đĩa.
Để theo dõi hiệu suất I/O của đĩa theo thời gian, bạn có thể sử dụng lệnh iostat
với tùy chọn -x
và chỉ định độ trễ và số lượng:
iostat -x 2 5
Điều này sẽ hiển thị thống kê I/O của đĩa cứ sau 2 giây trong 5 lần lặp, cho phép bạn quan sát các thay đổi về hiệu suất theo thời gian.
Tóm tắt
Trong lab này, chúng ta đã tìm hiểu về mục đích và cách sử dụng của lệnh iostat
trong Linux. Lệnh iostat
là một công cụ mạnh mẽ để theo dõi hiệu suất đầu vào/đầu ra (I/O) của hệ thống, bao gồm mức sử dụng CPU và thống kê I/O của đĩa. Chúng ta đã cài đặt gói sysstat
và chạy lệnh iostat
để xem thống kê CPU và I/O cơ bản, cũng như thống kê chi tiết hơn cho các thiết bị cụ thể. Chúng ta cũng đã học cách phân tích thống kê CPU và I/O do lệnh iostat
cung cấp, bao gồm số lượng giao dịch mỗi giây, thông lượng đọc và ghi, và tổng dữ liệu đọc và ghi.