免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1954 | 回复: 3
打印 上一主题 下一主题

关于Block size的疑惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-12 09:56 |只看该作者 |倒序浏览
[howard@redhat etc]$ stat passwd
  File: ‘passwd’
  Size: 2098            Blocks: 16         IO Block: 4096   一般文件
Device: fd00h/64768d    Inode: 344844      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-07-29 05:02:20.000000000 +0800
Modify: 2008-07-28 14:02:30.000000000 +0800
Change: 2008-07-28 14:02:30.000000000 +0800
上面的信息是指文件passwd的大小为2098字节,占用16个Block,每个Block的大小为4096?
那么passwd占用的空间为:16*4096=64k
但是实际上,passwd占用的空间为:8k
[howard@redhat etc]$ du -sh passwd
8.0K    passwd
从占用空间为8k,即可反推出passwd文件Block大小为512字节,这点从下面的命令可以得到印证:
[howard@redhat etc]$ stat -c %B passwd
512
[howard@redhat etc]$ stat -c %b passwd
16
但是我的文件系统默认的Block size为:4096字节,Inode:Block=1:2
[howard@redhat etc]$ sudo /sbin/tune2fs -l /dev/mapper/VolGroup00-LogVol00|grep "Block size"
Block size:               4096
[howard@redhat etc]$ sudo /sbin/tune2fs -l /dev/mapper/VolGroup00-LogVol00|grep "count"     
Inode count:              2473984
Block count:              4939776
Reserved block count:     246988
还有df中的Block大小为1k
[howard@redhat etc]$ df
Filesystem             1K-块        已用     可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                      19448516  12242336   6218228  67% /
/dev/sda1               101086     34513     61354  37% /boot
none                    257200         0    257200   0% /dev/shm
[howard@redhat etc]$ ls -sil passwd
344844 8 -rw-r--r--  1 root root 2098  7月 28 14:02 passwd
上面第二列数字8表示Block个数,那么Block size就是1k
现在我想问的是:linux中不同的命令,它们的Block size都不一样?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2008-08-12 10:54 |只看该作者
IO Block: 4096  指的是文件系统IO块的大小,就是stat系统函数返回stat结构中的st_blksize

stat -c %b中的%b就是以块/512字节为单位的数量,stat系统函数返回stat结构中的 st_blocks

stat -c %B就是个固定值512

man stat
man 2 stat

论坛徽章:
0
3 [报告]
发表于 2008-08-12 11:07 |只看该作者
谢谢你的回复!我也曾经man stat,知道了%B和%b的意思,只不过不知道,你所说的对应stat结构中的那个函数.
但是现在我想问的是:linux中不同的命令,它们的Block size都不一样?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
4 [报告]
发表于 2008-08-12 11:19 |只看该作者
block是个相对的单位,和IO BLOCK中的BLOCK不是一码事


  1. 给来块儿豆腐
  2. 1块钱
  3. 靠!为什么别人都卖5毛一块啊?
  4. 让你靠,这儿的豆腐一块儿半斤,他们的都是二两一块儿
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP