システム単位ファイル内のUnixドメインデータグラムソケットのバッファサイズを増やす

システム単位ファイル内のUnixドメインデータグラムソケットのバッファサイズを増やす

一方向デーモン通信にはUnixドメインデータグラムソケットを使用しています。特定のピーク計算では、write()読み取りプロセスで単一のデータグラムを計算するのに時間がかかるため、ソケットに書き込むプロセスがブロックされる可能性があります。書き込みプロセスは定期的にデータを生成するため、問題を解決する最もきれいな方法はソケットのバッファリング容量を増やすことです。ソケットは、次のシステム単位ファイルに基づいて生成されます。

[Unit]
Description= Some Internal Socket

[Socket]
ListenDatagram=/run/foo/foo.sk
#ReceiveBuffer=10M
#SendBuffer=10M
#PipeSize=10M
#MessageQueueMaxMessages=1024
#MessageQueueMessageSize=1024

私はsystemd.socketの人を見て、有望に見えるいくつかのオプション(コメント)を見つけました。私はこれらの様々な組み合わせを試しましたが、残念ながら何も機能しません。ディスクのユニットファイルを変更したら、常にシステム(オペレーティングシステム)を再起動して、適用された変更が適用されることを確認します。毎回ブロックの前に同じ数のデータグラムを書き込むことができます。おそらく、データグラムの長さが数バイトずつ異なる可能性があるからです。たとえば、時には508個のデータグラムを書き込むことも、時には483個のデータグラムを書き込むこともあります。

正しいアプローチが何であるかを知っている人はいますか?

ベストアンサー1

おすすめ記事