現在、130688バイトのハード制限に達しています。1つのメッセージでもっと大きなものを送信しようとすると、ENOBUFS
エラーが発生します。
、、、、、およびsysctlオプションを確認し、net.core.rmem_default
それらをすべて増やしましたが、これらはメッセージサイズではなく合計バッファーサイズを処理するため、効果はありません。net.core.wmem_default
net.core.rmem_max
net.core.wmem_max
net.unix.max_dgram_qlen
SO_SNDBUF
およびソケットオプションも設定しましたSO_RCVBUF
が、これには上記と同じ問題があります。デフォルトのソケットバッファサイズは、とにかくデフォルトのソケットオプションに基づいて設定されます。
ソケットスタックで返されるカーネルソースを調べましたが、ENOBUFS
どこから来たのかわかりませんでした。このエラーを返すように見える唯一の場所は、メモリを割り当てることができないことと関係があります。
最大サイズは実際には130688ですか?そうでない場合は、カーネルを再コンパイルせずにこれを変更できますか?