Liên hệProfile
Danh mục

Mục Lục

    Cách giám sát hiệu năng Linux chuyên sâu với vmstat và iostat

    Nguyễn Hưng

    Ngày đăng:

    09/03/2026

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

    09/03/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:

    09/03/2026

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

    09/03/2026

    Mục lục

    vmstat và iostat là công cụ dòng lệnh trong sysstat dùng giám sát hiệu năng Linux. vmstat cho cái nhìn tổng quan về hệ thống (CPU, RAM), còn iostat tập trung phân tích sâu hiệu suất I/O của đĩa. Trong bài viết này, mình sẽ hướng dẫn bạn cách kết hợp vmstat và iostat để phân tích nhanh nguyên nhân gây chậm hệ thống và đề xuất hướng giải quyết hiệu quả.

    Những điểm chính

    • Lý do cần giám sát hiệu năng: Hiểu được tầm quan trọng của việc giám sát để phát hiện điểm nghẽn, ngăn chặn sự cố và tối ưu hóa tài nguyên hệ thống.
    • Định nghĩa vmstat: Nắm vững khái niệm, cách cài đặt, sử dụng và ý nghĩa các chỉ số quan trọng của vmstat để giám sát tổng quan hiệu suất hệ thống.
    • Định nghĩa iostat: Nắm vững khái niệm, cách cài đặt, sử dụng và ý nghĩa các chỉ số của iostat để giám sát chi tiết hoạt động I/O của ổ đĩa.
    • Cách kết hợp vmstat và iostat: Biết cách kết hợp thông tin từ hai công cụ, giúp xác định chính xác nguyên nhân gây nghẽn.
    • Ví dụ sử dụng thực tế: Học được quy trình từng bước để chẩn đoán sự cố hệ thống chậm, từ việc kiểm tra tổng quan với vmstat đến xác định ổ đĩa gây lỗi bằng iostat.
    • Cách sử dụng hiệu quả: Nắm được các mẹo hay để tối ưu hóa việc giám sát, từ tự động hóa, kết hợp đa công cụ đến việc thiết lập baseline.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các tình huống nâng cao như cách xử lý khi wa cao nhưng %util thấp và tầm quan trọng của việc kết hợp với top/htop.

    Tại sao cần giám sát hiệu năng hệ thống?

    Trong quản trị hạ tầng Linux, việc giám sát hiệu năng thường xuyên giúp đảm bảo tính sẵn sàng và độ tin cậy của dịch vụ. Việc thiết lập quy trình giám sát bài bản mang lại 4 lợi ích quan trọng sau:

    • Phát hiện điểm nghẽn: Giám sát hiệu năng giúp bạn nhận diện sớm các nguyên nhân gây suy giảm hiệu năng như thiếu hụt tài nguyên ở CPU, RAM, I/O đĩa hoặc Swap.
    • Dự báo và ngăn chặn sự cố: Phân tích xu hướng tiêu thụ tài nguyên giúp quản trị viên chủ động xử lý các vấn đề tiềm ẩn trước khi chúng gây gián đoạn dịch vụ .
    • Tối ưu hóa tài nguyên: Đảm bảo phần cứng được sử dụng hiệu quả, tránh lãng phí tài nguyên hoặc tình trạng quá tải cục bộ.
    • Cơ sở cho việc mở rộng: Việc giám sát hiệu năng sẽ cung cấp dữ liệu thực tế để bạn ra quyết định nâng cấp phần cứng hoặc mở rộng hạ tầng một cách chính xác.
    Lý do cần giám sát hiệu năng hệ thống
    Lý do cần giám sát hiệu năng hệ thống

    vmstat là gì?

    vmstat (Virtual Memory Statistics) là một công cụ dòng lệnh gọn nhẹ và mạnh mẽ, cung cấp cái nhìn tổng quan về hiệu suất hệ thống. Công cụ này cung cấp báo cáo thông tin về 5 yếu tố quan trọng đó là: Tiến trình, bộ nhớ, phân trang, Block I/O và hoạt động của CPU.

    Chức năng chính của vmstat:

    • Giám sát hiệu suất: Quan sát hiệu suất hệ thống với các cập nhật liên tục, phù hợp cho việc giám sát trạng thái hoạt động và phát hiện nhanh các điểm nghẽn.
    • Cung cấp dữ liệu trực quan: Hiển thị trực quan số lượng tiến trình đang chạy/chờ, mức sử dụng bộ nhớ thực và ảo, các hoạt động phân trang, I/O và tỷ lệ sử dụng các trạng thái CPU (người dùng, hệ thống, nhàn rỗi, chờ I/O).
    • Xác định sự cố: Hỗ trợ nhận diện và xác định nguyên nhân gây quá tải thông qua các chỉ số như số tiến trình chạy vượt ngưỡng hoặc CPU sử dụng cao bất thường.
    vmstat (Virtual Memory Statistics) là một công cụ dòng lệnh gọn nhẹ và mạnh mẽ
    vmstat (Virtual Memory Statistics) là một công cụ dòng lệnh gọn nhẹ và mạnh mẽ

    Cách cài đặt và sử dụng vmstat

    vmstat nằm trong gói công cụ giám sát hệ thống tiêu chuẩn sysstat. Bạn có thể cài đặt thông qua trình quản lý gói mặc định như sau:

    sudo apt install sysstat   # Debian/Ubuntu
    sudo yum install sysstat   # CentOS/RHEL

    Để hiển thị phần “help” – danh sách cú pháp, các tùy chọn, ý nghĩa tham số trên terminal, bạn thực hiện lệnh sau:

    vmstat -h 
    Kết quả hiển thị sau khi thực hiện lệnh vmstat -h
    Kết quả hiển thị sau khi thực hiện lệnh vmstat -h

    Để xem thống kê trung bình kể từ lần khởi động cuối cùng của hệ thống, bạn thực thi lệnh sau:

    vmstat
    Thống kê trung bình kể từ lần khởi động cuối cùng của hệ thống
    Thống kê trung bình kể từ lần khởi động cuối cùng của hệ thống

    Để theo dõi hiệu năng theo thời gian thực, bạn sử dụng tham số thời gian trễ (delay) và số lần lặp (count). Ví dụ, để cập nhật mỗi 1 giây và lặp lại 10 lần, bạn thực thi lệnh:

    vmstat 1 10   # mỗi 1 giây, 10 dòng
    Trong vòng 10 giây , mỗi giây in ra 1 dòng kết quả.
    Trong vòng 10 giây , mỗi giây in ra 1 dòng kết quả.

    Phân tích các chỉ số

    Phân tích các chỉ số quan trọng của vmstat:

    NhómCộtÝ nghĩa kỹ thuật
    ProcsrRun queue: Số lượng tiến trình đang chờ CPU xử lý.
     bBlocked: Số lượng tiến trình đang bị chặn.
    MemoryswpdDung lượng bộ nhớ ảo (Swap) đã sử dụng (KB).
     freeDung lượng RAM vật lý còn trống (KB).
    SwapsiSwap In: Dữ liệu được đọc từ đĩa vào bộ nhớ swap (KB/s).
     soSwap Out: Dữ liệu được ghi từ RAM xuống đĩa swap (KB/s).
    IObiBlocks In: Số khối (blocks) nhận được từ thiết bị block (đọc đĩa).
     boBlocks Out: Số khối gửi đến thiết bị block (ghi đĩa).
    SysteminSố lượng ngắt (interrupts) mỗi giây.
     csSố lượng chuyển ngữ cảnh (context switches) mỗi giây.
    CPUusUser time: % CPU dành cho các tiến trình người dùng (non-kernel).
     sySystem time: % CPU dành cho các tiến trình hệ thống (kernel).
     idIdle: % CPU ở trạng thái nhàn rỗi.
     waWait I/O: % CPU nhàn rỗi nhưng phải chờ I/O hoàn tất.

    iconLưu ý

    Nếu cột wa tăng cao liên tục, đây là dấu hiệu của việc nghẽn cổ chai tại ổ cứng.

    iostat là gì?

    iostat là tiện ích dòng lệnh dùng để giám sát hiệu suất hệ thống, tập trung vào việc thống kê chi tiết hoạt động đầu vào/đầu ra (I/O) của các thiết bị lưu trữ như ổ cứng, SSD, cũng như mức sử dụng CPU. Công cụ này đóng vai trò quan trọng trong việc hỗ trợ quản trị viên nhận biết các vấn đề về hiệu năng và tối ưu hóa tài nguyên hệ thống.

    Các chức năng nổi bật của iostat:

    • Theo dõi hiệu quả ổ đĩa: Cung cấp số liệu liên quan đến từng ổ lưu trữ, bao gồm số lượng thao tác truy cập mỗi giây, tốc độ đọc ghi và tổng dung lượng dữ liệu đã xử lý trong một khoảng thời gian cụ thể.
    • Giám sát trạng thái CPU: Thống kê tỷ lệ sử dụng CPU theo từng trạng thái như user, system, nice và thời gian chờ liên quan đến I/O, giúp nhận diện việc quá tải hoặc các vấn đề tiềm ẩn liên quan đến vi xử lý.
    • Phát hiện điểm nghẽn hệ thống: Cho phép phân tích và chỉ ra thiết bị nào đang chịu tải lớn gây ảnh hưởng đến hiệu suất tổng thể, từ đó đưa ra giải pháp nâng cấp hoặc bình chỉnh tài nguyên hợp lý.
    • Phân tích hiệu năng toàn diện: Hỗ trợ giám sát hiệu suất của cả thiết bị lưu trữ nội bộ lẫn các nguồn dữ liệu từ xa như hệ thống NFS, giúp quản trị viên triển khai các phương thức cân bằng tải hiệu quả.
    iostat là tiện ích dòng lệnh dùng để giám sát hiệu suất hệ thống
    iostat là tiện ích dòng lệnh dùng để giám sát hiệu suất hệ thống

    Cách cài đặt và sử dụng iostat

    Tương tự vmstat, iostat cũng thuộc gói sysstat. Bạn cài đặt iostat như sau:

    sudo apt install sysstat      # Debian/Ubuntu  
    sudo yum install sysstat      # CentOS/RHEL

    Bạn sử dụng lệnh sau để hiển thị thống kê I/O cơ bản kể từ khi khởi động:

    iostat
    Kết quả sẽ hiển thị thống kê I/O cơ bản kể từ khi khởi động
    Kết quả sẽ hiển thị thống kê I/O cơ bản kể từ khi khởi động.

    Để có dữ liệu chi tiết và cập nhật theo thời gian thực (ví dụ: mỗi 5 giây, lặp 2 lần), bạn sử dụng tùy chọn -x:

    iostat -x 5 2
    Kết quả hiển thị chi tiết theo chu kỳ: Mỗi 5 giây lặp 2 lần
    Kết quả hiển thị chi tiết theo chu kỳ: Mỗi 5 giây lặp 2 lần

    Phân tích các chỉ số

    Khi sử dụng tùy chọn -x, bạn cần tập trung vào các chỉ số sau để đánh giá độ trễ và tải của ổ đĩa:

    Tham sốÝ nghĩa kỹ thuật
    %utilUtilization: Phần trăm thời gian CPU dành cho các yêu cầu I/O đến thiết bị. Nếu giá trị này gần đến 100% có nghĩa là thiết bị đã bão hòa.
    awaitAverage Wait: Thời gian trung bình (ms) cho các yêu cầu I/O, bao gồm thời gian chờ trong hàng đợi và thời gian xử lý thực tế.
    svctmService Time: Thời gian trung bình (ms) thiết bị cần để xử lý thực tế một yêu cầu I/O.

    iconLưu ý

    Nếu %util cao và await lớn hơn đáng kể so với svctm, điều này xác nhận rằng hàng đợi I/O đang bị tắc nghẽn và hiệu năng đĩa đang suy giảm nghiêm trọng.

    Cách kết hợp vmstat và iostat hiệu quả

    Để xác định chính xác nguyên nhân gây chậm hệ thống, quản trị viên nên kết hợp số liệu từ cả hai công cụ theo bảng ma trận sau:

    Tình huống sự cốDấu hiệu trên vmstatDấu hiệu trên iostatKết luận nguyên nhân
    Nghẽn CPUCột r cao, us + sy cao, id thấp%util thấp, await thấpCPU đang phải xử lý quá nhiều tác vụ tính toán.
    Thiếu RAMCột siso > 0 (liên tục)Disk I/O tăng cao do ghi SwapHệ thống thiếu RAM vật lý, phải dùng Swap gây chậm.
    Nghẽn đĩaCột b cao, wa cao%util gần 100%, await caoTốc độ truy xuất đĩa cứng không đáp ứng kịp nhu cầu đọc/ghi.

    Ví dụ sử dụng vmstat và iostat thực tế

    Dưới đây là quy trình các bước kiểm tra khi hệ thống phản hồi chậm:

    Bước 1: Kiểm tra tổng quan bằng vmstat:

    Đầu tiên, bạn chạy lệnh giám sát mỗi giây trong 5 giây như sau:

    vmstat 1 5

    Nếu giá trị của cột wa (Wait I/O) cao bất thường (ví dụ > 10%), đây là tín hiệu cho thấy hệ thống đang phải chờ xử lý I/O nhiều, dẫn đến nguy cơ tắc nghẽn tại thiết bị lưu trữ. 

    Bước 2: Xác định ổ đĩa gây lỗi bằng iostat 

    Bạn sử dụng chế độ mở rộng để tìm thiết bị cụ thể bằng lệnh sau:

    iostat -x 1 5

    Khi kết quả hiển thị, bạn tìm thiết bị nào có %util xấp xỉ 100% hoặc await rất cao (ví dụ > 20ms cho SSD). Từ đó xác định được chính xác ổ đĩa cần nâng cấp hoặc tối ưu.

    Cách sử dụng vmstat và iostat hiệu quả

    • Tự động hóa giám sát: Bạn sử dụng cron hoặc viết các script để ghi log kết quả vmstat/iostat định kỳ, giúp phân tích sự cố xảy ra vào ban đêm hoặc cuối tuần.
    • Kết hợp đa công cụ: Sử dụng thêm top hoặc htop giúp bạn biết chính xác tiến trình nào đang gây ra tải cao sau khi vmstat đã chỉ ra loại tài nguyên bị nghẽn.
    • Ưu tiên xử lý: Khi phát hiện điểm nghẽn cổ chai, hãy ưu tiên giải quyết theo thứ tự: RAM -> I/O -> CPU để đạt hiệu quả tối ưu chi phí nhất.
    • Thiết lập Baseline: Bạn lưu lại các thông số khi hệ thống hoạt động bình thường để có cơ sở so sánh khi sự cố xảy ra.
    Cách sử dụng vmstat và iostat hiệu quả
    Cách sử dụng vmstat và iostat hiệu quả

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

    Vì sao vmstat báo giá trị wa tăng cao liên tục nhưng iostat cho thấy %util ổ đĩa bình thường?

    Đây có thể là dấu hiệu hạ tầng lưu trữ gặp vấn đề mạng hoặc hàng đợi I/O bị block bởi tiến trình chờ lock file, thay vì bão hòa ổ đĩa vật lý.
    Giải pháp là bạn hãy kiểm tra hệ thống mạng lưu trữ, xem xét các tiến trình đang lock file, hoặc chuyển lưu trữ phân tán về ổ đĩa nội bộ tạm thời.

    Có nên tự động hóa việc ghi log kết quả vmstat/iostat không?

    Bạn nên tự động hóa ghi log kết quả. Giải pháp phổ biến đó là:
    – Sử dụng cron job để chạy lệnh vmstat/iostat định kỳ, ghi vào file log riêng biệt.
    – Xây dựng script Python hoặc Bash tự động hóa việc lưu trữ, phân tích và gửi cảnh báo qua email/slack khi phát hiện thông số vượt ngưỡng.

    Tại sao nên kết hợp thêm công cụ top/htop khi phân tích với vmstat và iostat?

    vmstat/iostat cho biết hệ thống gặp điểm nghẽn ở RAM, CPU hay I/O, nhưng không xác định cụ thể tiến trình nào gây tải. Khi đó, top/htop sẽ giúp quản trị viên xác định chính xác tiến trình hoặc ứng dụng gây ra tải lớn, từ đó đưa ra phương án can thiệp trực diện như điều chỉnh cấu hình, kill tiến trình lỗi hoặc tối ưu hóa ứng dụng.

    Việc kết hợp sử dụng vmstat và iostat giúp quản trị viên nhanh chóng nhận diện và khoanh vùng nguyên nhân gây suy giảm hiệu năng hệ thống Linux. Nhờ phân tích đồng thời các chỉ số về CPU, RAM, Swap và I/O ổ đĩa, bạn có thể đưa ra biện pháp xử lý kịp thời, tối ưu hóa tài nguyên và nâng cao độ ổn định cho dịch vụ đang vận hành. Mời bạn tham khảo thêm các bài viết liên quan đến chủ đề Linux ngay sau đây:

    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 của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng lệnh awk Linux để xử lý dữ liệu dạng cột tối ưu
    Cách dùng lệnh awk Linux để xử lý dữ liệu dạng cột tối ưu

    Awk Linux là lệnh được dùng để xử lý và phân tích các file văn bản. Lệnh này được thiết kế chuyên biệt để xử lý dữ liệu dạng cột, cho phép trích xuất cột, lọc theo điều kiện, tính toán và định dạng lại kết quả trên dòng lệnh với hiệu năng cao và…

    09/03/2026

    Hướng dẫn khắc phục sự cố Ubuntu No space left on device root chi tiết và nhanh chóng
    Hướng dẫn khắc phục sự cố Ubuntu No space left on device root chi tiết và nhanh chóng

    Thông báo lỗi No space left on device trên Ubuntu nghĩa là phân vùng đang dùng đã hết tài nguyên khiến hệ thống không ghi thêm dữ liệu. Nguyên nhân thường gặp nhất là do đầy dung lượng ổ đĩa hoặc hết inodes do có quá nhiều file nhỏ. Trong bài viết dưới đây, mình…

    09/03/2026

    Hướng dẫn 5 bước tạo SSH Key trên Linux nhanh chóng và đơn giản
    Hướng dẫn 5 bước tạo SSH Key trên Linux nhanh chóng và đơn giản

    SSH Key trong Linux là một cặp khóa dùng để xác thực an toàn giữa người dùng và máy chủ thông qua giao thức SSH. Trong bài viết này, mình sẽ cung cấp một hướng dẫn toàn diện gồm 5 bước đơn giản về cách tạo và quản lý SSH Key Linux, giúp bạn nâng…

    09/03/2026

    Hướng dẫn sử dụng lệnh Eject Linux để quản lý thiết bị lưu trữ rời
    Hướng dẫn sử dụng lệnh Eject Linux để quản lý thiết bị lưu trữ rời

    Lệnh eject là công cụ dòng lệnh chuẩn giúp điều khiển phần cứng như ổ quang và ngắt kết nối an toàn các thiết bị lưu trữ di động như USB trước khi tháo ra, qua đó bảo đảm tính toàn vẹn dữ liệu. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử…

    09/03/2026

    linux

    lenh

    text