0

LMAX ディスラプターを使用して、アプリケーションで 5 ~ 10 個のディスラプターを一緒に使用した場合 (すべてのディスラプターが 1 つのコンシューマーを持ち、指定されたタスクを実行し、メッセージを次のディスラプターに引き渡すような、一連のディスラプターのようなもの) を観察しました。 / ringbuffer)、CPU 使用率が 90% 以上に達し、アプリケーションを停止するまでシステムが応答しなくなります。これは、アクティブなディスラプター スレッドが非常に多いためだと感じています。これは、ディスラプターが実際には何も処理していない場合でも発生します。アプリケーションで使用するディスラプターの最適な数について、誰かコメントできますか?

4

1 に答える 1

1

コンシューマーで使用している待機戦略を変更する必要がある可能性があります。それらすべてでビジー待機戦略を使用している場合、リング バッファーに入力が提供されていない場合でも、ポーリング スレッドは引き続き CPU リソースを占有する可能性があります。新しい値を読み取るためのバッファ。

于 2014-03-24T22:01:29.970 に答える