Rabbitmq-合理的なパフォーマンス/スケールの期待


13

誰かがrabbitmqの合理的なスケールの数値/制限(「平均的な」ハードウェア、fwiw)の方向を教えてくれたり、パフォーマンスの経験を投稿してくれたりしてくれればありがたいです。私は、キューの数、キューのサブスクライバーの数、ファンアウトキューに数百または数千のリスナーがいることのパフォーマンスへの影響、大容量環境でウサギを実行している可能性のあるハードナンバーの容量を取得しようとしています。


これはテストするのが非常に簡単です。特に、期待する数値を使用して、いくつかのVMを準備するための予算があることを考慮すると、テストは簡単です。使用する予定のハードウェアで、正確なユースケースに基づいてテストすることを強くお勧めします。
アンドリューM.

CloudAMQPの計画をご覧ください。これらは、特定のハードウェア構成でテストされたパフォーマンス値です。
モニカの復活-M.シュレーダー

回答:


11

まず、リスト内のどのアイテムにスケーリング制限があり、ヒットしていないかを理解する必要があります。この一部は実装に依存しているため、RabbitMQ in Actionの本のように、内部を読むのに役立ちます。

キューの数は、RAMによって制限されます。一方、RabbitMQはメッセージをディスクに自動的にページアウトするため、再生中のメッセージの数はRAMによって制限されません。私が注意を払っていなかったときに、開発サーバーで偶然約800万件のメッセージが再生されました。

メッセージのサイズに制限もありませんが、1つのメッセージのサイズが512Kを超える場合は、本当によく考えてください。最終的には、メモリキャッシュを使用してアプリケーション間で大きなオブジェクトを渡し、memcacheキーを含む小さな制御メッセージのみを送信しました。ただし、本当に必要な場合は、巨大なJPEGとJARファイルなどのバイナリオブジェクトをメッセージとして送信できます。

サブスクライバーは少なくとも1つのTCPソケットを開く必要があるため、サブスクライバーの数はOSの制限です。もちろん、これはほとんどのOSで調整可能であるため、走行距離はさまざまであるため、モデルをテストする必要があります。JMETERを使用してWebアプリケーションの負荷テストを行っており、このAMQPプラグインhttps://github.com/jlavallee/JMeter-Rabbit-AMQPを発見しましたが、まだ使用していません。いずれにせよ、これは、ハードウェア(またはVM構成)が合理的に処理するものをすぐに示す一種のテストです。

あなたが持っている唯一の困難なことは、ファンアウトキューに対して多数の消費者をテストすることです。代わりにトピック交換を使用して比較し、コンシューマーが同じ最終結果を達成するワイルドカード(*)バインディングキーを使用してサブスクライブすることもできます。できるだけ多くの異なるマシンでこのテストを実行して、コンシューマプロセスを実行している単一のサーバーが原因で何らかの形でボトルネックに陥っていないことを確認してください。Jmeterプラグインは、消費者をシミュレートするのにも役立つようです。


6

これは実際に答えられる質問ではありません-あまりにも多くの要因があります(「平均」ハードウェアの移動する定義、キュー内のメッセージのサイズ、消費者の数、ポーリングの頻度/メッセージの処理速度など) 。)。環境をベンチマークする必要があります。

とはいえ、RabbitMQのパフォーマンスに関するこれらの議論のいくつかをチェックしてください(Rabbitに期待できることを確認するために、インストールのベンチマークを行う方法に関するいくつかのアイデアを含みます)


1
私は多くの変数を知っています。だからこそ、「平均的な」ハードウェアのようなものを引用で引用しましたが、それはアイデアの曖昧さを理解しているからです。それにもかかわらず、私は人々の経験から得られたいくつかの数字が役に立つと思った。参照していただきありがとうございます。
user21640

1
@ user21640質問にファズを追加するのはハードウェアだけではありません。高頻度取引では、あなたや私とは異なる「大容量」という考え方があり、許容可能なパフォーマンスの定義が大きく異なります。最終的にはその経験事項唯一の人は、あなたの環境で、であり、それは、キャパシティプランニングの信頼に来るとき、私の経験では1十分に計画地元のベンチマークは、外部報告書の何千もの価値がある-あなたのワークロードがあるとき、あなたは知っていることはない病的な場合: -)
voretaq7
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.