Redis on Flash (RoF) là một trong những chức năng doanh nghiệp phổ biến nhất của chúng tôi, giúp tính toán trong bộ nhớ tiết kiệm chi phí bằng cách lưu trữ tới 80% bộ dữ liệu trong SSD thay vì DRAM đắt tiền và trong khi vẫn giữ độ trễ dưới mili giây và thông lượng cao của Redis. Trong các đợt triển khai điển hình, RoF cung cấp chiết khấu TCO lên đến 70%.
Giờ đây với hai lần hợp tác mới, thú vị, chúng tôi tự hào thông báo RoF hiện có thể mang lại hiệu suất gấp 3,7 lần trong khi vẫn duy trì cùng một tổng chi phí sở hữu hấp dẫn để chạy các tập dữ liệu lớn trên Redis. Đầu tiên, AWS đã công bố tính khả dụng chung của thế hệ phiên bản mới, Amazon EC2 I4i, được hỗ trợ bởi bộ vi xử lý Intel Xeon Scalable thế hệ thứ 3 (tên mã Ice Lake) và bộ lưu trữ dựa trên AWS Nitro SSD NVMe. Thế hệ mới này hứa hẹn sẽ mang đến sự gia tăng đáng kể về hiệu suất cho những khách hàng sử dụng Redis chuyên sâu về dữ liệu. Ngoài ra, chúng tôi vui mừng chia sẻ kế hoạch mở công cụ dữ liệu cho RoF vào bất kỳ cơ sở dữ liệu nào tương thích với RocksDB, với công nghệ mới được công bố từ Speedb, là lựa chọn đầu tiên.
Chúng tôi tin rằng sự kết hợp của các phiên bản I4i mới và cung cấp cho khách hàng sự lựa chọn cho công cụ dữ liệu của họ sẽ làm cho RoF trở nên hấp dẫn hơn nữa đối với các bộ dữ liệu lớn, khi nhu cầu về trải nghiệm thời gian thực tăng lên đối với các công ty đang xây dựng các ứng dụng hiện đại hoặc kiến trúc microservice có độ trễ thấp.
Amazon EC2 I4i và Speedb mang lại điều gì cho Redis trên Flash?
Hãy cùng tìm hiểu những tính năng mới trên RoF. AWS đang cung cấp các phiên bản Amazon EC2 I4i mới (‘i’ là dành cho Intel) trên 4 khu vực. Các phiên bản I4i sử dụng công nghệ mới nhất, bộ xử lý Intel Ice Lake và AWS Nitro SSD, giúp cải thiện IOPS và giảm độ trễ so với thế hệ I3 trước đó.
Tách biệt khỏi phần cứng, chúng tôi đang tìm cách để RoF có thể mang lại hiệu suất cao hơn nữa và xác định cơ hội để mở công cụ dữ liệu cho sự đổi mới của khách hàng và doanh nhân. Chúng tôi vui mừng thông báo rằng RoF hiện đã mở cửa cho mọi công cụ dữ liệu tương thích với RocksDB và Speedb là giải pháp thay thế đầu tiên được Redis cung cấp. Làm việc với chúng tôi, nhóm tại Speedb đã thiết kế lại cấu trúc dữ liệu nội bộ của RocksDB để tăng hiệu suất và quy mô một cách ấn tượng đồng thời giảm tài nguyên CPU.
Trong bài đăng trên blog này, chúng tôi chia sẻ cách Speedb cung cấp mức tăng hiệu suất đáng kể gần 50% ở các thử nghiệm dưới mili giây của chúng tôi so với RocksDB, bất kể phiên bản AWS EC2 nào chúng tôi đang sử dụng, I4i hay I3.
RoF với Speedb hiện có sẵn trong bản xem trước riêng tư. Khách hàng của Redis có thể liên hệ với nhóm tài khoản của họ để biết thêm thông tin hoặc dùng thử dịch vụ mới.
Đo điểm chuẩn cho Redis mới trên Flash
Các kỹ sư hiệu suất của chúng tôi không thể chờ đợi để được chạm tay vào các phiên bản I4i của AWS và kiểm tra chúng với công cụ dữ liệu Speedb mới của RoF. Chúng tôi vui mừng trở thành đối tác AWS đầu tiên kiểm tra kỹ lưỡng các phiên bản Amazon EC2 I4i. Xin nhắc lại, RoF phân loại các bộ dữ liệu lớn một cách thông minh và được thiết kế để tận dụng lợi thế giá mỗi GiB của SSD NVMe thấp hơn so với DRAM. Điều này cho phép chúng tôi cung cấp hiệu suất cấp Redis, hiện thậm chí còn nhanh hơn với các phiên bản I4i, với tổng chi phí sở hữu là 30% đối với các phiên bản dựa trên DRAM.
Trước khi đi đến kết quả và con số điểm chuẩn, hãy xem xét thời điểm khách hàng nên xem xét RoF. Chúng tôi đã phát triển RoF cho các trường hợp sử dụng trong đó tập dữ liệu hoạt động nhỏ hơn tổng số tập dữ liệu và việc chuyển sang DRAM bổ sung là chi phí cực thấp. Một trường hợp sử dụng RoF phổ biến khác là xử lý dữ liệu hàng loạt, trong đó một lượng lớn dữ liệu cần được xử lý cho các ứng dụng quan trọng trong kinh doanh, đòi hỏi độ trễ thấp ổn định và thông lượng cao theo thời gian.
Bây giờ đến phần thú vị, kết quả điểm chuẩn.
Những gì chúng tôi đã chấm điểm
Chúng tôi đã so sánh hiệu suất của Redis trên Flash với bốn phiên bản AWS:
i3.8xlarge - RAM 244GB, ổ SSD 4xNVMe, tổng cộng 7,6TB
I4i.4xlarge - RAM 128GB, ổ SSD 1xNVMe, tổng cộng 3,75TB
I4i.8xlarge - RAM 256GB, ổ SSD 2xNVMe, tổng cộng 7,5TB
I4i.16xlarge - RAM 512GB, ổ SSD 4xNVMe cho tổng 15TB
Chúng tôi đã so sánh hiệu suất của hai công cụ dữ liệu
- RocksDB
- Speedb
Thông số thử nghiệm
Chúng tôi đã sử dụng kích thước giá trị 1KiB, bao gồm hầu hết các trường hợp sử dụng Redis tiêu chuẩn
Chúng tôi đã kiểm tra tỷ lệ truy cập RAM 50% và 85% (tức là nhiều yêu cầu được phân phối trực tiếp từ RAM)
Chúng tôi đã thử nghiệm RAM 20:80:Tỷ lệ flash
Chúng tôi đã đánh giá các tỷ lệ đọc:ghi khác nhau:1:1, 4:1 và 1:4
Tất cả các thử nghiệm được thực hiện bằng hai máy chủ
Sau đây là các kích thước cơ sở dữ liệu mà chúng tôi chạy theo các loại phiên bản:
- I4i.4xlarge:500GB + bản sao. 5 phân đoạn chính + 5 phân đoạn bản sao
- i3.8xlarge:1TB + bản sao. 10 mảnh chính + 10 mảnh bản sao
- I4i.8xlarge:1TB + bản sao. 10 mảnh chính + 10 mảnh bản sao
- I4i.16xlarge:2TB + sao chép. 20 mảnh chính + 20 mảnh bản sao
Trong mỗi cấu hình, chúng tôi đã kiểm tra xem có thể đạt được bao nhiêu ops / giây trong khi vẫn giữ độ trễ của máy khách dưới mili giây (không bao gồm mạng)
Những gì chúng tôi tìm thấy
Biểu đồ bên dưới cho thấy i3 so với I4i và RocksDB với Speedb:
Chúng ta có thể thấy những cải tiến sau:
Từ | thành | Hệ số tăng tốc |
i3.8xlarge stonedb | i3.8xlarge speedb | 1,3 lần |
I4i.8xlarge stonedb | I4i.8xlarge speedb | 1,46 lần |
i3.8xlarge stonedb | I4i.8xlarge stonedb | 1,94 lần |
i3.8xlarge speedb | I4i.8xlarge speedb | 2,16x |
i3.8xlarge stonedb | I4i.8xlarge speedb | 2,83x |
Biểu đồ bên dưới cho thấy tỷ lệ với I4i trên Speedb và các tỷ lệ đọc:ghi khác nhau:
Chúng ta có thể thấy các kết quả và cải tiến sau:
Chia tỷ lệ khôn ngoan, chúng ta có thể thấy rằng RoF trên I4i với Speedb có tỷ lệ gần như tuyến tính.
4xlarge → 8xlarge có hệ số ~ 1,55x-1,8x
8xlarge → 16xlarge có hệ số tỷ lệ ~ 1,85x-1,95x
Một kết quả đáng chú ý thứ hai là RoF trên I4i với Speedb rất không phù hợp với kiểu truy cập ứng dụng (tỷ lệ đọc:ghi). Điều đó có nghĩa là hiệu suất vẫn ổn định và có thể dự đoán được. Điều đó có thể hữu ích khi làm việc với nhiều ứng dụng khác nhau hoặc khi kiểu truy cập thay đổi theo thời gian.
Biểu đồ bên dưới cho thấy sự cải thiện hiệu suất tổng thể 3,7 lần:
Phụ lục:
Thiết lập điểm chuẩn
Phiên bản Redis Enterprise:v. 6.2.8-39 trên Ubuntu 18.04
Redis trên cơ sở dữ liệu Flash:xem chi tiết từng trường hợp ở trên
Máy khách:EC2 m5.8xlarge (32 VCPU, 128 GB RAM)
Công cụ tạo tải:điểm chuẩn memtier
Lệnh mẫu Memtier cho tỷ lệ ram 85%:
memtier_benchmark -s
–Hide-histogram –pipeline =1 -c 4 -t 256 -d 1000
–Key-Maximum =771141855 –key-pattern =G:G –key-stddev =50358491
–Ratio =1:1 –distinction-client-seed –randomize –test-time =1200
Hình minh họa thiết lập: