什么是磁盘分区对齐(Disk Alignment、Partition Alignment):

Windows的磁盘有一种结构叫做Master Boot Record(MBR), 它的默认大小为63个Block(每个大小为512字节)。它的存在使得磁盘的初始位置和的磁盘上第一个分区的初始位置有63个Block的错位。如果磁盘的单个Track大于63个Block的话。这就会导致默认的初始的位置是从第64个开始。使文件系统的中的Track和位于磁盘中的两个Track之上。这种不对齐现象会导致存储系统的性能下降,原因是单个I/O请求会跨越多个磁盘上的Track,从而导致存储系统的额外性能开销。特别是对于一些随机I/O比较较大的应用程序,影响将更大。

而对于Windows 2003以后支持的GPT Disk,也会存在磁盘分区不对齐的现象,但是结构有所不同。如图1所示(图中单位为Block,512字节),所有的分区由1MB大小(2048 Block)构成,第一个分区从LBA 34开始,即17KB大小位置。这也就意味着所有的分区会有17KB的不对齐的情况发生。同样会导致I/O读写性能影响。

图1

Windows磁盘分区对齐配置:

配置磁盘分区对齐后,如下图所示四个分区的例子中,对比图1中不对称的情况,图2中这些Windows的分区结束地址与图1中的地址位置一致了。

图2

磁盘分区对齐操作,只针对Windows的Basic Disk。对于Windows 2008和Windows 2008 R2,无需对磁盘进行对齐操作,因为这个过程已经在操作系统划分分区的时候自动进行了,软件的升级还是给管理员们带来了不少便利的。对于Windows 2003和 2003 R2,以及Windows 2000,建议设置开始偏移量(starting offset)为64KB(128 block)。另外,对于Dynamic Disk类型,不能进行磁盘分区对齐操作。不过,如果原来的Basic Disk上已经进行了对齐操作的分区,会在转换后保留原来的对齐。

查看Windows磁盘分区对齐方法:

1. 查看Basic Disk的分区对齐信息:

方法1:

在Windows的命令行下输入Diskpart命令。

C:\>diskpart

选择对应的Disk

DISKPART> list disk (显示本机所有磁盘)

DISKPART> Select Disk X (x代表上面显示的从0开始的磁盘编号)

DISKPART> list partition (显示从1开始的所有的分区信息,在最右边有一个Offset/偏移量的值,如果它是8的倍数,说明你的硬盘分区是对齐的,如果不是,说明你的磁盘分区没有对齐)

方法2:

使用WMIC命令,在Windows命令行下输入下列命令,命令输出的列StartingOffset为该分区的偏移量,该数值除以512则为扇区数目:

wmic partition get BlockSize, StartingOffset, Name, Index

2.查看Dynamic Disk的对齐信息:

使用dmdiag工具,下载地址;

执行从命令行执行dmdiag.exe –v

在命令行输出中,LDM Volume区域的RelSec列,该列显示的就是Dynamic Disk的起始扇区。

磁盘分区对齐配置方法:

对于Windows 2003 sp1以下版本,使用dispar命令来设置偏移量和分区对齐。步骤如下:

  1. 安装在Windows Resource Kit后,在Performance Tools目录下,通过命令行运行diskpar命令:

  2. 使用diskpar –s N命令,下面的例子中定义了配置一个20GB的磁盘的错位64KB的配置

对于Windows 2003 sp1以上版本,dispar命令被dispart命令所替换。

  1. 在CMD命令行运行Diskpart命令

    C:\>diskpart

  2. 选择对应的Disk

    DISKPART> Select Disk X

  3. 创建分区设置偏移量为64KB(128 Block),下面的例子为创建一个1GB的分区。

    DISKPART> create partition primary size=1024

最后,进行分区对齐操作的时候需要注意:对齐操作需要在磁盘上写入数据之前完成,最好在磁盘刚刚映射到主机时进行。磁盘对齐操作必然损坏磁盘上的数据,所以如果有数据需先备份,操作的时候注意数据安全。

磁盘对齐-windows篇的更多相关文章

  1. SQL Server 服务器磁盘测试之SQLIO篇

    原文:SQL Server 服务器磁盘测试之SQLIO篇 数据库调优工作中,有一部分是需要排查IO问题的,例如IO的速度或者RAID级别无法响应高并发下的快速请求.最常见的就是查看磁盘每次读写的响应速 ...

  2. Linux中磁盘分区——理论篇

    Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...

  3. Qt全局热键(windows篇)

      Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等.既然Qt可能出于某种原因,不对这些进行支持,我们就只能自己写代码,调用系统相关的API了. 注意,这个 ...

  4. Qt全局热键(windows篇)(使用RegisterHotKey和句柄进行注册)

    转载:http://www.cuteqt.com/blog/?p=2088 Qt对于系统底层,一直没有很好的支持,例如串口并口通信,还有我们经常都会用到的全局热键,等等.既然Qt可能出于某种原因,不对 ...

  5. Node.js安装及环境配置之Windows篇

    Node.js安装及环境配置之Windows篇   一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Node.js:v6.9.2LTS(64位) 二.安装Node.js步骤 1. ...

  6. 版本控制工具Git工具快速入门-Windows篇

    版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...

  7. 从专用磁盘创建 Windows VM

    通过使用 Powershell 将专用托管磁盘附加为 OS 磁盘来创建新 VM. 专用磁盘是保留原始 VM 中的用户帐户.应用程序和其他状态数据的现有 VM 中虚拟硬盘 (VHD) 的副本. 使用专用 ...

  8. C语言-apache mod(模块开发)-采用VS2017开发实战(windows篇)

    C语言-apache mod(模块开发)-采用VS2017开发实战(windows篇) 名词解释:apxs apxs is a tool for building and installing ext ...

  9. Node.js安装及环境配置之Windows篇(转:https://www.cnblogs.com/zhouyu2017/p/6485265.html)

    Node.js安装及环境配置之Windows篇(原文地址:https://www.cnblogs.com/zhouyu2017/p/6485265.html)   一.安装环境 1.本机系统:Wind ...

随机推荐

  1. Atitit。监听键盘上下左右方向键事件java js jquery c#.net

    Atitit.监听键盘上下左右方向键事件java js jquery   c#.net 1. Keyword1 2. 通用的实现流程1 3. Js的实现1 3.1. Bind control ,eve ...

  2. spark-streaming-kafka-0-10源码分析

    转发请注明原创地址http://www.cnblogs.com/dongxiao-yang/p/7767621.html 本文所研究的spark-streaming代码版本为2.3.0-SNAPSHO ...

  3. sendmail发件人邮箱设定命令

    sendmail发件人邮箱设定命令   以前就碰到过设置发件人后缀的方式,这次迁移服务器居然忘记,从头开始记录下 1:第一种方法,修改/etc/hosts,据说sendmail使用hosts里面的本地 ...

  4. gulpfile.js(编译sass,压缩图片,自动刷新浏览器)

    var gulp = require('gulp'),     sass = require('gulp-sass'),     watch = require('gulp-watch'),      ...

  5. hMailServer 附件大小限制

    修改php.ini文件 1.post_max_size = 10M 表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的. 2.file_uploads = ...

  6. eclipse: Program "g++" not found in PATH

    gdb命令行调试虽然还行,但是确实不如图形界面的直观...个人还是不习惯,就开始鼓捣eclipse的c/c++IDE(VS2013安装需要IE10,蛋疼,懒得弄) Build一个C工程的时候报错.我安 ...

  7. Linux HugePage特性

    Linux HugePage特性 HugePage,就是指的大页内存管理方式.与传统的4kb的普通页管理方式相比,HugePage为管理大内存(8GB以上)更为高效.本文描述了什么是HugePage, ...

  8. Keil(MDK-ARM)使用教程(一)_界面+菜单

    Ⅰ.概述 今天总结Keil(MDK-ARM)界面和菜单相关的内容,详情请往下看. 关于Keil的下载.安装和新建工程我已将在前面做了详细的总结,不懂的可以参考我博客里面相关的文章.该文章是在新建好工程 ...

  9. Ubuntu17 root ssh

    Ubuntu provides OpenSSH (OpenBSD Secure Shell) in its universe repositories, which is a suite of sec ...

  10. Android开发教程:shape和selector的结合使用(转载)

    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和 ...