12/08/2018, 16:44

Sử dụng công cụ fio và IOPing để kiểm tra khả năng hoạt động của ổ cứng

Một trong những yếu tố ảnh hưởng đến hiệu suất hoạt động của server hay PC đó là tốc độ đọc/ghi của ổ cứng. Có rất nhiều công cụ được sử dụng để kiểm tra tốc độ đĩa cứng, ví dụ như lệnh "dd", tuy nhiên "dd" không chỉ ra rõ được thi tiết về khả năng hoạt động của ổ cứng. Ở đây chúng ta sẽ có một ...

Một trong những yếu tố ảnh hưởng đến hiệu suất hoạt động của server hay PC đó là tốc độ đọc/ghi của ổ cứng. Có rất nhiều công cụ được sử dụng để kiểm tra tốc độ đĩa cứng, ví dụ như lệnh "dd", tuy nhiên "dd" không chỉ ra rõ được thi tiết về khả năng hoạt động của ổ cứng. Ở đây chúng ta sẽ có một công cụ khác thay thế với rất nhiều tính năng và ưu điểm so với "dd". Đó là fio và IOPing.

Trong bài viết sau, sẽ sử dụng hệ điều hành Centos 7.

Trước hết ta cần cài đặt EPEL repo:

$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ rpm -ivh epel-release-latest-7.noarch.rpm

Sau đó lầ cài đặt fio:

$ yum install -y fio

Để kiểm tra tốc độ đọc ghi của ổ cứng, ta sử dụng lệnh sau:

$ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

Quá trình test sẽ diễn ra như hình:

fio sẽ tạo ra 1 file nặng 4GB và thực hiện quá trình đọc và ghi với blocksize là 4KB theo tỉ lệ 75% đọc và 25% ghi, chạy cùng lúc 64 tiến trình.

Ở phần kết quả ta sẽ quan tâm đến thông số iops sau

read : io=3071.7MB, bw=17255KB/s, iops=4313, runt=182291msec
write: io=1024.4MB, bw=5754.8KB/s, iops=1438, runt=182291msec

ta lấy kết quả này so sánh với thông số ổ cứng ( tất nhiên là sẽ có sự sai lệch ), ví dụ như ở đây mình sử dụng ổ cứng Intel ssd-730-series có tốc độ:

  • Random 4KB4 Reads: Up to 89,000 IOPS
  • Random 4KB4 Writes: Up to 74,000 IOPS

Vậy ta có thể kiểm tra được hiệu suất làm việc của ổ cứng ở thời điểm check.

Ngoài ra ta có thể kiểm tra từng phần đọc/ghi Kiểm tra tốc độ đọc của ổ đĩa:

$ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read.fio --bs=4k --iodepth=64 --size=4G --readwrite=randread

Hay kiểm tra tốc độ ghi

$ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randwrite

Tiếp theo ta sẽ sử dụng công cụ IOPing để kiểm tra độ trễ của ổ cứng.

Trước hết cần cài đặt IOPing:

$ yum install -y ioping

Thực hiện lệnh test sau:

$ ioping -c 10 .

Quá trình test diễn ra như ảnh

0