Tag: iops

Hiệu năng của hệ thống Storage: IOPS, latency và throughput

Đây là 3 khái niệm mà bất cứ Sys Admin nào cũng quan tâm khi bắt đầu xây dựng hệ thống Storage, và những ai mong muốn cải thiện tốc độ Cloud Server/Private Cloud của mình. Trong bài này, NTC sẽ đi sâu vào khái niệm IOPS, còn latency và throughput sẽ dành cho post tiếp theo.

IOPS – Input/Output per Second là đơn vị đo lường được sử dụng cho các thiết bị lưu trữ như HDD, SSD hoặc SAN – cho biết số lượng tác vụ Write hoặc Read được hoàn thành trong 1 giây. Số IOPS được publish bởi các nhà sản xuất thiết bị, và không liên quan gì đến các ứng dụng đo lường hiệu năng cả, tuỳ theo cảm tính mà các Sys Admin có thể dùng các ứng dụng đo lường khác nhau (như IOmeter, DiskSpd..).

Vậy IOPS có vai trò như thế nào đối với Cloud Server?

Dễ hiểu nhất, số IOPS càng cao thì tốc độ xử lý sẽ càng nhanh, số tác vụ được xử lý đồng thời cũng sẽ nhiều hơn. Và tất nhiên dẫn đến hiệu năng của ứng dụng trên Cloud Server sẽ cao hơn. Nhưng cũng có trường hợp khi IOPS quá cao, đến giới hạn vật lý sẽ gây ra tình trạng thắt cổ chai (IOPS quá cao –> latency cao –> làm giảm throughput).

Đối với IOPS, thứ quan trọng nhất ta cần chú ý đến là tỉ lệ Read và Write (thông thường tỉ lệ này 70% (Read) và 30%(Write) – có thể tuỳ chỉnh được). Ví dụ dưới đây sẽ cho bạn thấy tỉ lệ này khác nhau như thế nào.

Cách tính IOPS và số lượng ổ cứng.

* Giả sử hệ thống lưu trữ của bạn sử dụng ổ SAS 15k

Dung lượng mỗi ổ là 900Gb.

Tỉ lệ Read/Write tương ứng: 7:3

Cấu hình RAID 10

IOPS per Disk là 176

*Yêu cầu đặt ra là IOPS thực phải trên 1000

Lúc này, hệ thống của bạn chỉ cần 8 cứng là đủ, số IOPS của hệ thống lúc này là 1200.

RAID Level

Capacity IOPS
RAID 10 3,215 GB 1200
RAID 6 4,822 GB 624
RAID 5 5,626 GB 821

Còn nếu chúng ta muốn tỉ lệ Read/Write là 3:7 thì sao? Cùng các điều kiện như trên, với 8 ổ HDD thì số IOPS chỉ là 918, nếu 9 ổ thì IOPS sẽ là 1032, còn 11 ổ thì sẽ là 1262.

Chúng ta cũng có thể thấy là khi cấu hình các RAID level khác nhau, IOPS và capacity thay đổi đáng kể: IOPS cao thì capacity sẽ bị giảm xuống, và ngược lại. Lý do là vì từng RAID level có sự khác biệt về số lượng ổ cứng tối thiểu (Raid Penalty). Vì thế, để setup 1 hệ thống sát với nhu cầu, Sys Admin cần phải xác định rõ ưu tiên hệ thống của mình là gì: Ứng dụng chạy nhanh? Mức độ bảo mật? dung lượng lưu trữ?

Bảng yêu cầu RAID Penalty – là số lượng ổ cứng tối thiểu tương ứng với mỗi RAID level

Các công thức tính trong bài:

Tổng IOPS = IOPS per Disk * Số ổ cứng

IOPS thực = (Tổng IOPS * Write%)/(Raid Penalty) + (Tổng IOPS * Read %)

Số ổ cứng = ((Read IOPS) + (Write IOPS*Raid Penalty))/ IOPS per Disk

Bảng IOPS tương ứng với từng loại ổ cứng.

À mà khoan, còn IOPS trên SSD thì sao? Nếu bạn đã muốn sử dụng SSD enterprise, thì IOPS lúc này … cao vời vợi. Tuỳ theo model SSD mà có thể lên hàng ngàn (Intel X25-E ~ 8600 IOPS) hoặc chục ngàn (OCZ Vertex 4 ~ 120,000 IOPS) hoặc thậm chí là hàng triệu nếu dùng ổ NVMe!!

Bài liên quan:

Làm thế nào để biết doanh nghiệp của bạn thật sự cần Private Cloud?