如何找到nginx访问日志缓冲区的原子写入大小?

g13*_*g13 5 linux nginx logging ubuntu-14.04

这个链接说:

缓冲区大小不得超过对磁盘文件进行原子写入的大小。对于 FreeBSD,这个大小是无限的。

如何在我的服务器上找到原子写入的大小?有什么命令可以检查这个吗?

小智 2

我试图自己找出 Linux 中原子写入的大小,最有帮助的阅读来自这个Unix Stack Exchange 答案

但总而言之

这是来自man 7 管道

POSIX.1-2001 规定小于 PIPE_BUF 字节的 write(2) 必须是原子的:输出数据作为连续序列写入管道。超过 PIPE_BUF 字节的写入可能是非原子的:内核可能会将数据与其他进程写入的数据交错。POSIX.1-2001 要求 PIPE_BUF 至少为 512 字节。(在 Linux 上,PIPE_BUF 为 4096 字节。)

因此,在 Linux 中,原子写入的大小为 4096 字节。

您可以在此处找到不同操作系统的 PIPE_BUF 大小的不错的表 http://ar.to/notes/posix#pipe-buf