Tốc độ đọc/ghi, latency của ổ cứng có thể ảnh hưởng trực tiếp đến thời gian xử lý của code, database, tốc độ tải file và trải nghiệm tổng thể của người dùng. Để giúp các quản trị viên hệ thống có một công cụ đơn giản mà hiệu quả để kiểm tra hiệu năng lưu trữ, mình sẽ giới thiệu ioping Linux – một dòng lệnh gọn nhẹ nhưng rất mạnh mẽ trên Linux. Trong bài viết này, mình sẽ cùng bạn tìm hiểu cách sử dụng ioping để dự đoán Storage của VPS chính xác.
Những điểm chính
- Tầm quan trọng của việc kiểm tra độ trễ ổ cứng: Ảnh hưởng trực tiếp đến hiệu năng hệ thống, tốc độ phản hồi ứng dụng/database, thời gian tải trang, trải nghiệm người dùng và là yếu tố chẩn đoán nút thắt cổ chai kỹ thuật.
- Trường hợp nên kiểm tra: Khi hệ thống chậm, truy vấn trễ, iowait cao; trước khi triển khai ứng dụng hoặc chọn nhà cung cấp mới; sau khi di chuyển dữ liệu và nâng cấp phần mềm.
- Định nghĩa ioping: Là công cụ dòng lệnh Linux đo lường độ trễ và IOPS của ổ cứng, dễ sử dụng hơn fio/iozone.
- Hướng dẫn cài đặt ioping: Sử dụng lệnh
yum/dnf install ioping
(CentOS/RHEL/Fedora) hoặc lệnhapt-get install ioping
(Debian/Ubuntu). - Cách sử dụng ioping: Hướng dẫn sử dụng ioping để kiểm tra độ trễ cơ bản, tốc độ đọc tuần tự và tốc độ ghi tuần tự.
- Tham khảo kết quả ioping: Bảng so sánh kết quả cho các loại storage/nhà cung cấp khác nhau giúp đánh giá hiệu năng.
- So sánh ioping và fio: ioping dùng để chẩn đoán nhanh, fio để benchmark toàn diện và tùy chỉnh sâu.
- Câu hỏi thường gặp: Giải đáp những câu hỏi thường gặp khi sử dụng lệnh ioping Linux.
ioping Linux là gì?
ioping là một công cụ dòng lệnh trên Linux cho phép bạn đo lường độ trễ và IOPS của ổ cứng, công cụ này hoạt động tương tự như lệnh ping dùng để kiểm tra mạng, nhưng thay vì gửi gói tin qua mạng, ioping gửi các yêu cầu đọc/ghi xuống ổ đĩa. ioping là công cụ lý tưởng để bạn kiểm tra nhanh hiệu năng mà không cần các thiết lập phức tạp như fio hay iozone.

Tìm hiểu các thông số quan trọng của ổ cứng
Đầu tiên, hãy cùng mình tìm hiểu rõ hai thông số quyết định tốc độ của ổ cứng:
- Latency (Độ trễ): Là thời gian cần thiết để hoàn thành một yêu cầu đọc/ghi duy nhất với đơn vị tính thường là mili giây (ms) hoặc micro giây (μs). Độ trễ càng thấp thì ổ cứng phản hồi càng nhanh.
- IOPS (Input/Output Operations Per Second): Là tổng số lượng thao tác đọc/ghi mà ổ cứng có thể thực hiện trong một giây. IOPS càng cao, ổ cứng xử lý được càng nhiều yêu cầu đồng thời.
Kinh nghiệm:

Lý do bạn cần kiểm tra độ trễ ổ cứng
Việc kiểm tra độ trễ ổ cứng là một tác vụ quan trọng vì thông số này ảnh hưởng trực tiếp đến tốc độ phản hồi của toàn bộ hệ thống. Mọi ứng dụng và cơ sở dữ liệu đều phụ thuộc vào tốc độ truy xuất dữ liệu, do đó, độ trễ cao sẽ làm chậm quá trình xử lý truy vấn, dẫn đến thời gian tải trang kéo dài và làm giảm trải nghiệm của người dùng cuối.
Bên cạnh đó, đo lường độ trễ còn là cách chẩn đoán kỹ thuật chính xác. Khi một máy chủ hoạt động không hiệu quả, hiệu suất lưu trữ thường là nguyên nhân cốt lõi gây ra tình trạng nút thắt cổ chai chứ không phải lúc nào cũng do CPU hoặc RAM quá tải. Việc xác định chính xác vấn đề này sẽ giúp bạn đưa ra giải pháp tối ưu, chẳng hạn như nâng cấp ổ cứng hoặc thay đổi nhà cung cấp để đảm bảo hệ thống vận hành ổn định và đạt hiệu suất cao.

Khi nào nên kiểm tra độ trễ ổ cứng?
Bạn nên kiểm tra độ trễ ổ cứng trong các trường hợp sau:
- Khi hệ thống có dấu hiệu hoạt động chậm: Việc kiểm tra độ trễ ổ cứng là rất cần thiết khi nhận thấy website tải chậm hoặc các truy vấn dữ liệu mất nhiều thời gian xử lý. Đặc biệt, nếu quan sát thấy chỉ số iowait trên máy chủ liên tục tăng cao, đây là dấu hiệu rõ ràng cho thấy hệ thống đang bị chậm do ổ cứng.
- Trước khi triển khai ứng dụng hoặc lựa chọn nhà cung cấp mới: Để đảm bảo hạ tầng lưu trữ có đủ hiệu năng đáp ứng yêu cầu và để so sánh chất lượng giữa các dịch vụ, bạn nên kiểm tra độ trễ ổ cứng.
- Sau khi thực hiện các thay đổi lớn về hệ thống: Bạn nên kiểm tra ổ cứng ngay sau khi di chuyển dữ liệu hoặc nâng cấp phần mềm để xác minh hiệu suất không bị suy giảm.

Hướng dẫn cài đặt ioping trên Linux
Đầu tiên, bạn mở terminal và chạy lệnh tương ứng với hệ điều hành của mình:
Đối với CentOS/RHEL/Fedora:
sudo yum install ioping
Với các phiên bản CentOS/RHEL/Fedora mới hơn:
sudo dnf install ioping
Đối với Debian/Ubuntu:
sudo apt-get update
sudo apt-get install ioping
3 cách sử dụng ioping để đo độ trễ ổ cứng
Để xác định ổ cứng/partition cần test, bạn có thể dùng lệnh lsblk
hoặc df
để liệt kê danh sách ổ cứng và partition dưới dạng /dev/sdX, /dev/vdX,…

1. Kiểm tra độ trễ cơ bản
Bài kiểm tra này giúp đánh giá tốc độ phản hồi của ổ cứng một cách đơn giản nhất. Lệnh này sẽ gửi 10 yêu cầu I/O và báo cáo kết quả.
Ví dụ: Bạn thực hành lệnh ping
đến ổ cứng /dev/sda
bằng ioping
.
[root@quantrilinux.vn ~]# ioping -c 10 /dev/sda
4 KiB <<< /dev/sda (block device 4 GiB): request=1 time=159.5 us (warmup)
4 KiB <<< /dev/sda (block device 4 GiB): request=2 time=380.7 us
4 KiB <<< /dev/sda (block device 4 GiB): request=3 time=382.0 us
4 KiB <<< /dev/sda (block device 4 GiB): request=4 time=339.0 us
4 KiB <<< /dev/sda (block device 4 GiB): request=5 time=184.4 us
4 KiB <<< /dev/sda (block device 4 GiB): request=6 time=379.7 us
4 KiB <<< /dev/sda (block device 4 GiB): request=7 time=388.3 us (slow)
4 KiB <<< /dev/sda (block device 4 GiB): request=8 time=410.1 us (slow)
4 KiB <<< /dev/sda (block device 4 GiB): request=9 time=355.1 us
4 KiB <<< /dev/sda (block device 4 GiB): request=10 time=364.5 us
--- /dev/sda (block device 4 GiB) ioping statistics ---
9 requests completed in 3.18 ms, 36 KiB read, 2.83 k iops, 11.0 MiB/s
generated 10 requests in 9.00 s, 40 KiB, 1 iops, 4.44 KiB/s
min/avg/max/mdev = 184.4 us / 353.8 us / 410.1 us / 62.9 us
Thông số bạn cần quan tâm nhất ở đây là dòng cuối cùng: min/avg/max/mdev
.
- avg (Trung bình): 410.1 µs (tương đương 0.4101 ms) là độ trễ trung bình.
- min (Tối thiểu): Độ trễ thấp nhất.
- max (Tối đa): Độ trễ cao nhất.
Kinh nghiệm:
2. Đo tốc độ đọc tuần tự
Bạn có thể tham khảo bài test dưới đây để xem mô phỏng việc đọc các file lớn một cách liên tục:
ioping -RD .
--- . (ext4 /dev/dm-1) ioping statistics ---
75.1 k requests completed in 2.74 s, 293.3 MiB read, 27.4 k iops, 107.0 MiB/s
generated 75.1 k requests in 3.00 s, 293.3 MiB, 25.0 k iops, 97.8 MiB/s
min/avg/max/mdev = 22.4 us / 36.5 us / 825.6 us / 15.0 us
Từ kết quả trên chạy lệnh, thông số quan trọng bạn cần quan tâm là iops
: 27.4k iops (Tương đương 27400 IOPS). Con số này cho biết tốc độ đọc của ổ cứng.
3. Đo tốc độ ghi tuần tự
Bài test dưới đây sẽ đo hiệu năng ghi dữ liệu:
ioping -W .
--- . (ext4 /dev/sda1) ioping statistics ---
40.8 k requests completed in 3.0 s, 13.6 k iops, 53.0 MiB/s
min/avg/max/mdev = 2.3 us / 73.6 us / 12.1 ms / 215.1 us
Kết quả chạy lệnh trên cho thấy tốc độ ghi đạt 13.6k iops.
Bảng tham khảo kết quả ioping của một số storage/provider
Loại Storage/Nhà cung cấp | Kết quả ioping (Min/avg/max/mdev) |
---|---|
SAN Hardware | 418.9 us / 495.9 us / 659.4 us / 68.5 us |
SAN Hardware | 47.6 us / 256.8 us / 446.7 us / 155.3 us |
VSAN | 172.1 us / 369.3 us / 742.5 us / 168.8 us |
CEPH | 1.07 ms / 1.21 ms / 1.35 ms / 109.5 us |
CEPH | 1.39 ms / 1.54 ms / 1.64 ms / 73.8 us |
AWS Cloud | 347.0 us / 403.8 us / 469.4 us / 44.2 us |
Vultr | 165.0 us / 282.9 us / 321.3 us / 44.5 us |
GCP (Google Cloud) | 143.3 us / 235.3 us / 418.5 us / 80.1 us |
DO (Digital Ocean) | 137.5 us / 176.1 us / 366.3 us / 67.8 us |
Ổ cứng SSD Local (Server) | 118.9 us / 149.5 us / 195.3 us / 21.4 us |
Ổ cứng SSD Local (VPS) | 370.6 us / 553.6 us / 702.3 us / 113.2 us |
Ổ cứng NVMe Local (Server) | 53.7 us / 111.7 us / 132.2 us / 21.6 us |
Ổ cứng NVMe Local (VPS) | 209.4 us / 357.4 us / 1.11 ms / 270.5 us |
So sánh ioping với fio
ioping
và fio
đều là những tiện ích dòng lệnh mạnh mẽ trên Linux được sử dụng để đo lường hiệu suất của hệ thống lưu trữ. Tuy nhiên, cả hai được thiết kế cho những mục đích và kịch bản sử dụng hoàn toàn khác nhau, ioping
giống như một công cụ chẩn đoán nhanh, trong khi fio
là một bộ công cụ benchmark toàn diện.
Tiêu chí | ioping | fio |
---|---|---|
Mục đích chính | Đo lường độ trễ I/O trong thời gian thực. | Thực hiện các bài kiểm tra hiệu năng toàn diện và mô phỏng tải công việc phức tạp. |
Độ phức tạp | Đơn giản, cú pháp dễ học, tương tự lệnh ping . | Rất phức tạp, yêu cầu cấu hình thông qua các tệp công việc với hàng trăm tùy chọn. |
Kịch bản sử dụng | Chẩn đoán nhanh sự cố, giám sát hiệu suất tức thời, kiểm tra tốc độ phản hồi của ổ cứng. | Đánh giá phần cứng mới, so sánh nhà cung cấp dịch vụ, kiểm tra tải, tạo báo cáo hiệu suất chi tiết. |
Khả năng tùy chỉnh | Khả năng tùy chỉnh hạn chế, chủ yếu tùy chỉnh số lượng yêu cầu, kích thước khối và chế độ đọc/ghi cơ bản. | Khả năng tùy chỉnh linh hoạt, cho phép tùy chỉnh sâu về loại I/O, tỷ lệ đọc/ghi, kích thước khối, độ sâu hàng đợi, số lượng luồng,… |
Kết quả đầu ra | Cung cấp kết quả nhanh chóng, dễ đọc về độ trễ và IOPS cơ bản. | Tạo ra các báo cáo thống kê chi tiết về IOPS, băng thông và phân phối độ trễ ở nhiều cấp độ. |

Câu hỏi thường gặp
Làm thế nào để tối ưu kết quả test với ioping?
Làm sao sử dụng ioping trong shell script tự động kiểm tra thiết bị?
Bạn có thể tích hợp lệnh ioping trong shell script, xuất kết quả ra file log để tự động monitor độ trễ I/O. Ví dụ:bash
#!/bin/bash ioping -c 10 /dev/sda > /var/log/ioping_sda.log
Sau đó bạn dùng cron để tự động chạy định kỳ.
Một số lỗi thường gặp khi dùng ioping là gì?
– Permission denied: Bạn cần chạy lệnh với quyền root khi kiểm tra trên phân vùng ổ đĩa hoặc thiết bị block.
– No such file or directory: Địa chỉ thiết bị hoặc thư mục test bị sai, bạn hãy kiểm tra lại đường dẫn.
– Warning: caching affects results: Bạn nên sử dụng tuỳ chọn -D để bỏ qua bộ nhớ đệm nếu cần kết quả chính xác.
– Latency cao bất thường: Lỗi này có thể do thiết bị có vấn đề hoặc hệ thống đang tải nặng, bạn nên kiểm tra thêm bằng các công cụ khác như htop, iotop, fio hoặc thử lại sau.
Kết luận
Kiểm tra độ trễ ổ cứng là công việc vô cùng quan trọng giúp đảm bảo hiệu năng ổn định cho cả hệ thống lẫn ứng dụng. Thông qua công cụ như ioping, bạn có thể nhanh chóng xác định và đánh giá tình trạng lưu trữ, từ đó đưa ra quyết định tối ưu hợp lý. Việc chủ động đo lường và giám sát độ trễ sẽ giúp tối ưu thời gian phản hồi, nâng cao trải nghiệm người dùng cuối và đảm bảo hệ thống vận hành mượt mà, hiệu quả.