Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn sử dụng lệnh iostat trong Linux để giám sát hiệu suất CPU và I/O

    Nguyễn Hưng

    Ngày đăng:

    25/04/2026

    Cập nhật lần cuối:

    25/04/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    25/04/2026

    Cập nhật lần cuối:

    25/04/2026

    Mục lục

    Trong quá trình quản trị hệ thống Linux, tình trạng server treo bất thường mà nguyên nhân không nằm ở RAM hay CPU mà do nghẽn cổ chai ở ổ đĩa là tương đối phổ biến. Trong trường hợp này, việc đọc hiểu thành thạo các thông số I/O từ lệnh iostat chính là chìa khóa giúp mình nhanh chóng khoanh vùng lỗi và tối ưu hóa hiệu suất hệ thống một cách chính xác. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng lệnh iostat để giám sát hiệu suất CPU và I/O chi tiết nhất.

    Những điểm chính

    Đối với mình, việc theo dõi hiệu suất CPU và I/O trên Linux không chỉ giúp phát hiện sớm các vấn đề nghẽn hệ thống mà còn là cơ sở để tối ưu tài nguyên và nâng cao hiệu năng tổng thể. Để giúp bạn hiểu rõ hơn về lệnh iostat trong quá trình vận hành thực tế, bài viết dưới đây sẽ cung cấp các thông tin gồm:

    • Khái niệm: Hiểu rõ bản chất của iostat là công cụ giám sát hiệu suất chuyên sâu trên Linux, có chức năng chính là thu thập và báo cáo các chỉ số thống kê về mức độ tiêu thụ CPU.
    • Những lợi ích khi sử dụng lệnh iostat: Hình dung chi tiết các lợi ích mà lệnh iostat mang lại, qua đó có bước ứng dụng hệu quả hơn.
    • Hướng dẫn sử dụng lệnh iostat: Biết cách thực hiện các kỹ thuật trích xuất báo cáo CPU và ổ đĩa chuyên sâu, giúp bạn theo dõi tình trạng vận hành của máy chủ theo thời gian thực.
    • Đánh giá chỉ số hiệu năng: Nắm vững cách phân tích các thông số về độ trễ, hàng đợi và tỷ lệ bận để xác định chính xác nguyên nhân gây chậm hệ thống.
    • Xử lý sự cố và lỗi thường gặp: Biết cách khắc phục tình trạng thiếu lệnh hoặc ổ đĩa bão hòa, giúp bạn chủ động đưa ra phương án bảo trì và nâng cấp hạ tầng kịp thời.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc thường gặp liên quan đến lệnh iostat.

    Lệnh iostat là gì?

    Lệnh iostat là công cụ giám sát hiệu suất chuyên sâu trên Linux, có chức năng chính là thu thập và báo cáo các chỉ số thống kê về mức độ tiêu thụ CPU cũng như lưu lượng nhập/xuất dữ liệu trên các thiết bị lưu trữ như ổ cứng vật lý, phân vùng, thiết bị mạng,… Đây là công cụ quan trọng giúp quản trị viên phân tích xem ổ đĩa nào đang hoạt động quá tải, từ đó xác định chính xác các điểm nghẽn về tốc độ đọc/ghi dữ liệu để có phương án cân bằng tải hoặc tối ưu hóa cấu hình hệ thống phù hợp.

    Lệnh iostat là công cụ giám sát hiệu suất chuyên sâu trên Linux
    Lệnh iostat là công cụ giám sát hiệu suất chuyên sâu trên Linux

    Lệnh iostat không được cài sẵn trên một số bản phân phối Linux tối giản mà nằm trong bộ công cụ giám sát sysstat. Do đó, bạn có thể cần cài đặt gói này thủ công trước khi sử dụng:

    • Trên RedHat/CentOS/Fedora:
    yum install sysstat
    • Trên Debian/Ubuntu/Linux Mint:
    sudo apt install sysstat

    Cú pháp và các tùy chọn iostat cơ bản

    Cú pháp của lệnh iostat như sau:

    iostat [OPTIONS] [DEVICE] [INTERVAL] [COUNT]

    Trong đó:

    • [OPTIONS]: Là các tùy chọn như -c (CPU), -d (disk), -x (extended), -k/-m (KB/MB), -t (in thời gian), -z (bỏ thiết bị không hoạt động),…
    • [DEVICE]: Tên thiết bị hoặc partition, nếu bỏ trống, kết quả sẽ hiển thị tất cả thiết bị.
    • ​[INTERVAL]: Số giây giữa mỗi lần cập nhật.
    • ​[COUNT]: Số lần lặp report, nếu bỏ trống, lệnh sẽ chạy tới khi bạn dừng thủ công.

    Dưới đây là bảng liệt kê các tùy chọn cơ bản của lệnh iostat:

    Biến thể lệnhMô tả chức năng
    iostatCung cấp thông tin tổng quát về mức tiêu thụ tài nguyên CPU và hoạt động nhập/xuất của hệ thống.
    iostat -xMở rộng báo cáo với các chỉ số chuyên sâu và chi tiết hơn về hiệu suất I/O như độ trễ, hàng đợi,…
    iostat -cLọc kết quả để chỉ hiển thị các số liệu thống kê liên quan đến CPU.
    iostat -dLoại bỏ thông tin về CPU, chỉ báo cáo hoạt động của các thiết bị lưu trữ.
    iostat -xdKết hợp chế độ xem mở rộng để hiển thị chi tiết các chỉ số hiệu suất dành riêng cho thiết bị lưu trữ.
    iostat -kChuyển đổi đơn vị đo lường mặc định trong báo cáo sang Kilobyte.
    iostat -k 2 3Kích hoạt chế độ giám sát theo chu kỳ, cập nhật dữ liệu mỗi 2 giây và dừng lại sau 3 lần báo cáo.
    iostat -j ID mmcbkl0 sda6 -x -m 2 2Báo cáo thống kê giám sát cho các thiết bị cụ thể dựa trên ID ổn định của chúng.
    iostat -pHiển thị số liệu thống kê cho thiết bị khối chính và chi tiết cho từng phân vùng con trực thuộc.
    iostat -NSử dụng tên ánh xạ của LVM2 để hiển thị thiết bị thay vì dùng tên phần cứng thô, giúp người dùng dễ nhận diện hơn.

    Những lợi ích khi sử dụng lệnh iostat

    Dưới đây là các lợi ích chính khi sử dụng lệnh iostat trong quản trị hệ thống Linux:

    • Phát hiện nút thắt cổ chai: Lệnh iostat giúp xác định nhanh liệu ổ cứng có phải là nguyên nhân chính gây chậm hệ thống hay không thông qua các chỉ số quan trọng như %util và await.
    • Giám sát toàn diện tài nguyên: Bạn sẽ được cung cấp thông tin tổng quan về hiệu suất CPU và hoạt động I/O, giúp phân biệt rõ sự cố đang xuất phát từ việc quá tải khả năng tính toán hay do tốc độ truy xuất dữ liệu chậm.
    • Đo lường độ trễ và thông lượng: iostat cung cấp các số liệu chi tiết và chính xác về tốc độ đọc/ghi và độ trễ phản hồi, qua đó hỗ trợ tốt cho việc tinh chỉnh hiệu suất cơ sở dữ liệu và các ứng dụng ghi nhiều log.
    • Theo dõi biến động theo thời gian thực: Với khả năng báo cáo liên tục theo chu kỳ, iostat giúp theo dõi sự thay đổi của tải hệ thống trong các khung giờ cao điểm hoặc khi chạy các tác vụ nặng.
    • Hỗ trợ kiểm tra sức khỏe phần cứng: Những chỉ số bất thường kéo dài có thể là dấu hiệu cảnh báo sớm về lỗi phần cứng ổ đĩa hoặc lỗi bộ điều khiển, giúp bạn có kế hoạch sao lưu và thay thế kịp thời.
    Những lợi ích khi sử dụng lệnh iostat
    Những lợi ích khi sử dụng lệnh iostat

    1. Xem thống kê CPU và I/O cơ bản

    Để xem kết quả hiển thị tổng quan về mức sử dụng CPU và hoạt động I/O của tất cả các thiết bị lưu trữ kể từ lần khởi động cuối cùng, bạn chạy lệnh dưới đây:

    iostat
    Xem thống kê CPU và I/O cơ bản
    Xem thống kê CPU và I/O cơ bản

    Kết quả đầu ra được chia làm hai phần chính là avg-cpu (thống kê CPU) và Device (thống kê ổ đĩa).

    2. Giám sát I/O theo thời gian thực

    Để hệ thống cung cấp các báo cáo lặp lại sau mỗi khoảng thời gian nhất định, giúp theo dõi sự thay đổi của I/O khi tải hệ thống biến động, bạn hãy chạy lệnh như sau:

    iostat <khoảng thời gian (giây)> <số lần lặp lại>

    Ví dụ, để cập nhật thống kê sau mỗi 2 giây và lặp lại 5 lần, bạn thực hiện cú pháp dưới đây:

    iostat 2 5
    Giám sát I/O theo thời gian thực
    Giám sát I/O theo thời gian thực

    Lệnh này cho phép bạn theo dõi thông tin động, nhưng lưu ý rằng nếu chỉ chỉ định iostat 2, lệnh sẽ chạy liên tục cho đến khi bạn nhấn Ctrl + C.

    3. Xem thống kê I/O mở rộng

    Khi cần kiểm tra lỗi, bạn chạy lệnh sau để kết quả hiển thị các chỉ số chi tiết nhất về hiệu suất ổ đĩa, bao gồm độ trễ và số lần chờ đợi:

    iostat -x

    Lệnh sau dùng để xem thống kê I/O mở rộng của các thiết bị, hiển thị theo đơn vị MB, lặp lại nhiều lần theo chu kỳ 5 giây, tổng cộng 3 lần:

    iostat -xm 5 3
    Xem thống kê I/O mở rộng
    Xem thống kê I/O mở rộng

    Giải thích các cột quan trọng:

    • %util: Là phần trăm thời gian thiết bị bận xử lý I/O. Nếu giá trị này gần 100%, ổ đĩa đang là điểm nghẽn.
    • await (ms): Là thời gian chờ I/O trung bình, bao gồm thời gian nằm trong hàng đợi queue và thời gian xử lý thực tế. Giá trị này càng thấp càng tốt.
    • rKB/s, wKB/s: Tốc độ đọc và ghi dữ liệu tính bằng Kilobytes mỗi giây.

    4. Chỉ hiển thị thống kê I/O của thiết bị

    Bạn có thể bỏ qua thông tin CPU để tập trung hoàn toàn vào hiệu suất đọc/ghi của các ổ đĩa bằng lệnh sau:

    iostat -d

    Ví dụ, bạn có thể chạy lệnh sau để xem thống kê I/O của các thiết bị lưu trữ, hiển thị dạng dễ đọc, cập nhật mỗi 5 giây và lặp lại 3 lần rồi dừng:

    iostat -dmh 5 3
    Chỉ hiển thị thống kê I/O của thiết bị
    Chỉ hiển thị thống kê I/O của thiết bị

    Tùy chọn -d khi kết hợp với -m và -h giúp bạn nhanh chóng xác định ổ đĩa nào đang hoạt động nhiều nhất với đơn vị dễ đọc.

    5. Chỉ hiển thị thống kê CPU

    Nếu bạn chỉ muốn xem thống kê về mức tải CPU, đặc biệt quan tâm đến thời gian chờ I/O (%iowait), hãy chạy lệnh sau đây:

    iostat -c
    Chỉ hiển thị thống kê CPU
    Chỉ hiển thị thống kê CPU

    Trong đó, cột %iowait cho biết phần trăm thời gian CPU rảnh rỗi nhưng phải chờ thiết bị I/O hoàn thành tác vụ. Giá trị này cao thường là dấu hiệu cho thấy ổ đĩa đang hoạt động chậm.

    Cách kiểm tra kết quả thành công

    Sau khi chạy lệnh iostat -x, bạn cần kiểm tra các chỉ số sau:

    Thống kê I/O (%util):

    • Ổ đĩa khỏe: %util < 70%.
    • Điểm nghẽn: %util > 80% liên tục.

    Thời gian chờ (await): Giá trị await thấp là tốt, ví dụ: < 10ms đối với SSD, < 30ms đối với HDD.

    Cách xử lý lỗi khi sử dụng lệnh iostat

    Khi quản trị hạ tầng, các báo cáo từ iostat sẽ giúp bạn định vị chính xác điểm yếu của hệ thống. Việc hiểu và xử lý kịp thời các lỗi thường gặp dưới đây sẽ giúp bạn bảo vệ dữ liệu và tối ưu hóa hiệu suất vận hành một cách chủ động:

    1. Lỗi: bash: iostat: command not found

    Nguyên nhân gây lỗi iostat: command not found thường là do lệnh iostat không được cài đặt mặc định trên tất cả các bản phân phối Linux. Để khắc phục, bạn cần cài đặt gói sysstat thủ công thông qua trình quản lý gói của hệ thống:

    • Trên Ubuntu/Debian:
    sudo apt-get install sysstat
    • Trên CentOS/RHEL:
    sudo yum install sysstat

    Sau khi cài đặt, bạn có thể dùng được ngay mà không cần khởi động lại máy.

    Việc thiếu hụt các công cụ giám sát cơ bản trên những bản cài đặt tối giản là tình huống rất thường gặp. Thay vì chờ đợi sự cố mới tìm cách cài đặt, mình luôn khuyến khích việc đưa sysstat vào danh sách các gói phần mềm bắt buộc phải cài đặt ngay sau khi thiết lập server. Việc chủ động chuẩn bị công cụ chẩn đoán chính là bước đệm để rút ngắn thời gian xử lý sự cố.

    2. Chỉ số %util chạm ngưỡng bão hòa (gần 100%)

    Trong kết quả iostat, nếu cột %util liên tục hiển thị mức 90% – 100% thì đây là dấu hiệu của hiện tượng nghẽn cổ chai. Ổ đĩa đang phải làm việc hết công suất để xử lý các yêu cầu đọc/ghi. Khi chỉ số này bão hòa, CPU sẽ phải đợi khiến toàn bộ server bị chậm đi đáng kể. Để khắc phục, bạn thực hiện các bước sau:

    • Bước 1: Đầu tiên, bạn hãy cài đặt và dùng lệnh iotop chạy với quyền root để xem đích danh tiến trình nào đang đọc/ghi nhiều nhất.
    • Bước 2: Nếu đây là vấn đề thường xuyên xảy ra do nhu cầu sử dụng cao, hãy cân nhắc nâng cấp từ ổ HDD sang SSD/NVMe hoặc thiết lập RAID để tăng tốc độ truy xuất.
    Chỉ số %util chạm ngưỡng bão hòa (gần 100%) là lỗi thường gặp khi sử dụng lệnh iostat
    Chỉ số %util chạm ngưỡng bão hòa (gần 100%) là lỗi thường gặp khi sử dụng lệnh iostat (Nguồn: Internet)

    Mức 100% của %util là giới hạn chịu đựng của ổ đĩa. Khi chạm ngưỡng này, toàn bộ dịch vụ phụ thuộc vào I/O sẽ bị treo. Thay vì chỉ nhìn vào %util, bạn hãy quan sát thêm chỉ số await. Một ổ đĩa đạt 100% hiệu suất nhưng độ trễ vẫn thấp có thể chấp nhận được, nhưng nếu %util cao đi kèm độ trễ lớn, đó chính là lúc bạn buộc phải thay đổi cấu hình hạ tầng.

    3. Hiệu suất đọc/ghi (rKB/s, wKB/s) thấp bất thường

    Nếu ổ cứng của bạn có tốc độ cao nhưng các thông số rKB/s (tốc độ đọc) và wKB/s (tốc độ ghi) báo về thấp, nguyên nhân có thể không nằm ở phần mềm mà do lỗi vật lý hoặc cấu hình như:

    • Cáp kết nối SATA/SAS bị lỏng hoặc kém chất lượng.
    • Ổ đĩa bị lỗi bad sector.
    • Trình điều khiển hoặc Firmware của ổ đĩa đã quá cũ.

    Để khắc phục, bạn kiểm tra log hệ thống để tìm các cảnh báo phần cứng bằng lệnh dưới đây:

    dmesg | grep -i "error"

    Ngoài ra, bạn hãy tìm các từ khóa liên quan đến ổ đĩa như sda, sdb,… nếu thấy xuất hiện các dòng như “I/O error” hoặc “sector access failed” thì khả năng cao là ổ cứng đang bị hỏng vật lý và cần được thay thế sớm để tránh mất dữ liệu.

    Câu hỏi thường gặp

    Chỉ số %util đạt 100% có ý nghĩa gì? Có nguy hiểm không?

    Khi %util đạt 100%, điều này có nghĩa là thiết bị lưu trữ đang xử lý các yêu cầu I/O trong toàn bộ thời gian đo lường. Đây là dấu hiệu của hiện tượng nút thắt cổ chai. Mặc dù chỉ số này không hoàn toàn báo hiệu ổ cứng bị hỏng vật lý, nhưng điều này chắc chắn sẽ làm hệ thống chậm đi, do đó bạn cần tìm cách giảm tải hoặc nâng cấp ổ đĩa.

    Tôi có thể dùng iostat để biết chính xác tiến trình nào đang tiêu tốn I/O không?

    Không. Lệnh iostat chỉ báo cáo thống kê ở cấp độ thiết bị, không đi sâu vào cấp độ tiến trình. Nếu bạn thấy ổ đĩa bị quá tải qua iostat và muốn tìm nguyên nhân cụ thể, hãy sử dụng lệnh iotop hoặc pidstat -d.

    Sự khác biệt giữa await và svctm là gì?

    – svctm (Service Time): Là thời gian ước tính ổ đĩa cần để xử lý một yêu cầu. Tuy nhiên, trên các hệ thống Linux hiện đại, chỉ số này không còn chính xác và nhà phát triển khuyên không nên sử dụng.
    – await: Là tổng thời gian chở, bao gồm thời gian xếp hàng trong queue và thời gian xử lý thực tế. Đây là chỉ số quan trọng và chính xác nhất để đánh giá độ trễ của ổ đĩa.

    Lệnh iostat là công cụ giám sát hiệu suất I/O chuyên nghiệp và hiệu quả trên Linux. Bằng cách thành thạo việc xem thống kê mở rộng, giám sát theo thời gian thực và phân tích sâu các chỉ số quan trọng, bạn hoàn toàn có thể xác định được chính xác các vấn đề hệ thống chậm do ổ đĩa quá tải, từ đó đưa ra giải pháp tối ưu hóa hiệu suất lưu trữ phù hợp. Cảm ơn bạn đã theo dõi bài viết!

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder và Phó giám đốc của Vietnix, Co-Founder của dự án Chống Lừa Đảo.
    0 0 votes
    Đánh giá bài viết
    Subscribe
    Notify of
    guest
    0 Góp ý
    Oldest
    Newest Most Voted
    Inline Feedbacks
    View all comments

    BÀI VIẾT LIÊN QUAN

    AI dạy hiệu suất, ai dạy làm người
    AI dạy hiệu suất, ai dạy làm người

    Ngày 09/10/2026, tôi vinh dự tham gia và chia sẻ tại tọa đàm “AI dạy hiệu suất, ai dạy làm người?” do Báo Tiền Phong phối hợp cùng Trường Đại học Giao thông vận tải TP.HCM (UTH) tổ chức. Sự kiện đã quy tụ nhiều chuyên gia công nghệ, nhà giáo dục, chuyên gia tâm…

    17/10/2026

    KOL Summit 2026

    Ngày 07/09/2026, tôi có cơ hội tham dự Hội nghị KOL toàn quốc lần thứ II – KOL Summit 2026 tại Thisky Hall Sala, TP.HCM với chủ đề “KOL với hành trình kiến tạo niềm tin số”. Sự kiện do Liên minh Niềm tin số dẫn dắt, dưới sự bảo trợ của Bộ Công an,…

    15/09/2026

    Conviction 2026: Ký kết hợp tác giữa Chống Lừa Đảo x Ninety Eight

    Ngày 14/08/2026, trong khuôn khổ Ngày hội Công nghệ TP.HCM – Conviction 2026, tôi rất vinh dự được cùng đội ngũ Chống Lừa Đảo tham gia lễ ký kết Biên bản ghi nhớ hợp tác (MOU) với Ninety Eight – hệ sinh thái công nghệ blockchain tại Việt Nam. Đây là một cột mốc ý…

    14/08/2026

    Tham gia Hội nghị KOL & Lễ ra mắt Câu lạc bộ Niềm Tin Số TP.HCM: Chung tay xây dựng không gian mạng xanh, sạch và có trách nhiệm

    Ngày 10/08/2026, tôi vinh dự tham dự Hội nghị KOL & Lễ ra mắt Câu lạc bộ Niềm Tin Số TP.HCM do Công an TP.HCM phối hợp cùng các đơn vị liên quan tổ chức. Chương trình quy tụ đại diện Cục An ninh mạng và Phòng, chống tội phạm sử dụng công nghệ cao…

    11/08/2026

    linux

    lenh

    text