免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: havent2013
打印 上一主题 下一主题

[文件目录] 关于文件大小计算的问题,请大神帮忙看看解答,谢谢 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-06-26 21:16 |只看该作者
回复 5# wenhq


[root@localhost tmp]# /sbin/tune2fs -l /dev/sda1|grep -i block
Block count:              104388
Reserved block count:     5219
Free blocks:              87387
First block:              1
Block size:               1024
Reserved GDT blocks:      256
Blocks per group:         8192
Inode blocks per group:   251
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
Journal backup:           inode blocks

论坛徽章:
0
12 [报告]
发表于 2013-06-26 21:17 |只看该作者
回复 5# wenhq


    block的大小是1024字节即1KB?这样理解对吗?

论坛徽章:
0
13 [报告]
发表于 2013-06-26 21:23 |只看该作者
回复 7# cao627

用你说的方式看block size是8K

用另一位的方式看block size应该是1K
如下:
[root@localhost tmp]# /sbin/tune2fs -l /dev/sda1|grep -i block
Block count:              104388
Reserved block count:     5219
Free blocks:              87387
First block:              1
Block size:               1024
Reserved GDT blocks:      256
Blocks per group:         8192
Inode blocks per group:   251
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
Journal backup:           inode blocks


但是无论是1K还是8K,都无法解释我的问题中描述的情况。
   

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
14 [报告]
发表于 2013-06-27 08:46 |只看该作者
@havent2013你的命令看的是sda1这个分区的block大小。你mkdir的目录不在sda1这个分区上。

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每月发帖之星
日期:2015-09-11 19:30:52IT运维版块每周发帖之星
日期:2015-09-11 19:20:31IT运维版块每日发帖之星
日期:2015-08-26 06:20:00每日论坛发贴之星
日期:2015-08-20 06:20:00IT运维版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15金牛座
日期:2014-05-04 16:58:09双子座
日期:2013-12-17 16:44:37辰龙
日期:2013-11-22 15:20:59狮子座
日期:2013-11-18 22:55:08射手座
日期:2013-11-12 10:54:26
15 [报告]
发表于 2013-06-27 08:49 |只看该作者
回复 12# havent2013


    是啊。。。

论坛徽章:
0
16 [报告]
发表于 2013-06-27 10:55 |只看该作者
用stat可以看

Size: 1073741824(size/512约等于2097160 )      Blocks: 2097160  (代表多少个物理块 一个物理块是一个扇区512k)  IO Block: 4096 (逻辑块)

论坛徽章:
0
17 [报告]
发表于 2013-06-27 13:29 |只看该作者
回复 16# rucypli


    我的stat执行结果如下:
[root@localhost study]# /usr/bin/stat tempfile
  File: `tempfile'
  Size: 51              Blocks: 16         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 100300      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-06-25 21:45:13.000000000 +0800
Modify: 2013-06-25 21:45:13.000000000 +0800
Change: 2013-06-25 21:45:25.000000000 +0800

IO Block是 block size吗?

我的某个目录的ls -l执行结果如下:
[root@localhost size]# ll
total 0
[root@localhost size]# touch aaa.txt
[root@localhost size]# ll
total 4
-rw-r--r-- 1 root root 0 Jun 27 21:27 aaa.txt
[root@localhost size]# /usr/bin/stat aaa.txt
  File: `aaa.txt'
  Size: 0               Blocks: 8          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 100302      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-06-27 21:27:30.000000000 +0800
Modify: 2013-06-27 21:27:30.000000000 +0800
Change: 2013-06-27 21:27:30.000000000 +0800
[root@localhost size]# mkdir temp
[root@localhost size]# ll
total 12
-rw-r--r-- 1 root root    0 Jun 27 21:27 aaa.txt
drwxr-xr-x 2 root root 4096 Jun 27 21:27 temp
[root@localhost size]# stat temp
  File: `temp'
  Size: 4096            Blocks: 16         IO Block: 4096   directory
Device: fd00h/64768d    Inode: 100303      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-06-27 21:27:59.000000000 +0800
Modify: 2013-06-27 21:27:59.000000000 +0800
Change: 2013-06-27 21:27:59.000000000 +0800

上面的情况该如何解释呢?

论坛徽章:
0
18 [报告]
发表于 2013-06-27 15:29 |只看该作者
IO Block是逻辑块大小 物理块大小是扇区512K
Blocks代表这个文件占用了多少扇区,当然应为你不知道数据的分布   所以一个很小的文件可能占用很多扇区

论坛徽章:
0
19 [报告]
发表于 2013-06-27 18:23 |只看该作者
回复 18# rucypli


    我想我可能描述得不够清楚。
我的意思是我在看了这篇http://bbs.chinaunix.net/thread-434579-1-1.html
之后,按照文中介绍的方法验证一下我的某个目录下的文件的计算结果。
就好比这里的例子:

[root@localhost size]# ll
total 0
[root@localhost size]# touch aaa.txt
[root@localhost size]# ll
total 4
-rw-r--r-- 1 root root 0 Jun 27 21:27 aaa.txt
[root@localhost size]# /usr/bin/stat aaa.txt
  File: `aaa.txt'
  Size: 0               Blocks: 8          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 100302      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-06-27 21:27:30.000000000 +0800
Modify: 2013-06-27 21:27:30.000000000 +0800
Change: 2013-06-27 21:27:30.000000000 +0800
[root@localhost size]# mkdir temp
[root@localhost size]# ll
total 12
-rw-r--r-- 1 root root    0 Jun 27 21:27 aaa.txt
drwxr-xr-x 2 root root 4096 Jun 27 21:27 temp
[root@localhost size]# stat temp
  File: `temp'
  Size: 4096            Blocks: 16         IO Block: 4096   directory
Device: fd00h/64768d    Inode: 100303      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2013-06-27 21:27:59.000000000 +0800
Modify: 2013-06-27 21:27:59.000000000 +0800
Change: 2013-06-27 21:27:59.000000000 +0800

红色的部分按照那篇文档的说明是ls -l列出的文件占用磁盘空间大小之和。
刚开始的时候,我进入size目录,因为该目录空,所以total 0——这个我可以理解,
但后来,我执行touch,创建了一个空文件aaa.txt,这时我再执行ls -l,结果total 4
再后来,我执行mkdir创建了一个空目录temp,执行ls -l的结果total 12
我不理解的是按照链接http://bbs.chinaunix.net/thread-434579-1-1.html
介绍的方法这几个total的值根本讲不通的,我不明白这几个total值为何会是上述结果。
关于我之前提到的block簇的大小问题也是因为链接里的文章介绍通过这个簇的大小可以计算total的值,所以我才问的。
可是,最主要的问题是total如何计算出来的。或者链接的文章介绍的计算方法有我没理解或者理解错的地方。

论坛徽章:
0
20 [报告]
发表于 2013-06-28 21:09 |只看该作者
@sunsroad  @wingger  请两位抽空帮我看看呗~~谢了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP