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

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

关联说:

缓冲区大小不得超过对磁盘文件的原子写入大小。对于 FreeBSD,此大小不受限制。

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

答案1

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

但总而言之

这是来自人 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

相关内容