linux中的blocksize指的啥

最近在看vmstat的时候,看到其中一项的单位是blocksize。在这里记录一下。

首先要搞明白啥叫block。在linux中,比如说读写磁盘,都不会一个字节一个字节的读,毕竟效率太低,而是一次读一坨,这一坨的概念就叫做block。

那么Linux中,blocksize到底是多大呢?

其实blocksize要分好多种,取决于不同的场景

磁盘的blocksize

这个是由磁盘本身决定的,也就是不同磁盘可能不一样。一般是512,可以通过dd测试一下:

# dd if=/dev/sda1 of=/dev/null count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 1.8977e-05 s, 27.0 MB/s

文件系统的blocksize

没错,linux在管理文件的时候,比如创建一个文件,文件也是以block为单位管理的,这个是文件的block。

查看文件系统的blocksize:

$ stat -f .
  File: "."
    ID: 84bc409db75bdd32 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 2531650    Free: 1704179    Available: 1570650
Inodes: Total: 647168     Free: 567361

当你创建一个文件,哪怕很小,也最少是一个文件系统的block:

//创建前的block数量(Used字段)
$ df .
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       10126600 3309884   6282600  35% /

//创建一个小文件
$ echo hello>world

//ls查看文件,发现很小,ls显示真实的文件内容大小,而不是磁盘空间
$ ls -l world 
-rw-r--r-- 1 thorsten_staerk_de thorsten_staerk_de 6 Apr  1 06:17 world

//df查看,发现少了4个block
$ df .
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       10126600 3309888   6282596  35% /

//du查看,发现跟ls的不一样,实际上占用了4k的磁盘空间
$ du -sch world
4.0K    world
4.0K    total

内核的blocksize

linux内核也有自己的block,比如在某些缓冲区操作时,以block为单位。比如man vmstat时,会发现这么一句,说明目前的内核,blocksize都是1k

All linux blocks are currently 1024 bytes

也就是说,vmstat中所谓的block大小,就是1k

Ref

  • http://www.linuxintro.org/wiki/Blocks,_block_devices_and_block_sizes


《 “linux中的blocksize指的啥” 》 有 3 条评论

  1. House of Representatives and planned asession with insurance company executives to explain steps theyare taking to quickly resolve problems with Healthcare can i buy cytotec price It may also lessen redness and swelling caused by acne lesions

  2. What food can you take antibiotics with priligy results You see the fact that he has a bra on

  3. can i buy priligy over the counter pravachol switching from celexa to lexapro But Witt, who also benefited from close ties to the Stasi during her career, says there s a big difference between East Germany s paranoid surveillance state and the massive dragnet of electronic communications the United States has apparently been conducting in recent years Гў a program exposed this summer by former intelligence contractor Edward Snowden

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825