Lệnh iotop trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh iotop trong Linux để theo dõi và phân tích việc sử dụng I/O đĩa trong thời gian thực. iotop là một công cụ dòng lệnh cung cấp thông tin chi tiết về các tiến trình đang sử dụng nhiều I/O đĩa nhất, cho phép bạn xác định các nút thắt cổ chai về hiệu suất và tối ưu hóa hiệu suất hệ thống.

Lab này bao gồm các bước sau: hiểu mục đích và chức năng của iotop, cài đặt và cấu hình iotop trên Ubuntu 22.04 và phân tích việc sử dụng I/O đĩa với iotop. Đến cuối lab này, bạn sẽ hiểu rõ hơn về cách sử dụng iotop để theo dõi và quản lý I/O đĩa trên hệ thống Linux của bạn.

Tìm hiểu Mục đích và Chức năng của iotop

Trong bước này, bạn sẽ tìm hiểu về mục đích và chức năng của lệnh iotop trong Linux. iotop là một công cụ dòng lệnh theo dõi việc sử dụng I/O đĩa trong thời gian thực, cung cấp thông tin chi tiết về các tiến trình đang sử dụng nhiều I/O đĩa nhất.

Để hiểu mục đích của iotop, trước tiên hãy khám phá tầm quan trọng của việc theo dõi I/O đĩa trong một hệ thống. Disk I/O (Input/Output) đề cập đến việc truyền dữ liệu giữa bộ nhớ của hệ thống và các thiết bị lưu trữ, chẳng hạn như ổ cứng hoặc ổ đĩa thể rắn (SSDs). Việc theo dõi I/O đĩa là rất quan trọng vì nó có thể giúp xác định các nút thắt cổ chai về hiệu suất, phát hiện các tiến trình sử dụng nhiều tài nguyên và tối ưu hóa hiệu suất hệ thống.

iotop cung cấp các chức năng chính sau:

  1. Theo dõi thời gian thực: iotop hiển thị việc sử dụng I/O đĩa hiện tại trong thời gian thực, cho phép bạn quan sát hiệu suất của hệ thống và xác định bất kỳ sự cố nào khi chúng xảy ra.

  2. Chi tiết cấp tiến trình: iotop cung cấp thông tin chi tiết về các tiến trình đang tiêu thụ nhiều I/O đĩa nhất, bao gồm ID tiến trình, người dùng, tốc độ đọc và ghi cũng như tổng mức sử dụng I/O đĩa.

  3. Sắp xếp và lọc: iotop cho phép bạn sắp xếp đầu ra theo nhiều tiêu chí khác nhau, chẳng hạn như tốc độ đọc hoặc ghi và lọc kết quả để tập trung vào các tiến trình hoặc người dùng cụ thể.

  4. Thông tin chi tiết về việc sử dụng tài nguyên: Bằng cách hiểu các mẫu sử dụng I/O đĩa, bạn có thể xác định các tiến trình sử dụng nhiều tài nguyên, tối ưu hóa các hoạt động liên quan đến đĩa và cải thiện hiệu suất tổng thể của hệ thống.

Hãy chuyển sang bước tiếp theo, nơi bạn sẽ học cách cài đặt và cấu hình iotop trên hệ thống Ubuntu 22.04 của mình.

Cài đặt và Cấu hình iotop trên Ubuntu 22.04

Trong bước này, bạn sẽ học cách cài đặt và cấu hình lệnh iotop trên hệ thống Ubuntu 22.04 của mình.

Đầu tiên, hãy cập nhật chỉ mục gói và cài đặt gói iotop:

sudo apt-get update
sudo apt-get install -y iotop

Ví dụ đầu ra:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
...
Fetching 172 kB in 0s (0 B/s)
Extracting templates from packages: 100%
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  iotop
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 44.5 kB of archives.
After this operation, 141 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 iotop amd64 1.22-2 [44.5 kB]
Fetching packages...
Selecting previously unselected package iotop.
(Reading database ... 25105 files and directories currently installed.)
Preparing to unpack .../iotop_1.22-2_amd64.deb ...
Unpacking iotop (1.22-2) ...
Setting up iotop (1.22-2) ...
Processing triggers for man-db (2.10.2-1) ...

Bây giờ iotop đã được cài đặt, hãy khám phá các tùy chọn cấu hình của nó. iotop không yêu cầu bất kỳ cấu hình cụ thể nào, nhưng bạn có thể tùy chỉnh hành vi của nó bằng cách sử dụng các tùy chọn dòng lệnh.

Một số tùy chọn iotop thường được sử dụng bao gồm:

  • -o: Chỉ hiển thị các tiến trình thực sự đang thực hiện I/O
  • -b: In ở chế độ hàng loạt, không có ncurses
  • -n NUM: Số lần lặp trước khi kết thúc
  • -d DELAY: Độ trễ giữa các lần lặp, tính bằng giây (mặc định là 3)

Ví dụ: để chạy iotop ở chế độ hàng loạt và chỉ hiển thị các tiến trình thực sự đang thực hiện I/O, bạn có thể sử dụng lệnh sau:

sudo iotop -o -b

Ví dụ đầu ra:

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
  1234 be/4 labex     0.00 B/s   0.00 B/s  0.00 %  0.00 % iotop
  5678 be/4 labex     0.00 B/s   0.00 B/s  0.00 %  0.00 % bash
  9012 be/4 labex     0.00 B/s   0.00 B/s  0.00 %  0.00 % sleep 60

Thao tác này sẽ chạy iotop ở chế độ hàng loạt, chỉ hiển thị các tiến trình hiện đang thực hiện I/O đĩa.

Bây giờ bạn đã cài đặt và cấu hình iotop, hãy chuyển sang bước tiếp theo, nơi bạn sẽ học cách phân tích việc sử dụng I/O đĩa với iotop.

Phân tích Sử dụng I/O Đĩa với iotop

Trong bước này, bạn sẽ học cách sử dụng lệnh iotop để phân tích việc sử dụng I/O đĩa trên hệ thống Ubuntu 22.04 của mình.

Đầu tiên, hãy khởi động lệnh iotop ở chế độ tương tác:

sudo iotop

Thao tác này sẽ hiển thị chế độ xem thời gian thực về việc sử dụng I/O đĩa trên hệ thống của bạn. Đầu ra sẽ hiển thị các thông tin sau:

  • TID: ID tiến trình của tiến trình đang sử dụng I/O đĩa.
  • PRIO: Mức độ ưu tiên I/O của tiến trình.
  • USER: Người dùng đang chạy tiến trình.
  • DISK READ: Tốc độ đọc của tiến trình tính bằng byte trên giây.
  • DISK WRITE: Tốc độ ghi của tiến trình tính bằng byte trên giây.
  • SWAPIN: Tỷ lệ phần trăm thời gian tiến trình đã sử dụng để chờ swap.
  • IO>: Tỷ lệ phần trăm thời gian tiến trình đã sử dụng để thực hiện I/O.
  • COMMAND: Dòng lệnh của tiến trình.

Bạn có thể sử dụng các phím sau để tương tác với iotop:

  • Mũi tên Trái/Phải: Duyệt qua các cột có sẵn.
  • Mũi tên Lên/Xuống: Cuộn qua danh sách các tiến trình.
  • o: Chuyển đổi giữa hiển thị tất cả các tiến trình và chỉ những tiến trình thực sự đang thực hiện I/O.
  • p: Chuyển đổi giữa hiển thị mức sử dụng I/O hiện tại và tích lũy.
  • a: Chuyển đổi giữa hiển thị mức sử dụng I/O tính bằng byte trên giây hoặc tổng số byte.
  • q: Thoát lệnh iotop.

Ví dụ: để chỉ hiển thị các tiến trình thực sự đang thực hiện I/O, hãy nhấn phím 'o'. Để chuyển đổi giữa hiển thị mức sử dụng I/O hiện tại và tích lũy, hãy nhấn phím 'p'.

Sau khi bạn đã xác định được các tiến trình tiêu thụ nhiều I/O đĩa nhất, bạn có thể thực hiện các hành động thích hợp để tối ưu hóa hiệu suất hệ thống của mình, chẳng hạn như:

  • Xác định và giải quyết các tiến trình sử dụng nhiều tài nguyên.
  • Tối ưu hóa các hoạt động liên quan đến đĩa, chẳng hạn như giảm số lần ghi đĩa không cần thiết.
  • Theo dõi và quản lý các ứng dụng hoặc dịch vụ sử dụng nhiều I/O đĩa.

Bây giờ bạn đã học cách sử dụng iotop để phân tích việc sử dụng I/O đĩa, bạn đã hoàn thành Lab về lệnh iotop của Linux.

Tóm tắt

Trong lab này, trước tiên bạn đã tìm hiểu về mục đích và chức năng của lệnh iotop trong Linux. iotop là một công cụ mạnh mẽ cung cấp khả năng theo dõi thời gian thực việc sử dụng I/O đĩa, cho phép bạn xác định các tiến trình sử dụng nhiều tài nguyên và tối ưu hóa hiệu suất hệ thống. Sau đó, bạn đã học cách cài đặt và cấu hình iotop trên hệ thống Ubuntu 22.04 của mình, đảm bảo bạn có các công cụ cần thiết để phân tích việc sử dụng I/O đĩa.

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