Tag: storage

Khái niệm Latency – Thông số quan trọng nhất trong hệ thống lưu trữ

Khái niệm Latency

Latency là khái niệm về tốc độ xử lý 1 request I/O của hệ thống. Khái niệm này rất quan trọng bởi vì 1 hệ thống lưu trữ mặc dù chỉ có capacity 1000 IOPS với thời gian trung bình xử lý latency 10ms, vẫn có thể tốt hơn 1 hệ thống với 5000 IOPS nhưng latency là 50ms. Đặc biệt đối với các ứng dụng “nhạy cảm” với latency, chẳng hạn như dịch vụ Database.

Lấy 1 ví dụ thực tế, trong 1 siêu thị, nếu như các thu ngân (ổ cứng) phục vụ cho các khách hàng (I/O) với thời gian latency là 10ms. Vậy nôm na, có thể hiểu rằng thu ngân này phục vụ 100 khách/1 giây. Tuy nhiên, nếu có thời điểm 100 khách này tới cùng 1 lúc trong vòng 10ms thì sao? khách hàng sẽ phải đứng đợi. Và cũng tuỳ từng nhu cầu khách hàng (size I/O) mà latency có thể khác nhau, 15ms hoặc thậm chí 20 ms

Hình minh hoạ sau sẽ cho các bạn thấy tại sao khi ổ cứng tăng IOPS lại tốn latecy cao hơn. Sự thật là hệ thống lưu trữ sẽ nhìn vào hàng đợi (queu) và ra lệnh xử lý tuần tự cho các I/O, dẫn đến nếu hàng đợi dài hơn thì latency sẽ cao hơn, tùy thuộc vào hiệu năng yêu cầu của ứng dụng mà chúng ta có thể chấp nhận chuyện này hay không.

IOPS vs Latency : Yếu tố nào quyết định hiệu năng hệ thống Storage?

Để so sánh được hiệu quả hệ thống storage, các yếu tố về môi trường platform và ứng dụng cần phải giống nhau – điều này rất khó, vì hệ thống của doanh nghiệp cần phải chạy multi-workload. Trong một vài trường hợp, việc xử lý/transfer 1 lượng lớn data (high throughput) thì được xem là tốt, nhưng khi cần xử lý số lượng lớn các I/O nhỏ thật nhanh (cần IOPS), thì chưa chắc và ngược lại. Lúc này kích cỡ I/O, độ dài của hàng đợi (queu depth) và mức độ xử lý song song… đều có ảnh hưởng đến hiệu năng.

IOPS – Có lẽ hệ thống sử dụng các ổ cứng HDD hay SSD hiện nay thì đã quá cao rồi, khi đứng riêng lẻ 1 mình, con số này trở nên vô ích. Và vô hình chung nó trở thành 1 thuật ngữ để các nhà sản xuất marketing cho thiết bị của mình, các doanh nghiệp không nên vin vào đó làm thước đo quyết định hiệu năng hệ thống Storage.

Thay vì đặt câu hỏi: “hệ thống với bao nhiêu IOPS là được?” ta nên hỏi rằng: “Thời gian xử lý ứng dụng là bao nhiêu?” Latency nên được xem là thông số hữu ích nhất, vì nó tác động trực tiếp lên hiệu năng của hệ thống, là yếu tố chính nên dựa vào tính toán ra IOPS và throughput. Nghĩa là việc giảm thiểu latency sẽ giúp cải thiện chung hiệu năng của cả hệ thống

Xem thêm:

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

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?