磁盘 block size=1024
新建一个空目录
[root@wqj-pc a]# ll -d
drwxr-xr-x. 2 root root 4096 9月 8 21:12 . <--目录文件占用4096B空间
[root@wqj-pc a]# ll
总用量 0 <--所列项目占用空间为0
[root@wqj-pc a]#
[root@wqj-pc a]# stat .
File: "."
Size: 4096 Blocks: 8 IO Block: 4096 目录
Device: 802h/2050d Inode: 21 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:12:34.795998334 +0800
Modify: 2014-09-08 21:12:34.094994871 +0800
Change: 2014-09-08 21:12:34.094994871 +0800
[root@wqj-pc a]#
这里的blocks=8,应该是按照blockSize=512 来计算的
2.在a目录下新建一个文件file
[root@wqj-pc a]# ll
总用量 0
-rw-r--r--. 1 root root 0 9月 8 21:17 file <--文件为空,没有分配空间
[root@wqj-pc a]# stat file
File: "file"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:17:19.250004408 +0800
Modify: 2014-09-08 21:17:19.250004408 +0800
Change: 2014-09-08 21:17:19.250004408 +0800
[root@wqj-pc a]#
3向文件写入一个字母
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=1 count=1
记录了1+0 的读入
记录了1+0 的写出
1字节(1 B)已复制,0.000194625 秒,5.1 kB/秒
[root@wqj-pc a]# ll
总用量 4 <--目录中文件占用磁盘文件空间为4k
-rw-r--r--. 1 root root 1 9月 8 21:34 file
[root@wqj-pc a]# stat file
File: "file"
Size: 1 Blocks: 8 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:33:37.360998812 +0800
Modify: 2014-09-08 21:34:09.183999027 +0800
Change: 2014-09-08 21:34:09.183999027 +0800
[root@wqj-pc a]#
文件实际大小为1B,实际分配空间为8blocks(???)
4.向文件中写入4095个字符
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=4095 count=1
记录了1+0 的读入
记录了1+0 的写出
4095字节(4.1 kB)已复制,0.00023078 秒,17.7 MB/秒
[root@wqj-pc a]# ll
总用量 4 <--目录中文件占用磁盘文件空间为4k
-rw-r--r--. 1 root root 4095 9月 8 21:22 file
[root@wqj-pc a]# stat file
File: "file"
Size: 4095 Blocks: 8 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:19:00.327004441 +0800
Modify: 2014-09-08 21:22:44.025009619 +0800
Change: 2014-09-08 21:22:44.025009619 +0800
[root@wqj-pc a]#
文件实际大小为4095B,实际分配空间为8blocks(???)
5。向文件中写入4096个字符
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=4096 count=1
记录了1+0 的读入
记录了1+0 的写出
4096字节(4.1 kB)已复制,0.000166902 秒,24.5 MB/秒
[root@wqj-pc a]# ll
总用量 4 <--目录中文件占用磁盘文件空间为4k
-rw-r--r--. 1 root root 4096 9月 8 21:23 file
[root@wqj-pc a]# stat file
File: "file"
Size: 4096 Blocks: 8 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:19:00.327004441 +0800
Modify: 2014-09-08 21:23:46.621008028 +0800
Change: 2014-09-08 21:23:46.621008028 +0800
[root@wqj-pc a]#
文件实际大小为4096B,实际分配空间为8blocks(???)
6.想文件中写入4097个字符
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=4097 count=1
记录了1+0 的读入
记录了1+0 的写出
4097字节(4.1 kB)已复制,0.000319839 秒,12.8 MB/秒
[root@wqj-pc a]# ll
总用量 8 <--目录中文件占用磁盘文件空间为8k
-rw-r--r--. 1 root root 4097 9月 8 21:24 file
[root@wqj-pc a]# stat file
File: "file"
Size: 4097 Blocks: 16 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:19:00.327004441 +0800
Modify: 2014-09-08 21:24:33.548004283 +0800
Change: 2014-09-08 21:24:33.548004283 +0800
[root@wqj-pc a]#
文件实际大小为4097B,实际分配空间为16blocks(???)
7.向文件中写入1024*4*2-1=8191个字符
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=8191 count=1
记录了1+0 的读入
记录了1+0 的写出
8191字节(8.2 kB)已复制,0.00019196 秒,42.7 MB/秒
[root@wqj-pc a]# ll
总用量 8 <--目录中文件占用磁盘文件空间为8k
-rw-r--r--. 1 root root 8191 9月 8 21:54 file
[root@wqj-pc a]# stat file
File: "file"
Size: 8191 Blocks: 16 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:33:37.360998812 +0800
Modify: 2014-09-08 21:54:23.152997510 +0800
Change: 2014-09-08 21:54:23.152997510 +0800
[root@wqj-pc a]#
文件实际大小为8191B,实际分配空间为16blocks(???)
8.向文件中写入1024*4*2=8192个字符
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=8192 count=1
记录了1+0 的读入
记录了1+0 的写出
8192字节(8.2 kB)已复制,0.000289364 秒,28.3 MB/秒
[root@wqj-pc a]# ll
总用量 8 <--目录中文件占用磁盘文件空间为8k
-rw-r--r--. 1 root root 8192 9月 8 21:55 file
[root@wqj-pc a]# stat file
File: "file"
Size: 8192 Blocks: 16 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:33:37.360998812 +0800
Modify: 2014-09-08 21:55:07.207994349 +0800
Change: 2014-09-08 21:55:07.207994349 +0800
[root@wqj-pc a]#
文件实际大小为8192B,实际分配空间为16blocks(???)
9.向文件写入1024*4*2+1=8193个字符
[root@wqj-pc a]# dd if=/dev/zero of=./file bs=8193 count=1
记录了1+0 的读入
记录了1+0 的写出
8193字节(8.2 kB)已复制,0.000344005 秒,23.8 MB/秒
[root@wqj-pc a]# ll
总用量 12 <--目录中文件占用磁盘文件空间为8k
-rw-r--r--. 1 root root 8193 9月 8 21:56 file
[root@wqj-pc a]# stat file
File: "file"
Size: 8193 Blocks: 24 IO Block: 4096 普通文件
Device: 802h/2050d Inode: 487 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-09-08 21:33:37.360998812 +0800
Modify: 2014-09-08 21:56:24.473997824 +0800
Change: 2014-09-08 21:56:24.473997824 +0800
[root@wqj-pc a]#
文件实际大小为8193B,实际分配空间为24blocks(???)
总结:
1.空文件不占用磁盘的数据block,应该占用目录文件的一些空间(保持该空文件的元数据)和inode记录
2.系统分配磁盘空间,每次分配4k=1024*4。
3.ll中total显示的是文件所占用的数据block空间,并不是文件实际大小。
4.stat中blocks列出的数量是按照blockSize=512来计算的,即文件所占用的扇区数量。
每次分配的空间数量 是什么决定的,是否可改?和IO-block有关吗?
原文地址:http://gulingzi.blog.51cto.com/2208376/1550371