Kiểm tra tốc độc đọc ghi ổ cứng

Để đánh giá hiệu năng một server, ngoài cấu hình CPU, RAM, bạn cần quan tâm tới một thông số quan trọng không kém: tốc độ đọc/ghi hay I/O speed của ổ cứng. Tại sao lại phải quan tâm thông số này, hãy cùng chúng tôi trả lời câu hỏi “Điều gì diễn ra khi ổ cứng của tôi có tốc độ đọc/ghi chậm?”.

Điều gì diễn ra khi ổ cứng của tôi có tốc độ đọc/ghi chậm?

Hãy tưởng tượng khi bạn giải một bài toán. Bộ não suy nghĩ cách giải bài toán như CPU, RAM xử lý một tiến trình, còn ghi ổ cứng là việc bạn viết lời giải lên giấy. Điều gì xảy ra khi bạn viết chậm? Hiển nhiên là tổng thời gian để bạn giải hoàn thiện bài toán sẽ tăng lên rất nhiều cho dù bạn có nghĩ ra bài giải nhanh tới đâu. Tương tự như server của bạn có một ổ cứng rùa cho dù cấu hình CPU, RAM cao đi chăng nữa.

Vậy làm sao để kiểm tra tốc độ đọc ghi ổ cứng của server và tốc độ nào để đánh giá ổ cứng có chậm hay không? Chúng ta sẽ cùng tìm hiểu ngay sau đây.

Làm sao để test tốc độ đọc/ghi ổ cứng của tôi?

Tôi sẽ hướng dẫn bạn sử dụng dd – câu lệnh đơn giản nhất để test tốc độ ổ cứng.
– Tại terminal, đi tới thư mục được mount vào ổ cứng. Server của tôi là thư mục /mnt

$ cd /mnt

– Hãy thử chạy lệnh:

$ dd if=/dev/zero of=test01 bs=1M count=1024
    1024+0 records in
    1024+0 records out
    1073741824 bytes (1.1 GB) copied, 3.22553 s, 333 MB/s

Tốc độ thật tốt, nhưng bạn đừng mừng vội, hãy thử chạy:

$ dd if=/dev/zero of=test01 bs=1M count=1024 conv=fdatasync
    1024+0 records in
    1024+0 records out
    1073741824 bytes (1.1 GB) copied, 8.76874 s, 122 MB/s

Điều gì làm cho kết quả khác biệt nhiều đến thế? Điểm khác biệt duy nhất trong hai câu lệnh là thông số conv=fdatasync. Thông số này chỉ ra rằng dữ liệu được ghi vào ổ cứng chứ không phải được ghi trên RAM, tức là với câu lệnh chưa có option conv, dữ liệu mới chỉ được ghi lại trên RAM.

Server tôi đang chạy ví dụ cho bạn có RAM 1GB, tôi có thể chạy câu lệnh không cần option conv nếu dùng file test01 có dung lượng lớn hơn dung lượng RAM:

$ dd if=/dev/zero of=test01 bs=1M count=4096
    4096+0 records in
    4096+0 records out
    4294967296 bytes (4.3 GB) copied, 28.9963 s, 148 MB/s

Chọn câu lệnh bạn thích, chạy trên server và cho tôi biết kết quả.

Tốc độ nào để đánh giá ổ cứng có chậm hay không?

Kinh nghiệm của nhiều người chỉ ra rằng, tốc độ chuẩn là 50MB/s.
Tức là nếu ổ của bạn đạt trên 50MB/s là có thể dùng được, trên 100MB/s là tốt.
Nhưng nếu ổ của bạn đạt dưới 40MB/s thì quá tệ.
Như vậy là tôi có một ổ cứng khá tốt đó chứ.