2016-07-20 7 views
2

私はDiffusion 5.8.0を使用しており、クライアントコネクタのinput-buffer-sizeoutput-buffer-sizeを1024kに増やしました。PUSH-000086:要求された出力バッファサイズを割り当てることができませんでした

クライアントは、次のログメッセージがサーバーコンソールに出力され、このコネクタを使用してサーバに接続する場合:割り当てられたバッファサイズよりも大きいメッセージの送信と受信

2016-07-12 10:42:51.997|INFO|Diffusion: InboundThreadPool Thread_0|PUSH-000086|Client Connector: Requested output buffer size could not be allocated, requested: 1M allocated: 208K.|com.pushtechnology.diffusion.comms.connector.ConnectorImpl 
2016-07-12 10:42:51.997|INFO|Diffusion: InboundThreadPool Thread_0|PUSH-000085|Connector Client Connector: Requested input buffer size could not be allocated, requested: '1M' allocated: '208K'.|com.pushtechnology.diffusion.comms.connector.ConnectorImpl 

はこれがある場合、私は疑問に思ってそう働きます私が心配する必要があるもの...

パフォーマンスの影響はありますか?もしそうなら、どうすればより大きなバッファサイズを割り当てられますか?

答えて

2

DiffusionのドキュメントのBuffer Sizingページから。

input-buffer-size/output-buffer-sizeを増やすと、2つのバッファが構成されます。 1つはクライアントマルチプレクサにあり、設定されたサイズになります。もう1つは、オペレーティングシステムによって管理されるソケットバッファです。あなたのケースでは、オペレーティングシステムは指定されたサイズのソケットバッファを提供しない可能性があります。

下の図に示すように、これはパフォーマンスに影響を有する。

enter image description here

図1においてワイヤ上で送信されるメッセージ、ソケットバッファ、およびクライアントマルチプレクサのバッファであります同じサイズ。この場合、メッセージはワイヤから直接ソケットバッファに送られ、ソケットバッファからクライアントマルチプレクサに直接渡されます。

図2メッセージとクライアントマルチプレクサのバッファは同じサイズです。しかし、OSは、より小さいソケットバッファを割り当てており、完全なメッセージがクライアントマルチプレクサに転送される前に、複数の反復でコピーする必要があります。各反復は、パフォーマンスに影響を及ぼすコンテキスト切り替えを引き起こします。

大きなソケットバッファを割り当てる方法は、お使いのオペレーティングシステムによって異なります。 Linuxの場合には、あなたがソケットバッファサイズを確認するには、次のコマンドを実行することができます。私の場合はsysctl -a | grep mem

、このコマンドの実行結果が含まれています:

net.core.rmem_default = 212992 
net.core.rmem_max = 212992 
net.core.wmem_default = 212992 
net.core.wmem_max = 212992 

これらはOSバインド入力と出力バッファですサイズはsysctl -wコマンドを使用して設定できます。

+0

ありがとうございました –

関連する問題