<?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 'virtualization' and 'Memory speed'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=virtualization,Memory+speed&amp;orTags=0</link><description>Search results matching tags 'virtualization' and 'Memory speed'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Performance impact: memory effectiveness of virtualization</title><link>http://sqlblog.com/blogs/linchi_shea/archive/2009/07/29/performance-impact-memory-effectiveness-of-virtualization.aspx</link><pubDate>Wed, 29 Jul 2009 20:20:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:15593</guid><dc:creator>Linchi Shea</dc:creator><description>&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;One of the key performance metrics on any computer system is its memory speed (or memory bandwidth).&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;Memory speed can be measured in many different ways at different levels. At the OS level, one way to measure memory speed is to clock how fast (in terms of megabytes/gigabytes per second) it can read a piece of data from a memory location to a register, how fast it read the data from a register to a memory location, and how fast it can copy the data from one memory location to another. On a multi-processor machine, there is a difference between measuring memory speed on a single processor and measuring memory speed on multiple processors.&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;When it comes to virtualization, one may want to compare the memory speed without virtualization and the memory speed on a virtual machine. Since in an OS built on a virtual machine the translation of the operations into the operations in the underlying physical machine intuitively involves more work than it does in an OS directly built on top of the physical machine, one would expect the memory speed to be slower with virtualization. &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 by how much? That is where memory effectiveness measure comes in. Let’s assume that in an OS without virtualization, you clock the uniprocessor memory read at 2.3GB/sec. You then create a virtual machine on the same hardware and install the same OS. You clock the uniprocessor memory speed again, and this time it’s 1.9GB/sec. In this case, you can state that the virtualized memory reads are ~83% effective.&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;Well, I didn’t actually make up this 83% memory effectiveness figure. It was obtained from some tests I ran around the end of 2007. The following chart shows the test results on uniprocessor memory reads and memory writes. So in this case, virtualization did slow memory access down somewhat. &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;I’d expect the memory effectiveness number to have improved with the advances in virtualization. But I have not re-run the test lately, so don’t have data to confirm. If you have some&amp;nbsp;current numbers, I'd be interested in hearing them.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;&lt;/FONT&gt;&amp;nbsp; &lt;IMG src="http://sqlblog.com/blogs/linchi_shea/attachment/15593.ashx"&gt; &lt;/P&gt;&lt;FONT face="Times New Roman" size=3&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;Sorry, I can’t identify the platform. In any event, it’s not necessary to identify the platform as the test results are too old to be of any current relevance. What I want to convey in this post is the methodology and what you may want to measure.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;So how do you actually measure memory speed? One of the well-known memory benchmark is called &lt;A href="http://www.cs.virginia.edu/stream/"&gt;&lt;FONT color=#606420&gt;STREAM&lt;/FONT&gt;&lt;/A&gt; maintained by a professor (John D. McCalpin) at the computer science department of University of Virginia.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;I have been using a tool called &lt;A href="http://research.microsoft.com/en-us/um/siliconvalley/projects/sequentialio/memspeed.zip"&gt;memspeed&lt;/A&gt; written by Jim Gray, and found it to be convenient at least for comparison purposes, as long as you use it consistently.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;I’ll follow up with another post on what other tests I run to measure the performance impact of virtualization when it comes to running SQL Server.&lt;/P&gt;&lt;/FONT&gt;
&lt;P class=MsoNormal style="MARGIN:0in 0in 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>