Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Tại Skyeng, chúng tôi sử dụng Amazon Redshift, bao gồm cả việc mở rộng quy mô song song, vì vậy chúng tôi thấy bài viết này của Stefan Gromoll, người sáng lập dotgo.com, cho intermix.io rất thú vị. Sau bản dịch, một chút kinh nghiệm của chúng tôi từ kỹ sư dữ liệu Daniyar Belkhodzhaev.

Kiến trúc dịch chuyển đỏ của Amazon cho phép mở rộng quy mô bằng cách thêm các nút mới vào cụm. Nhu cầu giải quyết số lượng yêu cầu cao nhất có thể dẫn đến việc cung cấp quá mức các nút. Mở rộng quy mô đồng thời, trái ngược với việc thêm các nút mới, tăng sức mạnh tính toán khi cần thiết.

Khả năng thay đổi quy mô song song của Amazon Redshift cung cấp thêm dung lượng cho các cụm Redshift để xử lý khối lượng yêu cầu cao điểm. Nó hoạt động bằng cách di chuyển các yêu cầu đến các cụm “song song” mới trong nền. Các yêu cầu được định tuyến dựa trên cấu hình và quy tắc WLM.

Định giá mở rộng song song dựa trên mô hình tín dụng với cấp miễn phí. Trên các khoản tín dụng miễn phí, khoản thanh toán dựa trên thời gian Cụm mở rộng song song xử lý các yêu cầu.

Tác giả đã thử nghiệm chia tỷ lệ song song trên một trong các cụm bên trong. Trong bài đăng này, anh ấy sẽ nói về kết quả kiểm tra và đưa ra lời khuyên về cách bắt đầu.

Yêu cầu cụm

Để sử dụng quy mô song song, cụm Amazon Redshift của bạn phải đáp ứng các yêu cầu sau:

- nền tảng: EC2-VPC;
- loại nút: dc2.8xlarge, ds2.8xlarge, dc2.large hoặc ds2.xlarge;
- số nút: từ 2 đến 32 (cụm nút đơn không được hỗ trợ).

Các loại yêu cầu được chấp nhận

Chia tỷ lệ song song không phù hợp với tất cả các loại truy vấn. Trong phiên bản đầu tiên, nó chỉ xử lý các yêu cầu đọc thỏa mãn ba điều kiện:

— Truy vấn SELECT ở dạng chỉ đọc (mặc dù có nhiều loại được lên kế hoạch);
— truy vấn không tham chiếu đến bảng có kiểu sắp xếp INTERLEAVED;
- Truy vấn không sử dụng Amazon Redshift Spectrum để tham chiếu các bảng bên ngoài.

Để được định tuyến đến Cụm chia tỷ lệ song song, yêu cầu phải được xếp hàng đợi. Ngoài ra, các truy vấn đủ điều kiện cho hàng đợi SQA (Tăng tốc truy vấn ngắn), sẽ không chạy trên các cụm quy mô song song.

Hàng đợi và SQA yêu cầu cấu hình phù hợp Quản lý khối lượng công việc Redshift (WLM). Chúng tôi khuyên bạn nên tối ưu hóa WLM trước - điều này sẽ làm giảm nhu cầu mở rộng quy mô song song. Và điều này rất quan trọng vì việc chia tỷ lệ song song chỉ miễn phí trong một số giờ nhất định. AWS tuyên bố rằng việc mở rộng quy mô song song sẽ miễn phí cho 97% khách hàng, điều này đưa chúng ta đến vấn đề về giá cả.

Chi phí mở rộng quy mô song song

AWS cung cấp mô hình tín dụng để mở rộng quy mô song song. Mỗi cụm hoạt động Amazon RedShift Tích lũy tín dụng hàng giờ, tối đa một giờ tín dụng mở rộng quy mô song song miễn phí mỗi ngày.

Bạn chỉ thanh toán khi mức sử dụng Cụm chia tỷ lệ song song của bạn vượt quá số tín dụng bạn đã nhận được.

Chi phí được tính theo tốc độ mỗi giây theo yêu cầu đối với cụm song song được sử dụng trên mức miễn phí. Bạn chỉ bị tính phí trong khoảng thời gian yêu cầu của mình, với mức phí tối thiểu là một phút mỗi lần Cụm quy mô song song được kích hoạt. Tốc độ theo yêu cầu mỗi giây được tính toán dựa trên nguyên tắc định giá chung Amazon RedShift, nghĩa là, nó phụ thuộc vào loại nút và số lượng nút trong cụm của bạn.

Khởi chạy chia tỷ lệ song song

Chia tỷ lệ song song được kích hoạt cho mỗi hàng đợi WLM. Đi tới bảng điều khiển AWS Redshift và chọn Quản lý khối lượng công việc từ menu điều hướng bên trái. Chọn nhóm tham số WLM của cụm của bạn từ menu thả xuống sau.

Bạn sẽ thấy một cột mới có tên "Chế độ chia tỷ lệ đồng thời" bên cạnh mỗi hàng đợi. Mặc định là "Đã tắt". Nhấp vào "Chỉnh sửa" và bạn có thể thay đổi cài đặt cho từng hàng đợi.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Cấu hình

Quy mô song song hoạt động bằng cách chuyển tiếp các yêu cầu thích hợp đến các cụm chuyên dụng mới. Các cụm mới có cùng kích thước (loại và số lượng nút) với cụm chính.

Số cụm mặc định được sử dụng để chia tỷ lệ song song là một (1), với khả năng định cấu hình lên tới tổng cộng mười (10) cụm.
Tổng số cụm để chia tỷ lệ song song có thể được đặt bằng tham số max_concurrency_scaling_clusters. Việc tăng giá trị của tham số này sẽ cung cấp thêm các cụm dự phòng.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Giám sát

Có một số biểu đồ bổ sung có sẵn trong bảng điều khiển AWS Redshift. Biểu đồ Cụm chia tỷ lệ đồng thời được định cấu hình tối đa hiển thị giá trị của max_concurrency_scaling_clusters theo thời gian.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Số lượng cụm chia tỷ lệ đang hoạt động được hiển thị trong giao diện người dùng trong phần “Hoạt động chia tỷ lệ đồng thời”:

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Trong tab Truy vấn, có một cột cho biết truy vấn được thực thi trong cụm chính hay trong cụm chia tỷ lệ song song:

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Bất kể một truy vấn cụ thể được thực thi trong cụm chính hay thông qua cụm chia tỷ lệ song song, nó đều được lưu trữ trong stl_query.concurrency_scaling_status.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Giá trị 1 cho biết truy vấn đã được thực thi trong cụm tỷ lệ song song, trong khi các giá trị khác cho biết rằng truy vấn đã được thực thi trong cụm chính.

Ví dụ:

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Thông tin chia tỷ lệ đồng thời cũng được lưu trữ trong một số bảng và dạng xem khác, chẳng hạn như SVCS_CONCURRENCY_SCALING_USAGE. Ngoài ra, còn có một số bảng danh mục lưu trữ thông tin về tỷ lệ song song.

Những phát hiện

Các tác giả đã bắt đầu mở rộng quy mô song song cho một hàng đợi trong cụm nội bộ vào khoảng 18:30:00 GMT ngày 29.03.2019/3/20. Đã thay đổi thông số max_concurrency_scaling_clusters thành 30 vào khoảng 00:29.03.2019:XNUMX ngày XNUMX/XNUMX/XNUMX.

Để mô phỏng hàng đợi yêu cầu, chúng tôi đã giảm số lượng vị trí cho hàng đợi này từ 15 xuống còn 5.

Dưới đây là biểu đồ bảng điều khiển của intermix.io hiển thị số lượng yêu cầu đang chạy và xếp hàng sau khi giảm số lượng vị trí.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Chúng tôi thấy rằng thời gian chờ đợi các yêu cầu trong hàng đợi đã tăng lên, thời gian tối đa là hơn 5 phút.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Đây là thông tin liên quan từ bảng điều khiển AWS về những gì đã xảy ra trong thời gian này:

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Redshift đã khởi chạy ba (3) cụm chia tỷ lệ song song như đã định cấu hình. Có vẻ như các cụm này chưa được sử dụng đúng mức, mặc dù nhiều yêu cầu trong cụm của chúng tôi đã được xếp hàng đợi.

Biểu đồ sử dụng tương quan với biểu đồ hoạt động chia tỷ lệ:

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Sau vài giờ, các tác giả đã kiểm tra hàng đợi và có vẻ như có 6 yêu cầu đang chạy ở quy mô song song. Chúng tôi cũng đã thử nghiệm ngẫu nhiên hai yêu cầu thông qua giao diện người dùng. Chúng tôi chưa kiểm tra cách sử dụng các giá trị này khi một số cụm song song hoạt động cùng một lúc.

Hướng dẫn chia tỷ lệ song song của Amazon Redshift và kết quả kiểm tra

Những phát hiện

Chia tỷ lệ song song có thể giảm thời gian yêu cầu xếp hàng trong thời gian tải cao điểm.

Dựa trên kết quả của bài kiểm tra cơ bản, hóa ra tình trạng tải yêu cầu đã được cải thiện một phần. Tuy nhiên, chỉ riêng việc mở rộng quy mô song song không giải quyết được tất cả các vấn đề tương tranh.

Điều này là do những hạn chế về các loại truy vấn có thể sử dụng tỷ lệ song song. Ví dụ: tác giả có nhiều bảng với các phím sắp xếp xen kẽ và phần lớn khối lượng công việc của chúng tôi là viết.

Mặc dù việc chia tỷ lệ song song không phải là giải pháp phổ biến để thiết lập WLM nhưng việc sử dụng tính năng này rất đơn giản và dễ hiểu.

Do đó, tác giả khuyên bạn nên sử dụng nó cho hàng đợi WLM của mình. Bắt đầu với một cụm song song và theo dõi tải tối đa thông qua bảng điều khiển để xác định xem các cụm mới có đang được sử dụng đầy đủ hay không.

Khi AWS bổ sung hỗ trợ cho các loại truy vấn và bảng bổ sung, việc mở rộng song song sẽ ngày càng trở nên hiệu quả hơn.

Nhận xét từ Daniyar Belkhodzhaev, Kỹ sư dữ liệu Skyeng

Tại Skyeng, chúng tôi cũng ngay lập tức nhận thấy khả năng mở rộng quy mô song song đang nổi lên.
Chức năng này rất hấp dẫn, đặc biệt khi AWS ước tính rằng hầu hết người dùng thậm chí sẽ không phải trả thêm tiền cho nó.

Chuyện xảy ra là vào giữa tháng 24, chúng tôi nhận được một loạt yêu cầu bất thường đối với cụm Redshift. Trong giai đoạn này, chúng tôi thường sử dụng Quy mô đồng thời; đôi khi một cụm bổ sung hoạt động XNUMX giờ một ngày không ngừng.

Điều này khiến cho nếu không giải quyết được hoàn toàn vấn đề xếp hàng thì ít nhất cũng có thể làm cho tình huống có thể chấp nhận được.

Quan sát của chúng tôi phần lớn trùng khớp với ấn tượng của những người đến từ intermix.io.

Chúng tôi cũng nhận thấy rằng mặc dù có các yêu cầu đang chờ trong hàng đợi nhưng không phải tất cả các yêu cầu đều được chuyển tiếp ngay lập tức đến cụm song song. Rõ ràng điều này xảy ra vì cụm song song vẫn cần thời gian để bắt đầu. Kết quả là, trong thời gian tải cao điểm ngắn hạn, chúng tôi vẫn có hàng đợi nhỏ và các cảnh báo tương ứng có thời gian để kích hoạt.

Sau khi loại bỏ tải bất thường vào tháng XNUMX, như AWS mong đợi, chúng tôi đã chuyển sang chế độ sử dụng không thường xuyên - trong định mức miễn phí.
Bạn có thể theo dõi chi phí mở rộng song song của mình trong AWS Cost Explorer. Bạn cần chọn Dịch vụ - Redshift, Loại sử dụng - CS, ví dụ USW2-CS:dc2.large.

Bạn có thể đọc thêm về giá cả bằng tiếng Nga đây.

Nguồn: www.habr.com

Thêm một lời nhận xét