Rabbitmq - Hiệu suất hợp lý / quy mô kỳ vọng


13

Tôi sẽ rất biết ơn nếu bất cứ ai có thể chỉ cho tôi theo hướng của một số số liệu / giới hạn quy mô hợp lý trên rabbitmq (trên phần cứng "trung bình", fwiw) hoặc đăng kinh nghiệm của bạn với hiệu suất của nó. Tôi đang cố gắng hiểu được năng lực về số lượng hàng đợi, số lượng người đăng ký trên hàng đợi, ý nghĩa về hiệu suất của việc có hàng trăm hoặc hàng nghìn người nghe trên hàng đợi fanout, bất kỳ số lượng cứng nào mà bất kỳ ai cũng có thể chạy thỏ trong môi trường dung lượng cao.


Điều này cực kỳ đơn giản để kiểm tra, đặc biệt là xem xét rằng, với những con số bạn mong đợi, bạn có ngân sách để sẵn sàng cho một số máy ảo. Tôi đặc biệt khuyên bạn nên kiểm tra nó dựa trên trường hợp sử dụng chính xác của bạn, trên phần cứng bạn muốn sử dụng.
Andrew M.

Hãy xem các kế hoạch của CloudAMQP - đây là những con số hiệu năng được thử nghiệm cho các cấu hình phần cứng nhất định.
Phục hồi Monica - M. Schröder

Câu trả lời:


11

Trước hết, bạn cần hiểu những mục nào trong danh sách của bạn có giới hạn tỷ lệ mà bạn có thể đạt được, và mục nào không. Một số điều này phụ thuộc vào việc triển khai, vì vậy nó giúp đọc các phần bên trong, ví dụ như cuốn sách RabbitMQ in Action.

Số lượng hàng đợi được giới hạn bởi RAM của bạn. Mặt khác, số lượng tin nhắn đang phát không bị giới hạn bởi RAM vì RabbitMQ tự động chuyển chúng ra đĩa. Một lần tôi vô tình nhận được gần 8 triệu tin nhắn đang chơi trên một máy chủ phát triển khi tôi không chú ý.

Cũng không có giới hạn về kích thước tin nhắn, nhưng bạn thực sự nên suy nghĩ hai lần nếu kích thước của một tin nhắn vượt quá 512K. Tôi đã kết thúc bằng cách sử dụng bộ nhớ cache để chuyển các đối tượng lớn giữa các ứng dụng và chỉ gửi các tin nhắn điều khiển nhỏ hơn có chứa khóa memcache. Nhưng nếu bạn thực sự muốn, bạn có thể gửi các đối tượng nhị phân và JPEG lớn như các tệp JAR dưới dạng tin nhắn.

Số lượng người đăng ký là một giới hạn hệ điều hành vì một thuê bao cần ít nhất một ổ cắm TCP mở. Tất nhiên điều đó có thể điều chỉnh trong hầu hết các hệ điều hành, vì vậy số dặm của bạn sẽ thay đổi và đó là lý do tại sao bạn phải kiểm tra mô hình của mình. Tôi đã sử dụng JMETER để tải thử nghiệm các ứng dụng web của chúng tôi và tôi mới phát hiện ra plugin AMQP này https://github.com/jlavallee/JMeter-Rmus-AMQP nhưng chưa sử dụng nó. Trong mọi trường hợp, đây là loại thử nghiệm sẽ nhanh chóng cho bạn biết phần cứng (hoặc cấu hình VM) của bạn sẽ xử lý hợp lý.

Điều khó khăn duy nhất mà bạn có là thử nghiệm số lượng lớn người tiêu dùng cho hàng đợi fanout. Thay vào đó, bạn cũng có thể muốn so sánh bằng cách sử dụng trao đổi chủ đề, với người tiêu dùng đăng ký bằng khóa ràng buộc ký tự đại diện (*) để đạt được kết quả cuối cùng. Hãy thử chạy thử nghiệm này với càng nhiều máy khác nhau càng tốt để đảm bảo rằng bạn không gặp phải tình trạng tắc nghẽn do một máy chủ duy nhất chạy quy trình tiêu dùng. PS mà plugin Jmeter có vẻ như cũng có thể hữu ích để mô phỏng người tiêu dùng.


6

Đây thực sự không phải là một câu hỏi có thể trả lời - có quá nhiều yếu tố (định nghĩa chuyển động của phần cứng "trung bình", kích thước của tin nhắn trong hàng đợi, số lượng người tiêu dùng và tần suất họ thăm dò / mức độ họ hoàn thành công việc trong tin nhắn, v.v. .). Bạn thực sự cần phải điểm chuẩn môi trường của bạn.

Điều đó nói rằng, hãy xem một số các cuộc thảo luận về hiệu suất của RabbitMQ (bao gồm một số ý tưởng về cách bạn có thể điểm chuẩn cài đặt của mình để xem những gì bạn có thể mong đợi từ Rabbit):


1
Tôi nhận thức được nhiều biến số. Đó là lý do tại sao tôi đã đề cập đến những thứ như phần cứng "trung bình", trong phần trích dẫn khi tôi hiểu ý tưởng đó mờ nhạt đến mức nào. Tuy nhiên, tôi nghĩ rằng một số con số xuất phát từ kinh nghiệm của mọi người sẽ hữu ích. Cảm ơn các tài liệu tham khảo.
user21640

1
@ user21640 Không chỉ là phần cứng bổ sung thêm câu hỏi cho bạn - Giao dịch cao tần có thể có ý tưởng khác về "công suất cao" so với bạn hoặc tôi, và rất nhiều định nghĩa khác nhau về hiệu suất chấp nhận được. Cuối cùng là người duy nhất có vấn đề kinh nghiệm là bạn, trong môi trường của bạn, và trong kinh nghiệm của tôi một điểm chuẩn địa phương được quy hoạch là hàng ngàn giá trị của báo cáo bên ngoài khi nói đến sự tự tin trong việc hoạch định công suất - bạn không bao giờ biết khi nào khối lượng công việc của bạn là THE trường hợp bệnh lý: -)
voretaq7
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.