Câu chuyện khái niệm: Throughput, latency và IOPS

Đây là ba tham số quan trọng trong các hệ thống storage. Để dễ hiểu ba khái niệm này có thể map với hoạt động ship hàng từ điểm A đến B.

số lượng chuyến đi thưc hiện trong một khoảng thời gian là IOPS

số hàng chuyển được trong một khoảng thời gian chính là throughput

latency là độ trễ trung bình trong tất cả các chuyến đi trong một khoảng thời gian đã thực hiện

Khoảng thời gian này giả sử là một ngày đi.

Ba tham số này, đặc biệt là hai tham số IOPS và latency phản ánh chất lượng phục vụ nhưng ko phải lúc nào cũng song hành với nhau kiểu một chỉ số tốt thì các chỉ số còn lại cũng tốt theo:

Có thể một ngày có nhiều chuyến hàng nhưng có những chuyến hàng chuyển nhanh, có chuyến hàng chuyển chậm, IOPS cao nhưng latency trung bình cũng lại cao.

Có thể một ngày có ít chuyến hàng nhưng mỗi chuyến lại chở full tải thì throughput lại cao dù IOPS thấp vì Throughput = IOPS * IO Average size (IO average size cao thì throughput cao)

Có thể latency trung bình thấp nhưng số hàng chuyển cũng không vì thế mà cao được do ít đơn hàng (application ít request vào storage)

Nhưng không phải vì thế mà các tham số này không có ảnh hưởng lên nhau:

khi IOPS quá cao, chạm đến giới hạn vật lý của hệ thống thì sẽ gây high latency

high latency không xử lý ngay sẽ làm giảm throughput vì data không thực sự được chuyển đến đúng nơi cần đến mà bị nghẽn lại ( busy cũng cao theo )

Có thể xem ba tham số này qua công cụ atop:

Screen Shot 2016-08-04 at 10.01.00 AM

chỗ dòng DSK sda, busy 1%, read 0, write 339 do đó IOPS = 339, MBread/s = 0, MBWrite/s = 0.27, throughput write là 0.27MB/s, còn avio là latency trung bình là 0.40ms.

Mình đang tìm hiểu về storage. Việc hiểu khái niệm có gì không chính xác các bạn comment sửa giúp nhé.

Người viết Manhdung

ITZone via Kipalog

Chia sẻ bài viết ngay