web-dev-qa-db-ja.com

nginxアクセスログバッファのアトミック書き込みのサイズを見つける方法は?

これ リンク は言う:

バッファサイズは、ディスクファイルへのアトミック書き込みのサイズを超えてはなりません。 FreeBSDの場合、このサイズは無制限です。

サーバーでアトミック書き込みのサイズを見つけるにはどうすればよいですか?これを確認するコマンドはありますか?

5
g13

私は自分でLinuxでのアトミック書き込みのサイズを調べようとしていましたが、最も役立つ読み物はこれからでした nix Stack Exchangeの回答

しかし要約すると

これは 男7パイプ からです。

POSIX.1-2001は、PIPE_BUFバイト未満のwrite(2)はアトミックである必要があると述べています。出力データは連続したシーケンスとしてパイプに書き込まれます。 PIPE_BUFバイトを超える書き込みは、非アトミックである可能性があります。カーネルは、データを他のプロセスによって書き込まれたデータとインターリーブする場合があります。 POSIX.1-2001では、PIPE_BUFが少なくとも512バイトである必要があります。 (Linuxでは、PIPE_BUFは4096バイトです。)

したがって、Linuxでは、アトミック書き込みのサイズは4096バイトです。

さまざまなOSのPIPE_BUFサイズのNiceテーブルはここにあります http://ar.to/notes/posix#pipe-buf

1
Raboo