×
您的位置: 首页 > 编程笔记

阿里云磁盘4K对齐与不对齐的区别

阿里云 时间:2015-07-23  查看:1212   收藏

并非只有SSD硬盘才需要对齐4K,昨晚给自己的一台阿里云服务器搞了次运行环境大升级,顺便将数据盘格式化并对齐4K,磁盘性能得到了很大的提升了。

先讲一下什么是叫做“4K 对齐”,其实“4K对齐”是一个叫做“高级格式化”的分区技术。“高级格式化”是国际硬盘设备与材料协会为新型数据结构格式所采用的名称,一般来说,2011年之后出厂的硬盘,基本都是支持高级格式的,阿里云的硬盘当然也是支持的啦~ 那么如果有“4K 对齐”一说必然就有“4K 对不齐”。为什么会有“4K”对不齐呢?这是因为在NTFS6.x 以前的规范中,数据的起始写入点正好会介于在两个4K 扇区的中间,也就是说即使是写入最小量的数据(最小量的数据为4K),也会使用到两个4K扇区,显然这样对写入速度和读取速度都会造成很大的影响。为此对于“4K不对齐”的情况来说,一定要修改成“4K 对齐”才行,否则会极大的降低数据写入和读取速度。

4K对齐方法可以直接参考阿里云帮助里的教程

http://help.aliyun.com/manual?spm=0.0.0.0.P3u6tg&helpId=1804

其中Linux系统的自动分区脚本(auto_fdisk.sh)可以直接帮助你将整块数据磁盘4K对齐并挂载到/alidata目录,当然你可以自己修改脚本中需要挂载目录。
如果你的数据盘比较大,想要分多个区而且要4K对齐,可以手动分区,比如:
224 heads (32*7)
56 sectors per track (8*7)
这样每个柱面包含12544个扇区(256*49),每个磁道使用56个扇区,大小为56*512字节,即每磁道28762字节,这和每柱面4KB的7个块是一样的,因此每柱面4KB页面的数量是一个整数,这样任何分区都是协调一致的。

我们可以使用这条命令来实现对齐4K:
# fdisk -H 224 -S 56 /dev/xvdb
剩下的操作步骤参考:

http://help.aliyun.com/manual?spm=0.0.0.0.VGXC0w&helpId=271

我们可以在对齐4K前后通过dd命令来对比磁盘读/写速度
# dd if=/dev/zero of=bigfile bs=1M count=500

看看我的测试结果吧,效果非常明显:

4K没对齐平均读写速度
阿里云磁盘4K对齐

4K对齐平均读写速度
阿里云硬盘4K对齐

linux查看硬盘4K对齐方法:
使用 fdisk -lu 命令
如上两张图start开始的扇区能被8整除,就表示4k对齐了;反之则表示4K没对齐。

 

0% (0)
0% (0)