<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Best Practices', 'Performance', and 'Disk I/O'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Best+Practices,Performance,Disk+I%2FO&amp;orTags=0</link><description>Search results matching tags 'Best Practices', 'Performance', and 'Disk I/O'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Disk I/O: Microsoft SQL Server on SAN Best Practices from SQL CAT's Mike Ruthruff (&amp;amp;amp; Prem Mehra)</title><link>http://sqlblog.com/blogs/jimmy_may/archive/2009/03/01/disk-i-o-microsoft-sql-server-on-san-best-practices-from-sql-cat-s-mike-ruthruff-amp-prem-mehra.aspx</link><pubDate>Sun, 01 Mar 2009 18:44:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:27862</guid><dc:creator>aspiringgeek</dc:creator><description>&lt;p&gt;While at the &lt;a target="_blank" href="http://sqlpass.org"&gt;PASS&lt;/a&gt; &lt;a target="_blank" href="http://www.sqlpass.org/Events/PASSCommunitySummit.aspx"&gt;Community Summit&lt;/a&gt; in November 2008, I had the pleasure of attending a handful of excellent presentations.&amp;nbsp; One of the best was delivered by Mike Ruthruff (&amp;amp; not just because he shilled for &lt;a target="_blank" href="http://blogs.msdn.com/jimmymay/archive/2008/11/25/disk-partition-alignment-sector-alignment-for-sql-server-part-3-pass-2008.aspx"&gt;my presentation&lt;/a&gt; on &lt;a target="_blank" href="http://blogs.msdn.com/jimmymay/archive/2008/10/14/disk-partition-alignment-for-sql-server-slide-deck.aspx"&gt;disk partition alignment&lt;/a&gt; later that day&amp;mdash;though I suspect he contributed to my session being SRO).&lt;/p&gt;
&lt;p&gt;Mike is a member of the SQL Server Customer Advisory Team (&lt;a target="_blank" href="http://www.sqlcat.com"&gt;SQL&lt;/a&gt; &lt;a target="_blank" href="http://blogs.msdn.com/sqlcat"&gt;CAT&lt;/a&gt;).&amp;nbsp; He authored the deck with contributions from SQL CAT patriarch Prem Mehra.&lt;/p&gt;
&lt;p&gt;Most of you probably know Mike because he is the primary author of the landmark white paper we all know-&amp;amp;-love &amp;amp; have read over-&amp;amp;-over again because we know how unbelievably valuable it is:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;SQL Server Predeployment I/O Best Practices&lt;/em&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx" title="http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx"&gt;http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mike&amp;nbsp;provided&amp;nbsp;a copy of his latest-&amp;amp;-greatest deck for publication here:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;em&gt;&lt;a target="_parent" href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-09-45-27-65/Mike_5F00_Ruthruff_5F00_SQLServer_5F00_on_5F00_SAN_5F00_SQLCAT.zip"&gt;Microsoft SQL Server on SAN Best Practices&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The deck includes the following: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Characteristics of SQL Server I/O operations&lt;/li&gt;
&lt;li&gt;Best practices
&lt;ul&gt;
&lt;li&gt;SQL Server Design Practices &lt;/li&gt;
&lt;li&gt;Storage Configuration &lt;/li&gt;
&lt;li&gt;Common Pitfalls&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Monitoring performance of SQL Server on SAN&lt;/li&gt;
&lt;li&gt;Emerging Storage Technologies&lt;/li&gt;
&lt;li&gt;Additional Material In Appendix Section (not covered during session)
&lt;ul&gt;
&lt;li&gt;How to validate a configuration using I/O load generation tools &lt;/li&gt;
&lt;li&gt;General SQL Server I/O characteristics &lt;/li&gt;
&lt;li&gt;How to diagnose I/O bottlenecks&amp;nbsp; &lt;/li&gt;
&lt;li&gt;Sample Configurations &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think you'll enjoy this presentation&amp;mdash;one of the best, perhaps &lt;em&gt;the&lt;/em&gt; best of its kind ever assembled.&amp;nbsp; &lt;em&gt;&amp;iexcl;Yo!&lt;/em&gt;&amp;nbsp; Only first-rate decks on this blog.&amp;nbsp; Besides which, SQL CAT does nothing but the best.&amp;nbsp; Get ready to be wowed by 50 slides of geekly goodness.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Administrivia&lt;/strong&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Jimmy May, MCM&lt;br /&gt;SQL CAT Sr. Program Manager&lt;br /&gt;SQL Server Customer Advisory Team, Business Platform Division&lt;br /&gt;317.590.8650&lt;br /&gt;&lt;a href="http://sqlblog.com/jimmymay"&gt;http://blogs.msdn.com/jimmymay&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Microsoft: Change the world or go home.&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Performance impact: file fragmentation and SAN – Part IV</title><link>http://sqlblog.com/blogs/linchi_shea/archive/2008/12/22/performance-impact-file-fragmentation-and-san-part-iv.aspx</link><pubDate>Mon, 22 Dec 2008 16:34:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:10688</guid><dc:creator>Linchi Shea</dc:creator><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;B style="mso-bidi-font-weight:normal;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;Lies, damned lies, and statistics!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;If you have read my three previous posts (&lt;/FONT&gt;&lt;A href="http://sqlblog.com/blogs/linchi_shea/archive/2008/12/07/performance-impact-file-fragmentation-and-san.aspx"&gt;&lt;FONT face="Times New Roman" color=#606420 size=3&gt;1&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;, &lt;/FONT&gt;&lt;A href="http://sqlblog.com/blogs/linchi_shea/archive/2008/12/08/performance-impact-file-fragmentation-and-san-part-ii.aspx"&gt;&lt;FONT face="Times New Roman" color=#606420 size=3&gt;2&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;, &lt;/FONT&gt;&lt;A href="http://sqlblog.com/blogs/linchi_shea/archive/2008/12/10/performance-impact-file-fragmentation-and-san-part-iii.aspx"&gt;&lt;FONT face="Times New Roman" color=#606420 size=3&gt;3&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;), you may walk away with an impression that on a drive presented from a high-end enterprise class disk array, Windows file fragmentation does not have a significant performance impact. And I’ve given you empirical data—oh yeah, statistics—to support that impression. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;But that is not the whole story! No, I didn’t lie to you. The numbers I presented were solid. It’s just that the story is not yet finished. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;In these previous posts on the performance impact of file fragmentation, I presented the I/O throughput data as the evidence. The arguments were valid, especially we did see file fragmentation causing the I/O throughput to degrade in a directly attached storage. But I/O throughput is but one I/O performance metric, and it is not enough to look at the I/O throughput alone.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Let me start with an analogy. So suppose we have an eight-lane super highway going from New York City to Los Angles. As we pumping (okay, driving) more cars from NYC to LA, we take measure at a checkpoint in LA to find out how many cars are crossing that checkpoint every hour, i.e. we are measuring the throughput of the super highway. Now, instead of building the eight-lane super highway straight from NYC to LA, we have it take a detour via Boston. At that same checkpoint in LA, we again measure the throughput. Everything else being equal, we should get the same throughput. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;However, for a given car, the trip from NYC to LA would take a lot longer on this detoured highway. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;An I/O path is similar to a super highway. While its throughput is an important measure, how long it takes for an I/O request to complete—I/O latency or response time—is also an important measure. The question is, will file fragmentation take your I/O traffic for a detour?&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Indeed, empirical test data show that when a file is severely fragmented, the maximum I/O latency of large sequential reads and writes (e.g. 256KB reads and writes) can suffer significantly. The following chart shows the impact of file fragmentation on the maximum I/O latency. The data were obtained from the same tests whose throughputs were reported in &lt;/FONT&gt;&lt;A href="http://sqlblog.com/blogs/linchi_shea/archive/2008/12/10/performance-impact-file-fragmentation-and-san-part-iii.aspx"&gt;&lt;FONT face="Times New Roman" color=#606420 size=3&gt;Part III&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt; of this series of posts.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://sqlblog.com/blogs/linchi_shea/attachment/10688.ashx"&gt; &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Clearly, when the test file was fragmented into numerous 128KB disconnected pieces, some of the 256KB reads suffered terribly latency degradation. And if your applications happen to be issuing these I/Os, you would most likely experience a performance degradation regardless whether the I/O path can maintain the same I/O throughput.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Having some valid statistics may seem to add force to an argument, which makes it so much easier to be misleading if the whole story is not told, and technically everything is valid, and nobody is lying. By the way, this is a trick often employed by the vendors, who tend to conveniently ignore the bad news, or intentionally bury it with statistics on the good news. In my book, that would be lies, damned lies, and statistics.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>