[20190411]linux stat 命令疑問.txt

lfree發表於2019-04-11

[20190411]linux stat 命令疑問.txt


--//別人問的問題,stat命令中的blocks的單位是什麼?


$ ls -l sysaux01.dbf

-rw-r----- 1 oracle oinstall 1017126912 2019-04-11 10:26:39 sysaux01.dbf


$ stat  sysaux01.dbf

  File: `sysaux01.dbf'

  Size: 1017126912      Blocks: 1990472    IO Block: 4096   regular file

Device: 12h/18d Inode: 67278574    Links: 1

Access: (0640/-rw-r-----)  Uid: (  502/  oracle)   Gid: (  502/oinstall)

Access: 2019-04-11 10:31:36.719826498 +0800

Modify: 2019-04-11 10:26:39.789814323 +0800

Change: 2019-04-11 10:26:39.789814323 +0800


--//問一下blocks:1990472 的單位是什麼? 

--//1017126912/1990472 = 510.99784975623872126812, 512位元組嗎?

--//檔案大小1017126912,佔1017126912/512 = 1986576 塊.

--//1990472-1986576 = 3896

--//單位是512位元組肯定的.

--//還有3896塊是其它資訊嗎?


$ man stat

%b     Number of blocks allocated (see %B)

%B     The size in bytes of each block reported by %b


$ stat -c "%b %B" sysaux01.dbf

1990472 512


--//我估計這個blocks除了檔案佔用外,還有後設資料的資訊(間接塊的資訊).如果熟悉ext2檔案系統,檔案系統有1個一級間接塊,二級間接

--//塊的概念....

--//實際上oracle assm借鑑這個設計,以空間換取效能.

--//我記憶裡前面12個是直接塊地址.連結:


$ dd if=/dev/zero of=aa11 bs=4096 count=11

$ dd if=/dev/zero of=aa12 bs=4096 count=12

$ dd if=/dev/zero of=aa13 bs=4096 count=13


$ stat aa11

  File: `aa11'

  Size: 45056           Blocks: 88         IO Block: 4096   regular file

Device: 6802h/26626d    Inode: 9210838     Links: 1

Access: (0644/-rw-r--r--)  Uid: (  502/  oracle)   Gid: (  502/oinstall)

Access: 2019-04-11 10:55:55.000000000 +0800

Modify: 2019-04-11 10:55:55.000000000 +0800

Change: 2019-04-11 10:55:55.000000000 +0800


$ stat aa12 aa13

File: `aa12'

  Size: 49152           Blocks: 96         IO Block: 4096   regular file

Device: 6802h/26626d    Inode: 9211009     Links: 1

Access: (0644/-rw-r--r--)  Uid: (  502/  oracle)   Gid: (  502/oinstall)

Access: 2019-04-11 10:51:39.000000000 +0800

Modify: 2019-04-11 10:51:39.000000000 +0800

Change: 2019-04-11 10:51:39.000000000 +0800

  File: `aa13'

  Size: 53248           Blocks: 112        IO Block: 4096   regular file

Device: 6802h/26626d    Inode: 9211010     Links: 1

Access: (0644/-rw-r--r--)  Uid: (  502/  oracle)   Gid: (  502/oinstall)

Access: 2019-04-11 10:52:30.000000000 +0800

Modify: 2019-04-11 10:52:30.000000000 +0800

Change: 2019-04-11 10:52:30.000000000 +0800


--//注意看blocks的變化, 88->96->112,增加量是8,8,16.

--//當建立檔案需要13塊時,需要多建立1個塊儲存一級間接塊地址.這樣多消耗4096/512=8塊.

--//也可以看出檔案越大這方面的消耗也越大.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2641011/,如需轉載,請註明出處,否則將追究法律責任。

相關文章