{"id":861,"date":"2009-05-13T16:29:00","date_gmt":"2009-05-13T16:29:00","guid":{"rendered":"\/blogs\/paul\/post\/Are-your-disk-partition-offsets-RAID-stripe-sizes-and-NTFS-allocation-units-set-correctly.aspx"},"modified":"2017-04-13T09:51:44","modified_gmt":"2017-04-13T16:51:44","slug":"are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/","title":{"rendered":"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly?"},"content":{"rendered":"<p>\n<font face=\"verdana,geneva\" size=\"2\">I&#39;ve just been setting up some of our new hardware, and wanted to do some background reading to ensure I use the correct disk partition offset, RAID stripe size, and NTFS allocation unit size to enable the best possible performance for the volumes I&#39;m creating. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">You may not of heard about this (or your disk admins may not have heard about this) but on Windows Server 2003 and before, the default partition offset typically causes worse-than-optimal performance &#8211; and correcting it can get gains of maybe as high as 30% in terms of IO latency and duration. The SQLCAT team have just published a *fantastic* whitepaper (written by <\/font><a href=\"http:\/\/blogs.msdn.com\/b\/jimmymay\/\"><font face=\"verdana,geneva\" size=\"2\">Jimmy May<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> and <\/font><a href=\"http:\/\/blogs.msdn.com\/b\/sqlcat\/\"><font face=\"verdana,geneva\" size=\"2\">Denny Lee<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">) which explains the issue simply and clearly and shows you how to correct it. You should checkout the whitepaper at <\/font><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/dd758814.aspx\"><font face=\"verdana,geneva\" size=\"2\">Disk Partition Alignment Best Practices for SQL Server<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">.<\/font>\n<\/p>\n<p>\n<font size=\"2\">The summary is that on Windows Server 2003 and before, the default partition offset is 31.5KB (63 x 512byte disk sectors), which does not align nicely with the common RAID stripe sizes of 64K or 128K, or the optimal NTFS allocation unit size of 64KB. This can lead to having to read\/write multiple stripes every so often and a big perf drop. It can be fixed, as detailed in the whitepaper. For volumes *created* on Windows Server 2008, the problem does not exist as it creates a default partition offset of 1024KB &#8211; although see the edit below&#8230;<\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">In fact Jimmy just published a blog post to help you make the case to your disk admins\/customers a few days ago: <\/font><a id=\"bp___v___r___postlist___EntryItems_ctl01_PostTitle\" href=\"http:\/\/blogs.msdn.com\/b\/jimmymay\/archive\/2009\/05\/08\/disk-partition-alignment-sector-alignment-make-the-case-with-this-template.aspx\"><font face=\"verdana,geneva\" size=\"2\">Disk Partition Alignment (Sector Alignment): Make the Case: Save Hundreds of Thousands of Dollars<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Luckily I&#39;m using Windows Server 2008, which correctly sets the disk partition for the vast majority of cases. <\/font>\n<\/p>\n<p>\n<font size=\"2\">[Edit 06\/30\/2011: Beware! Even with Windows Server 2008, it&#39;s been reported that some I\/O subsystem vendors intercept what Windows is trying to do and *still* create partitions with the incorrect offset. Create them and then check &#8211; just to be sure.]<\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Next thing I considered was RAID stripe size and NTFS allocation unit size (previously known as &#39;cluster size&#39;). <\/font><a href=\"http:\/\/www.kendalvandyke.com\/\"><font face=\"verdana,geneva\" size=\"2\">Kendal Van Dyke<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> just published an *excellent* blog post series that provides a lot of empirical evidence as to what the best numbers are for the RAID level you&#39;re using. This saved me a lot of time. Check out his series at <\/font><a href=\"http:\/\/www.kendalvandyke.com\/2009\/02\/disk-performance-hands-on-series.html\"><font face=\"verdana,geneva\" size=\"2\">Disk Performance Hands On Series<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">.<\/font>\n<\/p>\n<p>\n<font size=\"2\">The Dell MD3000i units I&#39;m using don&#39;t go any lower than 128KB for a RAID stripe size, so the default is fine. Unfortunately, I forgot to set the NTFS allocation unit size to 64KB when creating the partitions in Windows, so I need to recreate the partitions.<\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">A massive thank-you to these guys for saving me a lot of time and hassle. You should go read this stuff too. <\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#39;ve just been setting up some of our new hardware, and wanted to do some background reading to ensure I use the correct disk partition offset, RAID stripe size, and NTFS allocation unit size to enable the best possible performance for the volumes I&#39;m creating. You may not of heard about this (or your disk [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,53,66,104],"tags":[],"class_list":["post-861","post","type-post","status-publish","format-standard","hentry","category-hardware","category-io-subsystems","category-performance-tuning","category-whitepapers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly? - Paul S. Randal<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly? - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"I&#039;ve just been setting up some of our new hardware, and wanted to do some background reading to ensure I use the correct disk partition offset, RAID stripe size, and NTFS allocation unit size to enable the best possible performance for the volumes I&#039;m creating. You may not of heard about this (or your disk [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2009-05-13T16:29:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-13T16:51:44+00:00\" \/>\n<meta name=\"author\" content=\"Paul Randal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Randal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/\",\"name\":\"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly? - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"datePublished\":\"2009-05-13T16:29:00+00:00\",\"dateModified\":\"2017-04-13T16:51:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\",\"name\":\"Paul S. Randal\",\"description\":\"In Recovery...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\",\"name\":\"Paul Randal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"caption\":\"Paul Randal\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/paul\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly? - Paul S. Randal","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/","og_locale":"en_US","og_type":"article","og_title":"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly? - Paul S. Randal","og_description":"I&#39;ve just been setting up some of our new hardware, and wanted to do some background reading to ensure I use the correct disk partition offset, RAID stripe size, and NTFS allocation unit size to enable the best possible performance for the volumes I&#39;m creating. You may not of heard about this (or your disk [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/","og_site_name":"Paul S. Randal","article_published_time":"2009-05-13T16:29:00+00:00","article_modified_time":"2017-04-13T16:51:44+00:00","author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/","name":"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly? - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"datePublished":"2009-05-13T16:29:00+00:00","dateModified":"2017-04-13T16:51:44+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/are-your-disk-partition-offsets-raid-stripe-sizes-and-ntfs-allocation-units-set-correctly\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"Are your disk partition offsets, RAID stripe sizes, and NTFS allocation units set correctly?"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/","name":"Paul S. Randal","description":"In Recovery...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce","name":"Paul Randal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","caption":"Paul Randal"},"sameAs":["http:\/\/3.209.169.194\/blogs\/paul"],"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/comments?post=861"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/861\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}