2017-10-19 15 views
1

メッセージをディスクに書き込まないようにする必要があります。 RabbitMQのドキュメントには、次のように記載されています。RabbitMQがディスクにメッセージを書き込まないようにする

永続メッセージと一時メッセージの両方をディスクに書き込むことができます。永続メッセージはキューに達するとすぐにディスクに書き込まれ、過渡メッセージはディスクに書き込まれるため、メモリの負荷を受けている間はメモリから追い出されます。

「記憶中」とは多少曖昧です。一時メッセージが決してディスクに書き込まれないようにする方法はありますか?それになっても、このケースでは配信できない場合はメッセージを失うことは大丈夫です。

答えて

1

一時的なメッセージは、サーバーのメモリが高い状態、つまりRAM使用率が高い場合にのみディスクにフラッシュされます。これは、待ち行列に入れられたメッセージの数が急上昇している場合に起こる可能性があります。この場合、RAMを解放するためにRabbitMQはディスクへのメッセージのフラッシュ(ページアウト)を開始します。劣化する。ソースhere

https://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-May/027161.htmlvm_memory_high_watermarkを本当に高い値に設定できるようです。そうすることによって、RabbitMQはディスクに書き込むチャンスがある前にOOMによって殺されます.RabbitMQはあたかも利用可能なメモリが多いかのように振る舞います。

+0

リンクありがとうございます。私はかなりの最適な解決策を見ることはできません(vm_memory_high_watermarkオプションは私の考える仕事をしますが、クラッシュリカバリが必要になるでしょう)。しかし、このスレッドは、私が前に考えなかったRAMディスクについても話しており、調査する価値があるので、ありがとう! – Mikko

関連する問題