Ngoài CPU hoặc RAM, hiệu năng của ổ cứng cũng là một trong những tác nhân khiến cho một máy chủ Linux hoạt động chậm. Tốc độ đọc/ghi của ổ đĩa ảnh hưởng trực tiếp đến mọi tác vụ, từ tốc độ tải website, thời gian truy vấn cơ sở dữ liệu cho đến các hoạt động sao lưu, phục hồi. Trong bài viết này, mình sẽ hướng dẫn bạn cách kiểm tra tốc độ ổ cứng Linux nhanh chóng và đơn giản.
Những điểm chính
- Định nghĩa tốc độ đọc/ghi ổ cứng: Là chỉ số về khả năng truy xuất (đọc) và lưu trữ (ghi) dữ liệu của ổ cứng trong một đơn vị thời gian.
- Hậu quả của tốc độ đọc/ghi ổ cứng chậm: Khởi động, sao chép, cài đặt chậm; ứng dụng/game bị giật, lag; truy vấn database chậm; server giảm khả năng phục vụ nhiều người dùng.
- Thông số quan trọng: Tốc độ đọc/ghi tuần tự, tốc độ đọc/ghi ngẫu nhiên và IOPS.
- 5 công cụ kiểm tra phổ biến: Để kiểm tra tốc độ ổ cứng, bạn có thể dùng dd, hdparm, ioping, fio và script tự động.
- Trường hợp nên kiểm tra tốc độ ổ cứng: Khi hệ thống chậm, iowait cao, trước khi triển khai/chọn nhà cung cấp mới và sau khi di chuyển/nâng cấp hệ thống.
- Câu hỏi thường gặp: Giải đáp những câu hỏi thường gặp khi kiểm tra tốc độ ổ cứng.
Tốc độ đọc/ghi của ổ cứng là gì?
Tốc độ đọc/ghi của ổ cứng là chỉ số cho biết khả năng truy xuất và lưu trữ dữ liệu của ổ cứng trong một đơn vị thời gian, thường được đo bằng MB/s hoặc GB/s.
- Tốc độ đọc: Cho biết ổ cứng có thể lấy (Đọc) dữ liệu từ bộ nhớ nhanh tới mức nào, ảnh hưởng trực tiếp đến việc mở file, khởi động máy, chạy ứng dụng,…
- Tốc độ ghi: Thể hiện khả năng lưu (Ghi) dữ liệu mới xuống ổ cứng, tác động đến thời gian sao chép file hoặc cài đặt phần mềm.
Ổ cứng có tốc độ đọc/ghi cao sẽ giúp hệ thống hoạt động mượt mà, khởi động và chuyển dữ liệu nhanh hơn, cải thiện trải nghiệm người dùng.

Ổ cứng có tốc độ đọc/ghi chậm dẫn đến hậu quả gì?
Ổ cứng có tốc độ đọc/ghi chậm sẽ gây ra nhiều hậu quả tiêu cực như:
- Khởi động máy tính, hệ điều hành và ứng dụng chậm, khiến bạn mất nhiều thời gian chờ đợi.
- Quá trình sao chép, di chuyển hoặc lưu file diễn ra lâu, đặc biệt đối với file dung lượng lớn.
- Ứng dụng xử lý dữ liệu lớn, đồ họa, games, các phần mềm chuyên nghiệp bị giật, lag hoặc bị treo.
- Truy vấn cơ sở dữ liệu chậm, ảnh hưởng đến hiệu suất hệ thống, website hoặc các dịch vụ online.
- Đối với server, tốc độ đọc/ghi thấp làm giảm khả năng phục vụ nhiều người dùng cùng lúc, tăng nguy cơ nghẽn cổ chai về hiệu năng.
Tóm lại, ổ cứng tốc độ thấp ảnh hưởng trực tiếp đến trải nghiệm sử dụng, làm giảm năng suất và hiệu quả công việc cũng như vận hành hệ thống.

Các thông số quan trọng cần biết
- Tốc độ đọc/ghi tuần tự: Là tốc độ khi đọc/ghi các file lớn, liền mạch, rất quan trọng cho các tác vụ như streaming video, sao chép file lớn, backup.
- Tốc độ đọc/ghi ngẫu nhiên: Là tốc độ khi đọc/ghi các khối dữ liệu nhỏ, nằm rải rác, quyết định hiệu năng của cơ sở dữ liệu, máy chủ web và các ứng dụng có nhiều file nhỏ.
- IOPS: Là 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, khả năng xử lý đồng thời nhiều yêu cầu càng tốt, đặc biệt quan trọng với database.

Các trường hợp nên kiểm tra tốc độ ổ cứng
- Khi hệ thống vận hành chậm bất thường, bạn nghi ngờ do ổ cứng gây ra.
- Khi chỉ số iowait (Thời gian CPU chờ xử lý I/O) tăng cao, ảnh hưởng hiệu năng tổng thể.
- Trước khi bạn triển khai dự án, chọn mua hoặc thuê máy chủ từ nhà cung cấp mới để đảm bảo đáp ứng nhu cầu sử dụng.
- Sau khi bạn di chuyển dữ liệu hoặc nâng cấp hệ thống, nhằm xác thực tốc độ ổ cứng đạt yêu cầu và phát hiện sự cố phát sinh.

5 công cụ kiểm tra tốc độ ổ cứng phổ biến
1. Công cụ dd
dd
(dataset-definition) là công cụ dòng lệnh có sẵn trên hầu hết các bản phân phối Linux, chủ yếu dùng để sao chép và chuyển đổi dữ liệu ở low level. Bạn có thể tận dụng dd
để thực hiện các bài kiểm tra tốc độ ghi/đọc tuần tự một cách đơn giản.
Kiểm tra tốc độ ghi
Lệnh sẽ tạo ra một file testfile
có dung lượng 1GB (1M * 1024 = 1024MB) và đo thời gian thực hiện:
dd if=/dev/zero of=testfile bs=1M count=1024 oflag=direct
if=/dev/zero
: Lấy dữ liệu đầu vào là các ký tự null.of=testfile
: Ghi dữ liệu ra file tên là testfile.bs=1M
: Chỉ định kích thước mỗi khối là 1MB.count=1024
: Số lượng khối cần sao chép.oflag=direct
: Tùy chọn này yêu cầu ghi trực tiếp xuống ổ đĩa, bỏ qua bộ đệm của hệ điều hành để cho kết quả chính xác hơn.
Kiểm tra tốc độ đọc
Trước khi đo tốc độ đọc, bạn cần xóa cache của hệ điều hành để đảm bảo dd
đọc trực tiếp từ ổ cứng.
# Xóa cache (yêu cầu quyền root)
echo 3 > /proc/sys/vm/drop_caches
# Chạy lệnh dd để đọc file đã tạo ở trên
dd if=testfile of=/dev/null bs=1M
of=/dev/null
: Đọc file nhưng không ghi và chỉ để đo lường.
Có sẵn, không cần cài đặt, dễ sử dụng cho các bài test nhanh.
Chỉ đo được tốc độ tuần tự, không phản ánh hiệu năng thực tế của database, kết quả có thể bị ảnh hưởng bởi cache nếu không cẩn thận.
2. Công cụ hdparm
hdparm
là công cụ dùng để xem và tinh chỉnh các thông số của ổ cứng SATA/IDE, cung cấp một bài test tốc độ đọc rất nhanh.
Để cài đặt, bạn chạy lệnh sau:
# Debian/Ubuntu
sudo apt-get install hdparm
# CentOS/RHEL
sudo yum install hdparm
Để sử dụng, bạn tiến hành chạy lệnh sau:
sudo hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 14720 MB in 1.99 seconds = 7391.65 MB/sec
Timing buffered disk reads: 3072 MB in 1.24 seconds = 2471.75 MB/sec
/dev/sda
: Ổ cứng cần kiểm tra-t
: Perform device read timings (đọc dữ liệu từ device)-T
: Perform cache read timings (đọc dữ liệu từ cache)
Kết quả sẽ trả về 2 thông số:
- Timing cached reads: Là tốc độ đọc từ cache của Linux, rất nhanh nhưng không phản ánh tốc độ thật của ổ cứng.
- Timing buffered disk reads: Là tốc độ đọc trực tiếp từ ổ đĩa và là con số bạn cần quan tâm.
hdparm cho kết quả rất nhanh, gần như tức thì.
hdparm chỉ đo tốc độ đọc tuần tự và không phải là một bài benchmark toàn diện.
3. Công cụ ioping
ioping
hoạt động giống như lệnh ping
cho mạng, được sử dụng cho ổ đĩa. Lệnh này rất hữu ích để đo độ trễ của các thao tác I/O.
Đối với Debian/Ubuntu:
sudo apt-get install ioping
Đối với CentOS/RHEL:
sudo yum install ioping
Sử dụng:
# Gửi 10 yêu cầu để đo độ trễ trung bình
ioping -c 10 .
# Đo IOPS đọc tuần tự (nhấn Ctrl+C để dừng)
ioping -RD .
ioping
sẽ cho bạn thấy độ trễ tính bằng us
hoặc ms
và chỉ số IOPS cơ bản.
4. Công cụ fio
fio
(Flexible I/O Tester) là công cụ benchmark ổ cứng mạnh mẽ và linh hoạt nhất, có thể giả lập mọi loại workload (Tuần tự, ngẫu nhiên, đọc, ghi, hỗn hợp) để cho kết quả gần với thực tế nhất.
Để cài đặt, bạn chạy lệnh sau:
# Debian/Ubuntu
sudo apt-get install fio
# CentOS/RHEL
sudo yum install fio
Các ví dụ sử dụng:
- Kiểm tra tốc độ đọc/ghi ngẫu nhiên:
fio --name=random-rw --ioengine=libaio --rw=randrw --bs=4k --size=1G --numjobs=1 --iodepth=64 --runtime=60 --time_based --group_reporting
- Kiểm tra tốc độ đọc tuần tự:
fio --name=sequential-read --ioengine=libaio --rw=read --bs=1M --size=1G --numjobs=1 --group_reporting
- Kiểm tra tốc độ đọc ghi hỗn hợp:
Tạo ra một file có dung lượng 4GB và thực hiện thao tác đọc/ghi các block 4KB với tỉ lệ 75%/25% – cứ 3 thao tác read sẽ thực hiện 1 thao tác write
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

fio
sẽ cung cấp một báo cáo cực kỳ chi tiết về IOPS, băng thông và độ trễ.
Cực kỳ mạnh mẽ, linh hoạt, là tiêu chuẩn vàng để benchmark ổ cứng.
Cú pháp phức tạp hơn các công cụ khác.
5. Dùng script tự động
Đối với người dùng không chuyên, cách đơn giản nhất là sử dụng các script benchmark được cộng đồng tạo sẵn. Một trong những script rất phổ biến và thân thiện với người dùng Việt Nam là của tocdo[.]net.
curl -Lso- tocdo.net | bash
Script này sẽ tự động chạy nhiều bài test khác nhau (Bao gồm cả tốc độ CPU, RAM, mạng và ổ cứng) và đưa ra một bản báo cáo tổng hợp, dễ đọc, có cả các bài test đến các máy chủ tại Việt Nam.
Script tự động thường dễ sử dụng, báo cáo thân thiện, có máy chủ test tại Việt Nam.
Khi sử dụng script tự động, bạn thường có ít quyền kiểm soát hơn các công cụ chuyên dụng như fio.
Câu hỏi thường gặp
Làm thế nào để biết tốc độ ổ cứng mình nhanh hay chậm?
Sau khi đo, bạn hãy so sánh kết quả với thông số ổ cứng do nhà sản xuất công bố hoặc tham khảo cộng đồng công nghệ. Nếu tốc độ đọc/ghi/IOPS thấp hơn nhiều hoặc máy thường xuyên chậm, bạn nên cân nhắc thay ổ cứng mới để đảm bảo hiệu năng.
Vì sao tốc độ ổ cứng giảm dần theo thời gian sử dụng?
Sau một thời gian hoạt động, ổ cứng có thể bị phân mảnh dữ liệu, nhiều sector hư hỏng hoặc tuổi thọ linh kiện giảm, dẫn tới hiệu suất đọc/ghi kém hơn ban đầu.
Có cần kiểm tra tốc độ ổ cứng định kỳ không?
Nên kiểm tra định kỳ đặc biệt khi nhận thấy hệ thống chậm, để phát hiện sớm các dấu hiệu xuống cấp và có biện pháp xử lý kịp thời.
Kết luận
Việc lựa chọn công cụ để kiểm tra tốc độ ổ cứng Linux phụ thuộc vào nhu cầu của bạn. Cụ thể, bạn nên dùng dd
hoặc hdparm
cho các bài test nhanh về tốc độ tuần tự, dùng các script tự động như của tocdo.net để có cái nhìn tổng quan một cách nhanh chóng và sử dụng fio
khi bạn cần một bài benchmark chi tiết, chính xác và chuyên sâu để mô phỏng workload thực tế. Bạn hãy thường xuyên kiểm tra để đảm bảo server của bạn luôn hoạt động ở trạng thái tốt nhất.