Lệnh iostat trong Linux

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/skB_wrtn/s) và tổng dữ liệu đọc và ghi (kB_readkB_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ây
  • w/s: Số lần ghi mỗi giây
  • rkB/s: Thông lượng đọc tính bằng kB/s
  • wkB/s: Thông lượng ghi tính bằng kB/s
  • await: 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.

400+ câu lệnh phổ biến trong Linux