最近在用tcp/ip协议传输文件的时候,发现大多把文件分成4096大小的包或者是它的整数倍,也就是设置buffsize为4096,作用是可以减少System CPU time。这里进行一下解释。
首先解释一下什么是“磁盘块”。要明确以下:
1、我们知道操作系统与磁盘之间交流的最小单位就是磁盘块,它是一个虚拟的概念。是对于操作系统(软件)来说有意义的概念。
2、磁盘进行读写的最小单位是扇区,而扇区是真实存在的。是硬件部分,是一块真实存在的物理区域。
由于我们经常接触的是软件部分,而不是硬件部分,所以提的多的是磁盘块。而不是扇区。
3、磁盘块的大小:块=扇区×2^n。因为磁盘进行读写的基本单位是扇区,而操作系统与磁盘之间是块,所以系统想进行读写,最节省的方式就是扇区的整数倍。
如何查看自己电脑的磁盘块大小呢?一般都为4096
我们可以通过tune2fs命令进行查看。tune2fs调整和查看ext2/ext3文件系统的文件系统参数。具体命令可以运行:
tune2fs help查询。具体步骤如下:
1、终端内输入df查看档案系统最大空间和使用情况
2、tune2fs -l /dev/sda2|grep Block
可以看到磁盘块大小为4096