为什么Unix块大小会随着内存大小的增加而增加?

Léo*_* 준영 7 unix memory algorithm time-complexity space-complexity

我正在分析具有的二进制数据

  • stat当事件数量增加时,增加Unix块大小(一个来自> Blocks),如下图所示
  • 但事件之间的字节距离保持不变
  • 我注意到文件的其他字段有一些变化,这可能解释了增加的Unix块大小

在此输入图像描述

unix块大小是动态度量.我感兴趣的是,在某些系统中,为什么它会随着更大的内存单元而增加.我有一个想法,它应该是不变的.我使用不同的环境来提供stat输出:

  • Debian Linux 8.1的默认设置 stat
  • 带Xcode 6的OSX 10.8.5及其默认值 stat

Greybeard的评论可能有块行为的答案:

stat(1)命令曾经是stat(2)系统调用的瘦CLI,用于传输文件inode的相关部分.很早以前,stat(2)返回的C struct的st_blksize成员的含义被更改为"preferred"blocksize以实现高效的文件系统I/O,这很好地适用于具有混合块大小或非块定向的文件系统分配.

如何分别测量情况(1)和(2)中的块大小?

为什么Unix块大小会随着内存大小的增加而增加?

Kon*_*sov 3

“统计块”不是块大小。它是文件组成的块数。显然,块的数量与大小成正比。对于大多数文件系统(如果不是全部),块的大小是恒定的。