<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tristan Watkins on IT Infrastructure &#187; VMWare Archive</title>
	<atom:link href="http://tristanwatkins.com/index.php/tag/vmware/feed/" rel="self" type="application/rss+xml" />
	<link>http://tristanwatkins.com</link>
	<description>Technical guidance for SharePoint, Cloud Services, Windows and more</description>
	<lastBuildDate>Fri, 21 Oct 2011 23:33:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>SharePoint 2010 Development Environment Performance: SSD, i5 vs. i7, WEI and Sandy Bridge</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-ssd-i5-i7-wei-sandy-bridge/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-2010-development-environment-performance-ssd-i5-i7-wei-sandy-bridge</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-ssd-i5-i7-wei-sandy-bridge/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 00:43:03 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ASUS]]></category>
		<category><![CDATA[Core i5]]></category>
		<category><![CDATA[Core i7]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[Lenovo]]></category>
		<category><![CDATA[Sandy Bridge]]></category>
		<category><![CDATA[SATA]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[WEI]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1927</guid>
		<description><![CDATA[Late last year my colleagues and I tried to distil the tasks that impede SharePoint developer productivity. Then I ran those tests on EC2, Hyper-V and VMware Workstation, with the latter two virtualisation technologies running on a desktop, an older laptop and a newer laptop. In this post I hope to shed a bit of [...]]]></description>
			<content:encoded><![CDATA[<p>Late last year my colleagues and I tried to distil <a title="SharePoint 2010 Development Environment Performance Tests" href="http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-tests/">the tasks that impede SharePoint developer productivity</a>. Then I ran those tests on <a title="SharePoint 2010 Development Environment Performance Test Results" href="http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-test-results/">EC2, Hyper-V and VMware Workstation</a>, with the latter two virtualisation technologies running on a desktop, an older laptop and a newer laptop. In this post I hope to shed a bit of light on some follow-up testing that I&#8217;ve squeezed in to the odd hour here and there over the last six months. Unfortunately hardware availability and my schedule have not aligned to produce a further round of comprehensive tests and since I can&#8217;t see that occurring in the immediate future I&#8217;m going to fill in some gaps here with a couple of additional concrete findings, particularly regarding i5 vs. i7 testing and the impact of SSD on first page load times after application pool recycles. I&#8217;ll also talk less rigorously about a few related issues.</p>
<h3><span id="more-1927"></span>SSD</h3>
<p>Probably the most contentious finding from my initial testing was that disk performance and bus speed aren&#8217;t significant factors in most of those results (start-up and shut-down times being a notable exception). To recap a bit of my initial summary:</p>
<blockquote>
<div><em>Disk performance and bus speed did not prove to be significant factors</em> in these results (except for virtual machine start-up times). Obviously    there are fundamental differences about SSD (yet untested) that may    skew this picture, but I will be surprised to see big differences. If    we’ve got these tests right, and they are actually representative of  the   tasks that slow down development, then we would expect to see  wider   variance across bus or disk speeds. We don’t.</div>
<div>
<ul>
<li>This  assumes the disk is relatively uncontended. Virtual machine    performance degrades in every type of test while large file operations    are running concurrently on the same disk. This could be copying an   ISO,  importing or exporting a virtual machine or any other sustained   large  file operations.</li>
</ul>
</div>
</blockquote>
<p>The obvious follow-on test would be to repeat on the same system with SSD. Unfortunately I&#8217;ve not found the time or hardware resources to do that yet, but today I ran an indicative test. In this scenario, I installed two new boots on a brand new <a title="Lenovo ThinkPad W520" href="http://shop.lenovo.com/gbweb/gb/en/learn/products/laptops/thinkpad/w-series/w520/" target="_blank">Lenovo ThinkPad W520</a>. One drive was an SSD in the second bay, the other was a 7200 RPM SATA drive (I don&#8217;t have specs for either to hand, but they were the default Lenovo offerings). For both boots I ran the VMs on the other spindle, so we had one test with an SSD system drive and VMs running on mechanical drive. For the second test I inverted the configuration and had a mechanical system drive with VMs running on SSD. In both cases there was no appreciable system contention outside of these tests.</p>
<p>The results? Identical. First page load after application pool recycle times were around 10 seconds for Central Administration, a blank site and a My Site Host. 16 seconds for a customised intranet solution (the same one from the initial tests). These are very similar times to the desktop results from my original tests &#8211; only marginally slower. What does this tell me? I should complete the testing for more scenarios than just the first page load times. But given that it won&#8217;t happen any time soon, I&#8217;m pretty comfortable assuming that SSD isn&#8217;t going to automagic performance improvements where disk speed is otherwise not a factor, and I&#8217;m happy standing by my initial analysis with this supplementary finding in hand.</p>
<p>To be crystal clear, I&#8217;ve seen first-hand how quickly a VM starts and shuts down when running on SSD. It&#8217;s stunning. And there&#8217;s clearly a subsequent gain reaching a post-start-up stasis of sorts. I always waited for my system to calm down like this before any testing could begin, and in some cases that might take ten minutes on a 7200 RPM mechanical drive, and even longer over USB2. However, I don&#8217;t actually see this as a major productivity loss. Irritating, yes. A sound business case? Probably less so. I imagine doing lots of full crawls would translate to a big productivity gain on SSD, but is that a major issue for most developers on most projects? Not consistently so, in my experience. But if you&#8217;re developing a FAST solution it would probably be a good idea. Maybe even isolate all of the DBs on the SSD. There would certainly be scope to play with this once you have known disk contention that you&#8217;re fighting.</p>
<p>The problem I have is that I can&#8217;t find any other scenarios which are as disk-bound as we might assume. When we first started this testing in late 2009, our first inclination was to add eSATA drives on a PCI Express port to get a second spindle. Freeing up the VMs from system activity and large file operations on the system disk is a clear win, but this will be true for any disk of any speed on virtually any bus if my initial test results are to be trusted, which means that <em>the SSD investment for VM performance gains is only likely to get you faster start-up/shutdown times and anything else that involves large file operations</em>.</p>
<p>All this said, if budget and SSD reliability are not concerns, load up on them, assuming it gets you sufficient storage capacity. It won&#8217;t hurt, so long as they don&#8217;t fail all the time. Additionally, it may be beneficial to get an SSD for the system drive, if other non-development activities would benefit from it. Or it may be that start-up/shutdown times are compelling on their own. In the final analysis, I&#8217;m in no way opposed to SSD, but when it&#8217;s my neck on the line for justifying hardware purchases, I want concrete, consistently-realised performance gains if I&#8217;m going to recommend a less resilient, lower capacity, more expensive technology. In most cases, I&#8217;m not sure that&#8217;s the case for virtualised SharePoint development.</p>
<h3>i5 vs. i7</h3>
<p>One of the other key follow-on investigations from last year&#8217;s testing was a comparison of i5 vs. i7 processors. I&#8217;ll quote the initial context here:</p>
<blockquote>
<ul>
<li>
<div><em>The benefit of spending on i7 processors is in doubt</em>. We are seeing very minor performance <em>penalties</em> when adding more than two CPUs in both VMWare Workstation and Hyper-V   for most tests. There were also very minor improvements for some tasks,   but on the whole there does not appear to be a measurable benefit. This   might vary if the host OS is doing a great deal with the CPU, but that   is liable to cause other contention issues than just in the CPU (on a   laptop).</div>
</li>
<li>
<div>The only tasks that appeared to use all 8 cores in a SharePoint VM were:</div>
<ul>
<li>Retract/Deploy of a solution (but only very briefly)</li>
<li>Create web app, or Create site collection (but at low percentages)</li>
<li>Rebuild with Code Analysis (but not fully)</li>
</ul>
</li>
</ul>
</blockquote>
<p>Since  the initial testing, I&#8217;ve continued to experiment with two versus four  cores in the VM, and have never seen a significant enough difference to  endorse using more than two, but at the same time, I don&#8217;t think the  penalties for multiple cores are significant enough to worry about, if  any user thinks that four cores will be better. Note: I&#8217;m only talking about development here.</p>
<p>Based on  these findings, I had a hunch that a faster clock speed i5  would outperform an i7, assuming two or fours cores running inside the  SharePoint VM. For the sake of simplicity I&#8217;ve tested with two cores.  For these follow-on tests I used the same <a title="V6-P7H55E" href="http://www.asus.com/Barebone_PC/V_Series_2530L/V6P7H55E/" target="_blank">ASUS V6-P7H55E</a> model that I  used during the original testing, with an identical spec/configuration  and the same VM, with one exception. We replaced the <a title="Intel® Core™ i7-870 Processor (8M Cache, 2.93 GHz)" href="http://ark.intel.com/Product.aspx?id=41315" target="_blank">Intel® Core™ i7-870 Processor (8M Cache, 2.93 GHz)</a> with an <a title="Intel® Core™ i5-680 Processor (4M Cache, 3.60 GHz)" href="http://ark.intel.com/Product.aspx?id=48504" target="_blank">Intel® Core™ i5-680 Processor (4M Cache, 3.60 GHz)</a> &#8211; faster speed, smaller cache.</p>
<p>To  my surprise, the performance tests returned virtually identical results  to my initial testing (all within the margins that the initial tests  deviated). Reviewing those results again, we can see that for most tests  disk performance is not an issue (see above), and these tests suggest  that CPU is not a bottleneck to <em>further</em> performance gains beyond a certain point (I believe an older CPU would fare poorly against either of these, but if a 4.0 GHz i5 came along, I&#8217;m not sure we&#8217;d see an improvement over these results). These  machines have reasonably high-spec RAM, so memory <em>speed</em> does not seem a likely candidate  for further improvements. Based on resource monitoring during testing, I  can&#8217;t see that anything is maxed out, so I&#8217;m beginning to think there&#8217;s something inherently languid in the sequence of this computation. Perhaps a deeper dive is in order some day, but I&#8217;m probably not the best person to take that on.</p>
<p>As an aside, I can confirm that I&#8217;ve been running up to six VMs concurrently on this desktop with the i5 over the last couple of weeks. Starting all of the machines up at once is rough, but after 15-20 minutes it&#8217;s handling it no problem, and I don&#8217;t have to do that unless I&#8217;m taking a major snapshot. This suggests disk starts to become an issue with six VMs running at once, but that shouldn&#8217;t surprise anyone. If anything I&#8217;m surprised it&#8217;s not more of an issue on this machine, and if I continue to need this many VMs at once I&#8217;ll probably sacrifice my RAID 1 array for two separate disks. I&#8217;d be hesitant to suggest SSD in this case, since six VMs is probably going to chew up more storage than most SSDs will accommodate.</p>
<p>Based on these results and this longer-term experience, I&#8217;d recommend the higher-speed i5. I don&#8217;t seem to lose anything with the i5, at any rate. Maybe even go down to a 3.0 GHz i5 and save some money? If you know you have a specific scenario that will consistently utilise eight cores, go for the i7. But ultimately, both of these CPUs are fast.</p>
<h3>Windows Experience Index and CPU Benchmarks</h3>
<p>I&#8217;ve had a number of discussions with people about performance since publishing these posts, and it&#8217;s surprised me to find how many people actually look at the Windows Experience Index. Unfortunately, in my experience, this really doesn&#8217;t tell us much on today&#8217;s machines. A poor-to-average developer machine today gets a good score, unless it has a 4200 RPM hard drive (in which case it shouldn&#8217;t be used by a developer). Also, graphics performance is probably irrelevant. I really don&#8217;t think this index sheds any light on the <em>SharePoint Development Experience Index</em>, as it were.</p>
<p>Along these lines, with the receipt of a few new Sandy Bridge CPUs in these Lenovo laptops, we started running CPU benchmark tools. These are quite useful for diagnosing problems (early BIOS versions on the W520 were slooooooooooooooooooow &#8211; make sure to apply v1.25+), but beyond that, I&#8217;m not sure they tell us what we need to know for SharePoint development. For instance, at one point we saw hugely different CPU benchmark scores but the SharePoint performance tests were roughly the same. I guess I mention these tools here to say that they may be useful in some cases, but I think these real world tests probably tell us more.</p>
<h3>Sandy Bridge</h3>
<p>&#8220;How good are these Sandy Bridge CPUs&#8221;, I hear you mutter? Battery life is amazing. I accidentally left the Lenovo W520 running unplugged all day today. I think it lasted about six hours. Performance-wise, you&#8217;ve seen the ~10 second first page load times after an application pool recycle on a few of the standard SharePoint OOTB templates. That&#8217;s on a 2.0 GHz Sandy Bridge i7. This is not far off the 2.93 GHz first generation i7 desktop CPU results from our original tests, and much better than the first-generation i7 laptop PCU. Pretty good, I&#8217;d say. I can&#8217;t wait to see the second generation desktop speeds. Note: the desktop i7 models also have integrated graphics, where the first-generation desktop i7 CPUs did not. Now to hope there aren&#8217;t any more recall issues.</p>
<p>A few other things to note:</p>
<ul>
<li>Until a few months ago, I didn&#8217;t realise that dual-core i7 CPUs exist. I thought they were all quad-core. Not so. This is important because if you find a laptop model with four SODIMM slots (to get you 16GB RAM, and 32GB in due course), the fine print will probably tell you that you will only get two SODIMM slots unless you purchase a quad-core CPU.
<ul>
<li>There&#8217;s a secondary &#8220;gotcha&#8221; here, in that the quad-core laptop i7 CPUs peak at a much lower clock rate than their desktop siblings. I think the fastest first-generation quad-core laptop i7 CPU peaks at just over 2 GHz, and most laptop manufacturers have very few models, if any, with this CPU. In fact, we struggled to find anything other than 1 Lenovo, 1 Dell and 1 HP model at 15&#8243;. Most of these only had availability for lower clock speeds and we nearly had to settle for 1.73 GHz. These are all very expensive as well.</li>
</ul>
</li>
<li>The Sandy Bridge comes to the rescue here insofar as it has higher clock speed quad-core laptop i7 models, even if these are also slower than their desktop siblings. However, it&#8217;s also worth noting that in most CPU comparisons of Sandy Bridge to 1st-generation i7 models, the Sandy Bridge annihilates. Basically, at this point, if shopping for a high-performance SharePoint development laptop, you should be looking at Sandy Bridge. They may actually be cheaper as well &#8211; somehow.</li>
<li>Also be aware that the Japanese earthquake has caused severe manufacturing delays for most hardware vendors. You may find you need to settle for a lengthy lead time at the moment.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-ssd-i5-i7-wei-sandy-bridge/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Amazon VPC and VM Import Updates</title>
		<link>http://tristanwatkins.com/index.php/amazon-vpc-and-vm-import-updates/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=amazon-vpc-and-vm-import-updates</link>
		<comments>http://tristanwatkins.com/index.php/amazon-vpc-and-vm-import-updates/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 00:04:00 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Consultancy and Design]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[VPC]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1845</guid>
		<description><![CDATA[In the last couple of weeks I&#8217;ve received notification of two important updates regarding Amazon Web Services. I thought I&#8217;d share them here, as they are both relevant to use of SharePoint 2010 on EC2 and I&#8217;ve seen no mention of them elsewhere. If you&#8217;re interested in this broader topic, I&#8217;ve covered it in detail [...]]]></description>
			<content:encoded><![CDATA[<p>In the last couple of weeks I&#8217;ve received notification of two important updates regarding Amazon Web Services. I thought I&#8217;d share them here, as they are both relevant to use of SharePoint 2010 on EC2 and I&#8217;ve seen no mention of them elsewhere. If you&#8217;re interested in this broader topic, I&#8217;ve covered it in detail here:</p>
<p>&nbsp;</p>
<ul>
<li><a title="Permalink to SharePoint 2010 Infrastructure for Amazon EC2 Part I: Storage and Provisioning" href="http://tristanwatkins.com/index.php/sharepoint-2010-infrastructure-amazon-ec2-storage-provisioning/">SharePoint 2010 Infrastructure for Amazon EC2 Part I: Storage and Provisioning</a></li>
<li><a title="Permalink to SharePoint 2010 Infrastructure for Amazon EC2 Part II: Cloning and Networking" href="http://tristanwatkins.com/index.php/sharepoint-2010-infrastructure-amazon-ec2-cloning-networking/">SharePoint 2010 Infrastructure for Amazon EC2 Part II: Cloning and Networking</a></li>
<li><a title="Permalink to SharePoint 2010 Infrastructure for Amazon EC2 Part III: Administration, Delegation and Licensing" href="http://tristanwatkins.com/index.php/sharepoint-2010-infrastructure-amazon-ec2-administration-delegation-licensing/">SharePoint 2010 Infrastructure for Amazon EC2 Part III: Administration, Delegation and Licensing</a></li>
<li><a title="Permalink to SharePoint 2010 Infrastructure for Amazon EC2 Part IV: Cost Analysis" href="http://tristanwatkins.com/index.php/sharepoint-2010-infrastructure-amazon-ec2-cost-analysis/">SharePoint 2010 Infrastructure for Amazon EC2 Part IV: Cost Analysis</a></li>
</ul>
<p>My commentary here assumes some familiarity with these earlier posts. This is new functionality that enables new design options. These options should make SharePoint 2010 on EC2 more appealing for a few specific uses.</p>
<p><span id="more-1845"></span></p>
<h3>VM Import for VMware vCenter</h3>
<p>While this first update is quite eye-catching, and will be brilliant for some scenarios, I don&#8217;t see it as massively game-changing. I first noticed it in <a href="http://aws.amazon.com/about-aws/newsletters/2011/03/09/march-2011---new-tokyo-region-static-websites-on-s3-cloudformation/?ref_=pe_8050_19125370">the March 2011 AWS Newsletter</a>, so this is pretty new stuff. I think the blurb speaks for itself:</p>
<blockquote><p><strong>Amazon EC2 VM Import Adds Connector for VMware vCenter</strong><br />
<a href="http://www.amazon.com/gp/r.html?R=1363OD149M8JD&amp;C=1DW7QTEPH85CB&amp;H=I7ZNQJOAMI5KACAAMKINZH1XAKGA&amp;T=C&amp;U=http%3A%2F%2Faws.amazon.com%2Fec2%2Fvmimport%2F%3Fref_%3Dpe_8050_19125370">Amazon EC2 VM Import</a> has released Connector vApp, a virtual appliance that works with VMware vCenter making it easier to import your preexisting virtual machines (VMs) to Amazon EC2. Amazon EC2 customers can use a familiar graphical user interface to select a virtual machine (VM) and specify the AWS Region, Availability Zone, operating system, instance size, security group, and VPC details (if desired) into which the VM should be imported. Once the VM has been imported, you can launch it as an instance from the AWS Management Console. For more information about this feature, see the <a href="http://www.amazon.com/gp/r.html?R=1363OD149M8JD&amp;C=1DW7QTEPH85CB&amp;H=RAATR2YNGQ0SX1FFMOFTFLFVV0CA&amp;T=C&amp;U=http%3A%2F%2Fdocs.amazonwebservices.com%2FAWSEC2%2Flatest%2FUserGuide%2Findex.html%3FUsingVirtualMachinesinAmazonEC2.html">Amazon EC2 User Guide</a>.</p></blockquote>
<p>I have yet to put this to the test. There may be big issues with this for all I know, but I figured it was worth spreading the word, as many people seem to be evaluating SharePoint 2010 in the cloud at the moment.</p>
<p>One of the &#8220;common uses&#8221; listed on the Amazon VM Import page linked above is quite clever I think:</p>
<blockquote><p><strong>Create a Disaster Recovery Repository for your VM images</strong><br />
Import your on-premise VM images to Amazon EC2 for backup and disaster recovery contingencies. Store the imported images as Elastic Block Store-backed AMIs so they&#8217;re ready to launch in Amazon EC2 when you need them. You pay no Amazon EC2 usage charges until you need to launch the instances.</p></blockquote>
<p>This is probably the most compelling reason to consider this new functionality.</p>
<h3>Public Addressing and the Virtual Private Cloud</h3>
<p>The next update addresses what I saw as the major problem with Amazon EC2 for SharePoint 2010. Namely, that the Virtual Private Cloud only worked with stretched VPNs to it. There was no public addressing. This is no longer the case, as detailed in another AWS mail-out from a couple of days ago (my bold below):</p>
<blockquote><p>We are excited to announce greatly expanded functionality of Amazon Virtual Private Cloud (Amazon VPC) that opens up the virtual networking capabilities of Amazon VPC to a much broader set of use cases. Before today, you could provision a private, isolated section of the AWS cloud and launch AWS resources into that VPC that were only accessible via an IPsec Virtual Private Network (VPN) connection to your corporate datacenter. <strong>With today&#8217;s announcement, you no longer need a VPN or existing infrastructure resources in order to leverage Amazon VPC, but can also connect to your VPC directly through the Internet &#8211; you define the virtual network that you wish to use.</strong></p>
<p>With this release, you can now define a virtual network topology in the Amazon VPC that closely resembles a traditional network that you might operate in your own datacenter. <strong>You have complete control over the virtual networking environment, including selection of IP address range, creation of subnets, and configuration of route tables and network gateways. You can easily customize the network configuration for Amazon VPC, for example creating a public-facing subnet for web servers that has access to the Internet, and placing backend systems such as databases or application servers in a private-facing subnet with no Internet access.</strong></p>
<p>Amazon VPC enables you to leverage multiple layers of security for access to Amazon EC2 instances, including security groups and network access control lists. Additionally, with the expanded Amazon VPC features, you can:</p>
<p>Divide Amazon VPC&#8217;s private IP address range into one or more public or private subnets to facilitate running applications and services in Amazon VPC.</p>
<p>Control inbound and outbound access to and from individual subnets using network access control lists.</p>
<p><strong>Attach an Amazon Elastic IP Address to any Amazon VPC instance so it can be reached directly from the Internet.</strong></p>
<p>Store data in Amazon S3 and set permissions so the data can only be accessed from within Amazon VPC.</p>
<p>For more information on Amazon Virtual Private Cloud, visit <a href="http://www.amazon.com/gp/r.html?R=1363OD149M8JD&amp;C=277FY5ZMVRE0K&amp;H=0D9R9PXRSQJDG3AI2DLACVVKALOA&amp;T=C&amp;U=http%3A%2F%2Faws.amazon.com%2Fvpc%3Fref_%3Dpe_2170_19234450">aws.amazon.com/vpc</a>.</p></blockquote>
<p>The earlier design of the VPC (or more precisely, the lack of user-controlled NAT) was the major technical shortfall in the Amazon IaaS offering relative to a traditional datacentre. I haven&#8217;t yet looked at this in enough detail, as I&#8217;m not actively using EC2, so no doubt there are design nuances that will obtain. Also, the VPC and Elastic IP addresses have associated costs and this will add considerable (likely prohibitive) complexity for the network-untrained. Alternately it may require proper administration, and those associated costs.</p>
<p>For my personal use, I see this as a decisive improvement that will make me reconsider EC2 much more closely for testing cross-farm scenarios, perimeter security, proxies and anything that requires a full infrastructure. While much of this may have been achievable without these VPC changes, it would have been massively complex, more costly and less robust.</p>
<p><strong>17-03-2011 update</strong>: as my former colleague <a href="http://www.glynblogs.com/">Glyn Clough</a> rightly points out in the comments here, I forgot to mention that EC2 also supports Windows Server 2008 R2 now, which is sweet!</p>
<p><strong>15-04-2011 update</strong>: <a title="Tweet" href="http://twitter.com/#!/paulculmsee/status/58437284139249664" target="_blank">Paul Culmsee pointed out</a> today that <a title="VPC" href="http://aws.amazon.com/vpc/" target="_blank">the VPC</a> is still in Beta, which I&#8217;ve somehow managed to forget between December and March. This could mean pricing or other changes before RTM. Also note: Paul pointed out that the VPC does not span availability zones, which could be an issue for global organisations.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/amazon-vpc-and-vm-import-updates/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Development Environment Performance Test Results</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-test-results/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-2010-development-environment-performance-test-results</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-test-results/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 00:09:23 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ASUS]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1542</guid>
		<description><![CDATA[Drum roll please! At long last, I bring you the results of a great deal of testing. Here&#8217;s the background: SharePoint Development Productivity and Virtualisation Technologies SharePoint 2010 Development Environment Performance Tests I&#8217;ve said my preamble in those posts, so I&#8217;ll cut to the chase here. High-Level Summary of Findings Disk performance and bus speed [...]]]></description>
			<content:encoded><![CDATA[<p>Drum roll please! At long last, I bring you the results of a great deal of testing. Here&#8217;s the background:</p>
<ul>
<li><a title="SharePoint Development Productivity and Virtualisation Technologies" href="http://tristanwatkins.com/index.php/sharepoint-development-productivity-and-virtualisation-technologies/">SharePoint Development Productivity and Virtualisation Technologies</a></li>
<li><a title="SharePoint 2010 Development Environment Performance Tests" href="http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-tests/">SharePoint 2010 Development Environment Performance Tests</a></li>
</ul>
<p>I&#8217;ve said my preamble in those posts, so I&#8217;ll cut to the chase here.</p>
<p><span id="more-1542"></span></p>
<h3>High-Level Summary of Findings</h3>
<ul>
<li>
<div><em>Disk performance and bus speed did not prove to be significant factors</em> in these results (except for virtual machine start-up times). Obviously there are fundamental differences about SSD (yet untested) that may skew this picture, but I will be surprised to see big differences. If we&#8217;ve got these tests right, and they are actually representative of the tasks that slow down development, then we would expect to see wider variance across bus or disk speeds. We don&#8217;t.</div>
<ul>
<li>
<div>This assumes the disk is relatively uncontended. Virtual machine performance degrades in every type of test while large file operations are running concurrently on the same disk. This could be copying an ISO, importing or exporting a virtual machine or any other sustained large file operations.</div>
<ul>
<li>
<div>At a minimum, this is certainly an argument for running VMs on their own spindle, whether it&#8217;s over USB, eSATA or SATA. This may be an area where SSD shines.</div>
</li>
</ul>
</li>
<li>These disk performance figures can be found towards the bottom of this post. Desktop performance was nearly identical running on USB2 at 5400 RPM versus a RAID0 stripe or a RAID1 array on 7200 RPM disks. Laptop performance was also nearly identical over USB2 5400 RPM versus eSATA 7200 RPM.</li>
</ul>
</li>
<li><em>Hyper-V performance has been poor on all laptops</em> with i-Series CPUs. This is more pronounced in some areas than others. Our three-year-old model with a Core 2 Duo actually outperforms the new i7 in some cases. When these results are added to known driver issues with Hyper-V on many newer laptop GPUs, we&#8217;re looking at a configuration that&#8217;s unfit for SharePoint 2010 development.</li>
<li>
<div><em>VMWare Workstation outperforms Hyper-V on laptops</em> by significant margins in most areas. The exceptions to this are start-up time and performance during the first 10-30 minutes of use (I believe VMWare is ballooning during this time). After that, VMWare Workstation is faster than Hyper-V in every type of test.</div>
<ul>
<li>As a long-time advocate of Hyper-V despite usability deficiencies, I was probably more surprised by the significance of these differences than anyone. I wrongly assumed that Type-I hypervisors would outperform Type-II in nearly every way. While that may hold true on server class hardware, it doesn&#8217;t hold true here. I&#8217;m a convert.</li>
</ul>
</li>
<li>
<div>While less pronounced, <em>these same findings hold true on the desktop</em>.</div>
<ul>
<li>Desktop performance is very quick on VMWare Workstation, considerably out-performing even Amazon EC2.</li>
<li>We can realise significant productivity gains by moving all users who are primarily office-based to a desktop + VMWare Workstation configuration from laptop + Hyper-V, at a fairly small cost (probably half the cost of EC2 over three years – see <a href="http://tristanwatkins.com/index.php/sharepoint-2010-infrastructure-amazon-ec2-cost-analysis/">my recent posts on EC2</a> for more information).</li>
<li>Desktop performance on Hyper-V, while notably slower than VMWare Workstation, is generally faster than VMWare Workstation on the i7 laptop.</li>
</ul>
</li>
<li>
<div>Laptop performance is significantly improved on our current model with VMWare Workstation. These improvements are also realised on the newer model laptop, but the performance delta between the two physical systems is not so significant that it&#8217;s compelling to move to a low speed i7 from a reasonable speed Core 2 Duo.</div>
<ul>
<li>The total times for the &#8220;End-to-end site creation to debugging tests&#8221; were <em>two and a half minutes faster</em> with VMWare Workstation compared to Hyper-V on the Dell XPS M1330. Moving from Hyper-V to VMWare Workstation for laptop users is now an obvious choice.</li>
<li>
<div><em>The benefit of spending on i7 processors is in doubt</em>. We are seeing very minor performance <em>penalties</em> when adding more than two CPUs in both VMWare Workstation and Hyper-V for most tests. There were also very minor improvements for some tasks, but on the whole there does not appear to be a measurable benefit. This might vary if the host OS is doing a great deal with the CPU, but that is liable to cause other contention issues than just in the CPU (on a laptop).</div>
</li>
<li>
<div>The only tasks that appeared to use all 8 cores in a SharePoint VM were:</div>
<ul>
<li>Retract/Deploy of a solution (but only very briefly)</li>
<li>Create web app, or Create site collection (but at low percentages)</li>
<li>Rebuild with Code Analysis (but not fully)</li>
</ul>
</li>
<li>We will be running future tests on i5 processors at higher clock speeds to see how these models perform relative to the 1.6 GHz i7.</li>
</ul>
</li>
<li>The User Profile Service Connection doubles first page load times after an IISRESET in all test cases. I consider this a full validation of <a href="http://tristanwatkins.com/index.php/user-profile-service-connection-slow-first-page-load/">these preliminary findings</a>.</li>
</ul>
<h3>Snapshot of key data</h3>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint216.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint216.png" alt="120210 0009 SharePoint216 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></p>
<h3>The Data</h3>
<p>How to read the data:</p>
<ul>
<li><strong>Hardware</strong>: the physical laptop or desktop model (or Amazon&#8217;s EC2)</li>
<li><strong>Virtualisation</strong>: &#8220;Hyper-V&#8221; is short-hand for the Hyper-V role in Windows Server 2008 R2. &#8220;VMWare 7.1.2&#8243; is short-hand for VMWare Workstation.</li>
<li><strong>#CPU</strong>: the number of physical CPU presented to the guest operating systems. Multiple logical cores were only tested in the 4&#215;2 results below.</li>
<li><strong>Disk</strong>: the physical disk configuration where the virtual hard drives are running.</li>
<li><strong>RAM</strong>: the amount of RAM running inside the SharePoint Server 2010 VM. The Amazon EC2 instances were &#8220;large instances&#8221; but the domain controller was running locally.</li>
<li><strong>Test: </strong>The tests have been described in more detail in my last post.</li>
<li><strong>Result 1, 2, 3:</strong> Each test was carried out three times. The far-right column, <strong>Average Result</strong>, is an average of the three.</li>
<li>The Two &#8220;<span style="color: #a6a6a6;"><strong>Average Load…</strong></span>&#8221; rows are an average per-result of the three rows above them. These are tests built on SharePoint 2010 default site templates, which anyone should be able to replicate.</li>
<li>The &#8220;<span style="color: #a6a6a6;"><strong>Total create to debug time</strong></span>&#8221; row is a sum of the five rows above it.</li>
<li>All results are in seconds. In cell G21 below, 524 seconds = 9 minutes and 2 seconds.</li>
<li>For more information on the tests and the testing methodology, see <a href="http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-tests/">my last post</a>.</li>
</ul>
<h3>Hyper-V versus VMWare tests, all other things being equal</h3>
<p><span style="text-decoration: underline;">Dell XPS M1330, running Hyper-V<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint224.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint224.png" alt="120210 0009 SharePoint224 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">Dell Studio XPS 1645 laptop, running Hyper-V<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint234.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint234.png" alt="120210 0009 SharePoint234 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop, running Hyper-V<br />
</span>Note: these Hyper-V tests were accidentally carried out while the VM was running on a RAID 0 stripe rather than on the System disk, so this is not apples and apples, but later disk tests on VMWare Workstation indicated that this shouldn&#8217;t make much of a difference, so I&#8217;ve left these results in, with this comment. <span style="text-decoration: underline;"><br />
</span></p>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint242.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint242.png" alt="120210 0009 SharePoint242 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></p>
<p><span style="text-decoration: underline;">Dell XPS M1330, running VMWare Workstation<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint252.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint252.png" alt="120210 0009 SharePoint252 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">Dell Studio XPS 1645 laptop, running VMWare Workstation<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint272.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint272.png" alt="120210 0009 SharePoint272 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop, running VMWare Workstation<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint262.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint262.png" alt="120210 0009 SharePoint262 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<h3>VMWare Workstation i7 tests with 4 or 8 cores</h3>
<p><span style="text-decoration: underline;">Dell Studio XPS 1645 laptop, running VMWare Workstation with 4 CPU<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint292.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint292.png" alt="120210 0009 SharePoint292 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop, running VMWare Workstation with 4 CPU<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint282.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint282.png" alt="120210 0009 SharePoint282 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<p><span style="text-decoration: underline;">Dell Studio XPS 1645 laptop, running VMWare Workstation with 4 CPU, 2 Cores Each<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2113.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2113.png" alt="120210 0009 SharePoint2113 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop, running VMWare Workstation with 4 CPU, 2 Cores Each<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2102.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2102.png" alt="120210 0009 SharePoint2102 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<h3>Amazon EC2 Results</h3>
<p>Notes:</p>
<ul>
<li>Times were much slower one day than others. This hasn&#8217;t been measured over time, but it&#8217;s worth keeping in mind. Other EC2 users reported similar problems on the same day.</li>
<li>Also note: a couple of rows of test data (245 and 248) have been accidentally deleted, but the results were not unexpected in any way.</li>
<li>Row 263 has no data because measuring time to desktop with EC2 would be too imprecise. It would normally be available within five minutes from start, for reference.</li>
</ul>
<p><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2122.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2122.png" alt="120210 0009 SharePoint2122 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></p>
<h3>Disk Tests on VMWare Workstation with two cores</h3>
<p>The format of these tests change slightly, as I am grouping all disk permutations for the Dell Studio XPS 1645 together, then moving on to the ASUS V7-P7H55E desktop. I grouped them this way because the tests were fundamentally different for laptops and desktops. I did not get the time to repeat the laptop tests on the Dell XPS M1330.</p>
<p><span style="text-decoration: underline;">Dell Studio XPS 1645 laptop with VM running on 5400 RPM USB2<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2161.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2161.png" alt="120210 0009 SharePoint2161 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a><br />
</span></p>
<p><span style="text-decoration: underline;">Dell Studio XPS 1645 laptop with VM running on 7200 RPM eSATA<br />
</span><a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint217.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint217.png" alt="120210 0009 SharePoint217 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop with VM running on 5400 RPM USB2<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2131.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2131.png" alt="120210 0009 SharePoint2131 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop with VM running on a 2nd set of RAID 0 spindles<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2141.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2141.png" alt="120210 0009 SharePoint2141 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<p><span style="text-decoration: underline;">ASUS V7-P7H55E desktop with VM running on a 2nd set of RAID 1 spindles<br />
<a class="lightbox" href="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2151.png"><img src="http://tristanwatkins.com/wp-content/uploads/120210_0009_SharePoint2151.png" alt="120210 0009 SharePoint2151 SharePoint 2010 Development Environment Performance Test Results" width="500" title="SharePoint 2010 Development Environment Performance Test Results" /></a></span></p>
<p>&#8230;and with that, I&#8217;ll let you draw your own conclusions. Should anyone want to contribute supplementary test data in the comments here, or carry out further tests (perhaps with SSD), I would love to see the results. As I mentioned in the last post, there&#8217;s still more testing to do.</p>
<p>Update 08 June 2011:<a title="SharePoint 2010 Development Environment Performance: SSD, i5 vs. i7, WEI and Sandy Bridge" href="http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-ssd-i5-i7-wei-sandy-bridge/">SharePoint 2010 Development Environment Performance: SSD, i5 vs. i7, WEI and Sandy Bridge</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-test-results/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Development Environment Performance Tests</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-tests/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-2010-development-environment-performance-tests</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-tests/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 06:30:35 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[ASUS]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1328</guid>
		<description><![CDATA[As I indicated in my last post, I&#8217;ve been plundering the depths of SharePoint development productivity in recent months. Understanding the context established in that post is pretty essential to understanding what follows here. In a nutshell, I&#8217;m trying to improve system performance for current users of our SharePoint development environment. This is not as [...]]]></description>
			<content:encoded><![CDATA[<p>As I indicated in <a title="SharePoint Development Productivity and Virtualisation Technologies" href="http://tristanwatkins.com/index.php/sharepoint-development-productivity-and-virtualisation-technologies/" target="_blank">my last post</a>, I&#8217;ve been plundering the depths of SharePoint development productivity in recent months. Understanding the context established in that post is pretty essential to understanding what follows here. In a nutshell, I&#8217;m trying to improve system performance for current users of our <a title="SharePoint Development Environment" href="http://tristanwatkins.com/index.php/building-a-sharepoint-20072010-development-environment/" target="_blank">SharePoint development environment</a>. This is not as simple as examining the <a title="Windows Experience Index" href="http://windows.microsoft.com/en-GB/windows7/products/features/windows-experience-index" target="_blank">Windows Experience Index</a> on a number of laptop models. I needed to consult with our users to identify which tasks are slow for them and devise tests that would allow me to measure system performance on different physical and virtual systems. In this post I will describe the systems, the tests and the testing process before reviewing the results.</p>
<h3>The Tests</h3>
<p>The 21 tests that we settled on were the result of discussions with a number of the core developers, consultants and architects at <a title="Content and Code" href="http://www.contentandcode.com/pages/default.aspx" target="_blank">Content and Code</a>, plus a few tests that I threw in to confirm/disconfirm some of my suppositions, such as <a title="ser Profile Service Connection and Slow First Page Load" href="http://tristanwatkins.com/index.php/user-profile-service-connection-slow-first-page-load/" target="_blank">the impact of the User Profile Service Connection on first page load time</a>. All 21 tests were run three times for each permutation of hardware candidate and virtualisation technology. We also tested on Amazon EC2. I will discuss the testing process in more detail in a moment.</p>
<p><span id="more-1328"></span></p>
<p>These tests have been selected for a few reasons:</p>
<ul>
<li>They are tests that anyone can run, including Visual-Studio-allergic types like myself.</li>
<li>They re-enact real-world productivity loss. All tests needed to be significant on our current system or they were thrown out.</li>
<li>They needed to account for tasks that impact non-developers as well as people that have their head down in code 40 hours/week.</li>
<li>They needed to be examples of tests that would stress systems in different ways.</li>
</ul>
<p><span style="text-decoration: underline;">First page load tests</span><br />
These tests were designed to examine what, if any impact different sets of features, functionality and structure might have on first page load times after the application pool is recycled or IIS is reset (while gathering a large set of data to make comparisons across systems). I also wanted to fully validate my preliminary findings about the User Profile Service Connection.</p>
<p>I ran these tests against NTLM-authenticated web applications with the following root site collections:</p>
<ul>
<li>Central Administration</li>
<li>Blank Site</li>
<li>MySite</li>
<li>Blank Site, with no User Profile Service Connection</li>
<li>The Content and Code website solution (structure, without content)</li>
<li>A custom intranet solution (structure, without content)</li>
</ul>
<p>All of these first page load tests were repeated for application pool recycles and IIS resets.</p>
<p><span style="text-decoration: underline;">End-to-end site creation to debugging tests<br />
</span>I hope these tests are fairly self-explanatory. I used the <a title="Content and Code" href="http://www.contentandcode.com/pages/default.aspx" target="_blank">Content and Code</a> website solution because it&#8217;s a public site that people can examine if they want to understand more about the structure of the solution and the scope of customisation tested here. <span style="text-decoration: underline;"><br />
</span></p>
<ol>
<li> Create new NTLM-authenticated web application from the GUI</li>
<li> Create new Publishing Portal Site Collection from the GUI, at the root of the new web application</li>
<li> Deploy Content and Code website solution from Visual Studio</li>
<li> <span style="text-decoration: line-through;">Delete the publishing site collection</span> (this was a necessary step, but not a test that I timed)</li>
<li>Create Content and Code website (structure, without content) from the GUI</li>
<li> Debug Content and Code website solution in Visual Studio</li>
</ol>
<p><span style="text-decoration: underline;">Core development tests</span><br />
These tests were added to account for pure development activity for large projects with lots of dependencies. We turned Code Analysis on for the first test because this is a feature that&#8217;s very useful but taxes systems pretty heavily. The code deployment times were all fairly small relative to other tests here, but we need to keep in mind that this could be repeated literally hundreds of times per-day. Note: full deployment is accounted for above in the end-to-end test.</p>
<ul>
<li> Rebuild Large Project w/Code Analysis</li>
<li> Deploy Large Project to GAC/BIN</li>
</ul>
<p><span style="text-decoration: underline;">Disk/IO tests</span><br />
These tests were thrown in because they have an impact on productivity even if they aren&#8217;t particularly routine. For the first test I measured the time from turning on the VM until the desktop rendered after logging on. The second test doesn&#8217;t really meet the &#8220;real world&#8221; criteria I name above, but it is a task that can be a productivity barrier in some cases.</p>
<ul>
<li> Time to desktop</li>
<li> Run full crawl (three web apps, no content)</li>
</ul>
<h3>The Testing</h3>
<p>The testing process was entirely subject to personal fallibility, as I carried these tests out myself using fairly imprecise methods like a browser-based stopwatch running on my host system (I made sure not to time things inside the guest, where time can slip occasionally). I also went to great lengths to carry out these tests when the systems were performing optimally; I would run through all of the tests once before recording the first set of results. I felt this approach was the best way to discount random variance. The test results were largely very consistent, so I believe these efforts paid off. Obviously the down-side to testing in this manner is that real work is not carried out in a vacuum, but I don&#8217;t see any other way to come up with repeatable tests aside from measures like these. It&#8217;s what works for science, after all.</p>
<h3>The Virtualisation Technologies</h3>
<p>As I mentioned in my last post, I chose to limit the virtualisation technologies to a single technology from each of the types I described. I had to postpone testing against &#8220;local systems&#8221; due to time pressures. It was the option that fell off because we are unlikely to ditch virtualisation any time soon. It works well for us.</p>
<p>To reiterate here, the candidate technologies were VMWare Workstation 7.1, the Hyper-V role in Windows Server 2008 R2 and Amazon&#8217; s EC2 IaaS offering (a Red Hat implementation of the Xen hypervisor). Again, there&#8217;s background for all of this in my last post.</p>
<h3>What About the Server Room?</h3>
<p>One thing I haven&#8217;t discussed in any detail so far is VDI or Remote Desktop services. I briefly touched on shared development environments, but I&#8217;ve not talked about hosted, individualised development environments. The reason we ruled this out is cost. While this would probably be the best-performing option, all other things being equal, the costs associated with providing this level of performance in the server room would be pretty enormous. For our purposes we might have exceeded power, cooling and weight limitations before we considered the costs of new blade centres and SANs. These costs would probably be even greater in the datacentre. In short, the same criticism applies to individualised hosted development environments as to shared environments: <em>redundancy and resilience at this level is overkill given the      associated costs</em>. The data is not critical and anything that needs to be backed up can be stored elsewhere (like TFS).</p>
<p>Basically, people opt for VDI or Remote Desktop services because a mass of underutilised desktop systems can be heavily consolidated. These systems are not underutilised.</p>
<h3>The Hardware Candidates</h3>
<p><a title="Dell Studio XPS M1330" href="http://www1.euro.dell.com/uk/en/home/ubuntu/xpsnb_m1330_ubuntu/pd.aspx?refid=xpsnb_m1330_ubuntu&amp;cs=ukdhs1&amp;s=dhs" target="_blank">Dell XPS M1330</a><br />
This is our current laptop model, upgraded with a 320GB 7200 RPM local hard drive and 8GB RAM. One of the serious options we&#8217;re considering is a laptop refresh, due to the age and fail rate of the graphics cards and motherboards on these models.</p>
<p><a title="Dell Studio XPS 16" href="http://www1.euro.dell.com/uk/en/business/Dell-Laptops/laptop-studio-xps-16/pd.aspx?refid=laptop-studio-xps-16&amp;s=bsd&amp;cs=ukbsdt1" target="_blank">Dell Studio XPS 1645</a><br />
This was the least expensive decent i7 laptop I could find for testing purposes, and a leading candidate as a replacement laptop. With an £833 (ex-VAT) starting price it could be bumped up to 8GB RAM for a little over £100 more via <a title="4GB, 204-pin SODIMM, DDR3 PC3-8500 memory module" href="http://www.crucial.com/uk/store/mpartspecs.aspx?mtbpoid=4499F2D6A5CA7304&amp;click=true" target="_blank">Crucial</a>. It&#8217;s a very heavy laptop and the glossy shell does it no favours, picking up fingerprints within seconds of use. However, it comes wth a 1.6 GHz i7 processor, 500GB 7200 RPM disk standard, eSATA port and HDMI. No USB3. Basically, nothing here was an absolute deal-breaker for us if performance was good.</p>
<p><a title="ASUS V6-P7H55E" href="http://www.scan.co.uk/products/asus-v6-p7h55e-s1156-intel-h55-express-ddr3-1066-1333-pci-e-%28x16%29-sata-3gb-s-vga" target="_blank">ASUS V6-P7H55E</a><br />
This is a barebones system with the following configuration/cost (as priced at scan.co.uk):</p>
<ul>
<li>ASUS V6-P7H55E barebones System = £121.67</li>
<li>Intel i7 870 (8M Cache, 2.93 GHz) = £217.57</li>
<li>4GB Corsair XMS3 DDR3 PC3-10666 (1333) Dual Channel &#8211; 4x£56.59 = £226.36</li>
<li>1TB Seagate Barracuda SATA 3Gb/s, 7200rpm, 32MB Cache,  8.5 ms, NCQ &#8211; 3x£41.94 = £125.82</li>
<li>Adaptec 1220SA PCI-E RAID Card = £46.40</li>
<li>ASUS 512MB GeForce G 210 DDR2 NVIDIA Graphics Card = £27.71</li>
<li>Total = £768.58 (VAT-inclusive)</li>
</ul>
<p>This system is configured with three internal 1TB hard drives and 16GB RAM. We needed to purchase the RAID card because the motherboard does not have an on-board RAID controller. The graphics card was necessary because there are no integrated graphics on <em>desktop</em> i7 processors (although there are for some i3 and i5 models). The disk configuration was variable, as this was one of the test scenarios. The assumption going in was that two disks would be configured in a RAID 0 stripe or a RAID 1 array, depending on performance outcomes. We would only stripe the disks if there was an obvious, significant performance gain. The third disk would be attached to the on-board SATA controller. I will discuss the recommended configuration in more detail later. Also note: the graphics card supports two monitors across any two of the three outputs, but not three concurrently. Finally, the ASUS V7-P7H55E is nearly identical in every respect. We went with the V6 based on availability.</p>
<p><span style="text-decoration: underline;">Other laptop models</span><br />
During preliminary testing we looked at the Lenovo W510, the Dell Precision 6500 and the Alienware M17x among others. All of these models were candidates that we never ruled out, but we didn&#8217;t have sufficient time with them to run the entire set of tests. However, these models had a reasonably similar configuration to the Dell Studio XPS 1645 and the Hyper-V tests we ran on these systems yielded similar results to our test model.</p>
<p><span style="text-decoration: underline;">Other desktop models<br />
</span>Obviously a barebones system won&#8217;t appeal to everyone as a business solution, and it took me some time to persuade myself that it might be suitable for these environments. It wasn&#8217;t until I actually priced up this model and compared it to the comparable Dell T1500 (+~£600) and HP Z200 (slower than either model, and pricier) that I considered how it might work for us more seriously.<span style="text-decoration: underline;"><br />
</span></p>
<h3>What am I examining, and not examining?</h3>
<p>We have an old laptop, a new laptop, a new desktop and the cloud. Excepting the cloud (which is fixed), we&#8217;re permuting each of these hardware options with VMWare Workstation and Hyper-V test results. We&#8217;re then adding tests to examine the impact of spindle/bus speeds and the impact of adding/removing cores to these VMs. Ultimately, I wanted to quantify the productivity impacts of a change to our hardware and/or virtualisation technology as opposed to a change <em>within</em> our virtualisation technology, insofar as these tests could be decoupled.</p>
<p>I am not examining every virtualisation solution nor every hardware permutation but I do try to account for a number of these variables with these tests. I would love it if people carried out similar tests on their environments to help build knowledge in an area that&#8217;s hugely uninspected today. These are some of the other tests that I hope to revisit next year:</p>
<ul>
<li>The impact of application pooling on first page load times. Preliminary tests suggested there might be a small impact, but nowhere near as significant as the User Profile Service Connection. This warrants further inspection.</li>
<li>The performance of &#8220;local systems&#8221; on this same hardware. As I mention above, these tests had to be de-prioritised, but I feel it would be worth identifying if there are any of these development-specific tasks where some, or all virtual technologies suffer.</li>
<li>While I am running tests against a number of disk buses and configurations, I did not get the opportunity to test SSD performance. Obviously a lot of people will want to know the impact of SSD on these timings, but unfortunately I won&#8217;t have an opportunity to inspect that until early next year at the earliest.</li>
<li>In some cases we work with deep snapshot trees. I want to gain an understanding of how differencing across ten or more files impacts performance for these tasks.</li>
<li>Compare performance of a higher-clocked i5 to a lower-clocked i7 at a similar price range and potentially explore over-clocking options.</li>
<li>Compare slower memory on an otherwise-identical system.</li>
<li>Run VirtualBox tests on an otherwise-identical system.</li>
<li>Assess the impact of virtualisation optimisations.</li>
</ul>
<p>Obviously these tests say nothing about the usability of the system, power costs, mobility and more. For the purposes of this post I&#8217;m only concerned with outlining how I tested system performance for these real world tasks. In <a title="SharePoint 2010 Development Environment Performance Test Results" href="http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-test-results/">the next post</a>, at long last, I will share the results.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-2010-development-environment-performance-tests/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SharePoint Development Productivity and Virtualisation Technologies</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-development-productivity-and-virtualisation-technologies/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-development-productivity-and-virtualisation-technologies</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-development-productivity-and-virtualisation-technologies/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 06:30:07 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1365</guid>
		<description><![CDATA[In the near future, I&#8217;ll be discussing the results of the SharePoint Development productivity testing that I&#8217;ve been working on for some time. A key part of the background to that story is a choice to virtualise SharePoint, and within that, a choice of virtualisation technology. In this post I&#8217;ll be reviewing the problem in [...]]]></description>
			<content:encoded><![CDATA[<p>In the near future, I&#8217;ll be discussing the results of the SharePoint Development productivity testing that I&#8217;ve been working on for some time. A key part of the background to that story is a choice to virtualise SharePoint, and within that, a choice of virtualisation technology. In this post I&#8217;ll be reviewing the problem in advance of a more detailed discussion of the productivity gains and losses with some of these technologies/approaches.</p>
<p>For clarity, I will quickly state the problem as I see it. <em>SharePoint 2010 system requirements and practitioner mobility requirements are inherently at odds</em>. What guidance exists for this unique problem space tends to regurgitate preferences/allegiances rather than comparing technologies and ratifying assumptions with real-world tests. At best, you get system performance indices for a single laptop model, but these results may vary when any hardware component is changed.</p>
<p><span id="more-1365"></span></p>
<h3>How can virtualisation improve system performance?</h3>
<p>It doesn&#8217;t. People look to virtualisation to solve other problems. However, SharePoint 2010 performs differently in different virtualisation technologies, and the margins of these differences vary by hardware configuration. By all means, the advantages of virtualisation often make it a desirable choice, but these performance characteristics need to be accounted for, lest system performance losses negate the productivity improvements that virtualisation can introduce.</p>
<h3>Why virtualise?</h3>
<p>There are a number of advantages to virtual systems over physical systems. Many of these benefits can also be obtained with sufficiently mature systems management technologies and physical systems, but these benefits are often easier, quicker or less costly to implement through virtualisation. Some of the benefits include:</p>
<ul>
<li>Provisioning times for new SharePoint environments.</li>
<li>Standardisation through cloned, network-isolated virtual machines.</li>
<li>Account for volatility with snapshots.</li>
<li>Standard builds per-project, to share with team      members, reducing project initiation costs.</li>
<li>Virtual appliances produced by Microsoft and third parties,      such as the Information Worker Demo VM.</li>
<li>Reduced hardware rebuilds by removing development tools and      SharePoint from the host.</li>
</ul>
<p>This list is by no means comprehensive. As I say, many of these benefits can be realised with scripting and/or management tools. This list is only intended to illustrate why it&#8217;s a powerful design option.</p>
<h3>An overview of virtualisation and related technologies</h3>
<p>Some example technologies by type:</p>
<ul>
<li>Type I      Hypervisors
<ul>
<li>VMWare       ESXi</li>
<li>Hyper-V</li>
</ul>
</li>
<li>Type II      Hypervisors
<ul>
<li>Oracle       VirtualBox</li>
<li>VMWare       Workstation</li>
</ul>
</li>
<li>Infrastructure      as a Service (IaaS)
<ul>
<li>Amazon       EC2</li>
<li>Azure       VM Role (forthcoming)</li>
</ul>
</li>
<li>Local      Systems
<ul>
<li>Native       Boot Windows 7 (virtual hard disk)</li>
<li>Citrix       XenDesktop (VDI)</li>
</ul>
</li>
</ul>
<p>Note: Virtual PC was not included because it doesn&#8217;t support 64-bit guest operating systems. SharePoint 2010 only runs on 64-bit systems.</p>
<p>Some of the <em>alleged</em> benefits of these approaches:</p>
<ul>
<li>Type I      Hypervisors
<ul>
<li>Better       performance**</li>
<li>Good       management options/tools</li>
</ul>
</li>
<li>Type II      Hypervisors
<ul>
<li>Host       Operating System</li>
<li>Easy       to use</li>
</ul>
</li>
<li>Infrastructure      as a Service (IaaS)
<ul>
<li>Pay       as you go</li>
<li>Scalability</li>
</ul>
</li>
<li>Local      Systems
<ul>
<li>Good       performance</li>
<li>Simple       to use</li>
</ul>
</li>
</ul>
<p>Some of the <em>alleged</em> drawbacks of these approaches:</p>
<ul>
<li>Type I      Hypervisors
<ul>
<li>No       Host Operating System***</li>
<li>Driver       issues*</li>
<li>Complicated</li>
</ul>
</li>
<li>Type II      Hypervisors
<ul>
<li>Historically       poor performance**</li>
<li>Historically,       less manageable (snapshots, import/export, etc)</li>
</ul>
</li>
<li>Infrastructure      as a Service (IaaS)
<ul>
<li>Requires       stable connectivity</li>
<li>Complicated</li>
<li>Pay-As-You-Go       requires diligence</li>
</ul>
</li>
<li>Local      Systems
<ul>
<li>Easy       to damage</li>
<li>Slow       to rebuild</li>
</ul>
</li>
</ul>
<p>*Hyper-V has driver issues on some newer laptops. These are most noticeable with graphics, although I have seen audio driver problems as well. Some of these driver issues may be fixed or <a title="Hyper-V video issues fixed by Windows Server 2008 R2 SP1 Beta?" href="../index.php/hyperv-video-issues-fixed-windows-server-2008-r2-sp1-beta/" target="_blank">alleviated in the SP1 Beta/RC for Windows Server 2008 R2</a>.</p>
<p>**This performance bias is one of the things I will be examining in more detail in later posts.</p>
<p>***This is only &#8220;sort of&#8221; true for Hyper-V, which invokes a &#8220;parent partition&#8221;. This is a special type of virtual machine that fulfils a similar role to a host operating system, and is often referred to as such.</p>
<h3>Why are &#8220;Local Systems&#8221; included?</h3>
<p>I&#8217;ve lumped these in for two reasons. 1) They share some characteristics with the other virtualisation technologies, like running from virtual hard drives. 2) By virtue of being local systems, they fundamentally negate some of the benefits that are obtained through virtualisation. Cloning these machines is not an option if SharePoint is installed and configured. It will be necessary to invest in scripting environment provision in order to retain those productivity benefits. It happens that many people choose to take this scripting approach, but it&#8217;s worth pointing out that network isolation and cloning can achieve similar results through virtualisation, and this does not obtain with Local Systems.</p>
<h3>What about shared, hosted development environments?</h3>
<p>In this scenario I&#8217;m thinking of hosted development farms, where some or all members of a team use a single environment. Based on my subjective reading of the community, this option seems to be fading away. I think there are three reasons why.</p>
<ol>
<li>Cost.      Running development environments on proper infrastructure is expensive.      Most components have been made redundant, the storage will be expensive if      it performs well, the power/cooling costs are considerably more expensive      than for laptops/desktops and you will need to pay people to      manage the systems. Even when these costs are split across multiple      developers, it&#8217;s still expensive unless resources are overcommitted, which negates productivity gains. It also      tends to be more expensive to provision new environments and this process      can often be an obstacle to business agility. In a nutshell, <em>these are      protections that are unnecessary for development environments.</em> Redundancy and resilience at this level is overkill given the      associated costs. The most important assets, such as code, standard images      and project-specific builds can be protected separately.</li>
<li>Hive      pollution. If these farms will support multiple projects, as they often do      per the previous comments about provisioning, then these systems will      inherently differ from the test/stage/UAT/production systems they should      resemble. Core files in the hive can be altered from project-to-project,      resulting in unexpected behaviour when moving code between these      environments. This can seriously complicate troubleshooting and should be      avoided.</li>
<li>Mobility.      These farms aren&#8217;t terribly useful to people who are travelling or who are      working on-site with restricted outbound connectivity.</li>
</ol>
<p>All of this said, there are times when project-specific requirements may make shared farms a good option. It may be sensible to take another look for:</p>
<ul>
<li>Integration      projects.</li>
<li>Developing      with large amounts of data.</li>
<li>Projects      with heavy infrastructure requirements, such as FAST.
<ul>
<li>Perhaps       individual development environments can consume a shared FAST Service       Application?</li>
</ul>
</li>
</ul>
<p>Generally speaking, I believe these resources should be provided only in these niche cases.</p>
<h3>How is this different from IaaS?</h3>
<p>The main differences are costs and capital. Cloud-based infrastructure services are fundamentally just virtualised hosting on an enormous scale. This scale lowers costs to a point where it may be affordable to deploy individual machines per-developer. Although in my analyses I found that IaaS would be more expensive than desktop workstations over three years, this still may be compelling when cash flow issues preclude significant one-time investment or credit flows are restricted. IaaS should also be kept in mind when specific projects require significant provisioning or investment for a short term, for instance testing in a large farm.</p>
<p>While providing a single cloud-based VM per-user solves the first two issues with shared development environments, mobility is still an issue. In many places, stable mobile broadband is flaky at best. Additionally, there are key architectural differences that need to be accounted for when working in the cloud, and on a Pay-As-You-Go basis. I address all of this in <a title="SharePoint 2010 Infrastructure for Amazon EC2 Part IV: Cost Analysis" href="../index.php/sharepoint-2010-infrastructure-amazon-ec2-cost-analysis/" target="_blank">my series on SharePoint 2010 Infrastructure for Amazon EC2</a>.</p>
<h3>Which approach is best?</h3>
<p>This is a high-level overview of the design constraints that limited my choices, before I plunged into a concrete performance review of the remaining technologies.</p>
<p><span style="text-decoration: underline;">Local Systems</span><br />
In my view, Local Systems are only a better choice if the supporting IT systems and processes are very mature and the performance benefits are clear and significant. For most development scenarios, that has yet to be proven. I&#8217;ve postponed this virtual to physical performance comparison for now, as the other benefits of virtualisation have ruled this approach out for us, but I hope to revisit it in the new year.</p>
<p><span style="text-decoration: underline;">IaaS</span><br />
IaaS has two key planning considerations. The first is fairly obvious. Outbound RDP Connectivity needs to be open whenever the systems are needed. I encourage people to consider this in some detail and pilot with many types of users before diving in. The second consideration is Pay-As-You-Go. While cloud providers often have an always-on option, it’s usually pretty pricey. The alternative is to find a mechanism to limit compute usage to when it is truly being used, without introducing usability problems. Management tools or scripting may be able to answer these problems, but no one should enter in to this process thinking it will be easy. <em>This is not an easy option</em>. For a more detailed consideration of these issues, refer to <a title="SharePoint 2010 Infrastructure for Amazon EC2 Part IV: Cost Analysis" href="../index.php/sharepoint-2010-infrastructure-amazon-ec2-cost-analysis/" target="_blank">my series on EC2</a>.</p>
<p><span style="text-decoration: underline;">Type II Hypervisors</span><br />
VMWare Workstation is the most mature desktop virtualisation product on the market, although in recent years VirtualBox has been gaining share. Choosing between these technologies for my tests was never going to be easy, but I reduced it to a few factors:</p>
<ul>
<li>I’ve      never met a VirtualBox user that would complain about using VMWare but I      can’t say that proposition is reversible. There are a lot      of SharePoint practitioners with a strong preference for VMWare.</li>
<li>VMWare      Workstation has native interoperability with other VMWare assets. While VirtualBox      supports the VMDK file format, it’s not quite the same thing.</li>
<li>Both      products are fairly inexpensive in the grand scheme of things.</li>
<li>I had      stability issues with VirtualBox circa version 3.14 that left a bad taste      in my mouth.</li>
</ul>
<p>Perhaps most importantly, I felt that the performance comparison of VMWare Workstation to Hyper-V would be the most valuable decision-making information.</p>
<p><span style="text-decoration: underline;">Type I Hypervisors</span><br />
Most Type I Hypervisors would not be suitable for desktop virtualisation because they don’t have a host operating system. While it would be possible to boot a guest OS and remote in to other Virtual Machines over internal networks, this is a complicated approach and the networking requirements would be enough to put off most developers. However, as mentioned above, Hyper-V is a notable pseudo-exception to this with its parent partition.</p>
<p>We’ve been using the Hyper-V role in Windows Server 2008 R2 for development for a little over a year now. While we have successfully capitalised on many of the productivity benefits of virtualisation through this approach, there are a few issues that have never been entirely satisfactory:</p>
<ul>
<li>Despite      having the host OS, using Hyper-V is still complicated for      non-Systems people – particularly the networking.
<ul>
<li>Work-around       solutions for Wireless networking are fiddly.</li>
<li>Lack       of self-contained NAT requires the use of Internet Connection Sharing in       order to achieve network isolation, which some users struggle with.</li>
</ul>
</li>
<li>Lack of      Sleep/Hibernate is painful for many users.</li>
<li>Graphics      performance is poor – particularly with large PowerPoint/Visio files,      large images and video.</li>
<li>Audio      can also suffer during large file operations.</li>
<li>Hyper-V is not ready for laptop power schemes.</li>
</ul>
<p>Despite these niggles, we’ve continued to use Hyper-V while waiting for the <a title="Hyper-V video issues fixed by Windows Server 2008 R2 SP1 Beta?" href="../index.php/hyperv-video-issues-fixed-windows-server-2008-r2-sp1-beta/" target="_blank">forthcoming graphics/memory improvements in Windows Server 2008 R2 SP1</a>. I would class these usability problems as significant inconveniences that sometimes manifest themselves in lost productivity – particularly with new users learning our approach.</p>
<h3>New Problems in SharePoint 2010</h3>
<p>Since we properly immersed ourselves in SharePoint 2010 development, negative reports about performance started to roll in. These proved hard to validate until a few months ago when my colleagues showed me first page load times after an IISRESET in excess of one minute. This was concrete and repeatable. The problem was more severe on some systems than others, but it was clearly a problem.</p>
<p>The performance tests I’ve been conducting have been an effort to pick apart these results in Hyper-V. Was this new in SharePoint 2010 or did it amplify something that was minor before? Do we get the same problems on different virtualisation technologies, in the cloud or is this a symptom of virtualisation itself? In my next post I’ll discuss the environments, the tests and the testing process.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-development-productivity-and-virtualisation-technologies/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Dynamic Memory for Hyper-V in Windows Server 2008 R2 SP1</title>
		<link>http://tristanwatkins.com/index.php/dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1</link>
		<comments>http://tristanwatkins.com/index.php/dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 11:19:58 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Dynamic Memory]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[NUMA]]></category>
		<category><![CDATA[Overcommit]]></category>
		<category><![CDATA[SLAT]]></category>
		<category><![CDATA[SP1]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=978</guid>
		<description><![CDATA[I&#8217;ve just finished watching Virtual PC Guy&#8217;s TechEd video on the forthcoming Dynamic Memory update for Hyper-V in Windows Server 2008 R2 SP1. The beta release of the service pack is due in July. The video is fairly lengthy, at around 80 minutes, but is well worth a watch if you&#8217;re interested and find the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just finished watching <a href="http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/06/10/talking-about-dynamic-memory-the-movie.aspx">Virtual PC Guy&#8217;s TechEd video</a> on the forthcoming Dynamic Memory update for Hyper-V in Windows Server 2008 R2 SP1. The beta release of the service pack is due in July. The video is fairly lengthy, at around 80 minutes, but is well worth a watch if you&#8217;re interested and find the time. If not, here&#8217;s a round-up:<span id="more-978"></span></p>
<ul>
<li>Microsoft&#8217;s approach to Dynamic Memory is fundamentally different than VMWare&#8217;s overcommitment, in that VMWare doesn&#8217;t trust information about memory usage from within the guest, whereas Microsoft&#8217;s implementation is based around an awareness of the amount and type of memory that&#8217;s being used at all times.</li>
<li>Dynamic Memory will work by Adding/Removing memory.
<ul>
<li>Adding memory is enabled through a new synthetic memory driver.</li>
<li>Removing memory that&#8217;s not being used is done with ballooning.</li>
<li>Memory is now assigned with a few new values:
<ul>
<li>Startup memory is the amount of memory assigned to a VM, which is also the minimum memory the VM will consume (default value is 512 MB).</li>
<li>Maximum memory limits how much memory a VM can consume.</li>
<li>Priority can be assigned to specific VMs in order to make sure that they receive available memory before other lower-priority VMs.</li>
<li>A Memory Buffer can be set to reserve memory for specific VMs, for instance if they need extra memory for file caching.</li>
</ul>
</li>
</ul>
</li>
<li>Hyper-V Manager adds two new columns.
<ul>
<li>Current Memory identifies how much memory the VM is consuming.</li>
<li>Memory Availability identifies the difference between how much memory a VM has vs. wants in a +/-% figure.
<ul>
<li>When the availability goes negative, the Windows guest will start to work with the lesser amount of memory that&#8217;s now available to it (via paging, etc).</li>
<li>Negative availability will result in reduced performance, but the systems will continue to function.</li>
</ul>
</li>
</ul>
</li>
<li>Memory is now reserved for the root partition in a different way, so that dynamic memory won&#8217;t bring down the host.
<ul>
<li>This amount can be configured with a new registry key based on how the root partition is being used, for instance if it&#8217;s your desktop OS.</li>
</ul>
</li>
<li>As Dynamic Memory is used more, the chances of spanning NUMA nodes increases (on NUMA systems).
<ul>
<li>He points out that different systems have vastly different Back Channel performance, so the impact of NUMA Spanning can be negligible or drastic.</li>
<li>In SP1, NUMA Spanning can be disabled (if desired).</li>
</ul>
</li>
<li>Dynamic Memory also supports Large Pages, which are likely to become more common with virtualised Exchange/SQL.
<ul>
<li>VMWare cannot overcommit these pages.</li>
</ul>
</li>
<li>I&#8217;ve asked if there are specific processor requirements. I&#8217;ll be interested to see how/if this supports processors that don&#8217;t have SLAT.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/dynamic-memory-for-hyper-v-in-windows-server-2008-r2-sp1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building a SharePoint 2007/2010 development environment &#8211; Part II: Design</title>
		<link>http://tristanwatkins.com/index.php/building-a-sharepoint-20072010-development-environment-part-ii-design/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-a-sharepoint-20072010-development-environment-part-ii-design</link>
		<comments>http://tristanwatkins.com/index.php/building-a-sharepoint-20072010-development-environment-part-ii-design/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 01:42:56 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Consultancy and Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Code Group]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[ICS]]></category>
		<category><![CDATA[NTFS Junction Points]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Snapshots]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>
		<category><![CDATA[Workgroup]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=499</guid>
		<description><![CDATA[In the first part of this series, I introduced the pros and cons of various SharePoint development approaches and the objectives of this system redesign. In this part I will focus on design choices and conclusions, starting with the core technology. Why we’ve chosen Hyper-V There are broadly five decisive factors: performance, management features (like [...]]]></description>
			<content:encoded><![CDATA[<p>In <a title="Building a SharePoint 2007/2010 development environment - Part I:  Introduction and Objectives" href="http://tristanwatkins.com/?p=497" target="_self">the first part of this series</a>, I introduced the pros and cons of various SharePoint development approaches and the objectives of this system redesign. In this part I will focus on design choices and conclusions, starting with the core technology.</p>
<h2>Why we’ve chosen Hyper-V</h2>
<p>There are broadly five decisive factors: performance, management features (like snapshots), cost, 64-bit OS support and a full host OS (not just a virtualisation administration console):<span id="more-499"></span></p>
<ul>
<li>Hyper-V is now in its second iteration and has proved to be one of the best-performing virtualisation technologies on the market. With laptops we need to take advantage of every performance gain that we can find.</li>
<li>Perhaps most importantly, and most often overlooked, Hyper-V is free if you&#8217;re already running Windows Server 2008 or Windows Server 2008 R2as a client OS
<ul>
<li>While I work for a Microsoft Gold Partner and Hyper-V is a key part of Microsoft’s future strategy (full disclosure), I believe that most SharePoint developers will have at least an MSDN subscription and a license for a Windows Server operating system, so I believe this is compelling for most SharePoint development environments</li>
</ul>
</li>
<li>Hyper-V is one of the few virtualisation technologies that supports 64-bit guest operating systems and within that narrow range of choices, it is one of the few that allows a user to log on to a host machine and control virtual machines within it concurrently
<ul>
<li>For instance, VMware ESXi is also a high-performance Type-1 hypervisor that supports 64-bit operating systems, but there is no host machine other than a virtualisation administration console
<ul>
<li>It also has associated costs (support, management tools, etc) that we would prefer to avoid</li>
</ul>
</li>
<li>With Windows Server 2008 R2 and Hyper-V, developers can use client tools within a familiar operating system while accessing virtual development environments at the same time
<ul>
<li>This is also true of VMware Workstation, but it&#8217;s a Type-2 hypervisor and will have relatively poor performance</li>
</ul>
</li>
<li>We need to have 64-bit OS support for Windows Server 2008 R2 and SharePoint 2010 &#8211; both of which do not have 32-bit flavors</li>
</ul>
</li>
</ul>
<h2>Our approach</h2>
<h3>Workgroup development</h3>
<p>By building our virtual machines in a Workgroup, we no longer need to worry about SharePoint installation/(re)configuration difficulties, as we will import the same identical virtual machine on everyone’s Hyper-V host. This would not be possible if the virtual machine was a member of a centralised domain because the domain controller would receive chatter from many identical machines and everything would quickly start to unravel</p>
<p>Alternately, we could run <em>Active Directory Domain Services </em>within a virtual machine, but this has a performance overhead that is best avoided unless it is absolutely necessary. Additionally, developing on a domain controller is not ideal</p>
<p>While developing in a Workgroup presents challenges for profile imports, these are far from insurmountable when LDAP directories like AD LDS or SQL users can substitute in many scenarios. The only evident need is a scenario where <em>Active Directory Domain Services</em> (more than just user accounts) are required, and that&#8217;s certainly not going to be true of enough projects that it should form a part of the base build. To this end, as requirements for Domain Services are identified we will provide new builds, as they are likely to be very project-specific</p>
<h3>Networking</h3>
<h4>Internet Connection Sharing network</h4>
<p>In order to isolate identical virtual machines from each other and from network resources, I&#8217;ve created a Hyper-V internal network dedicated to receiving Internet Connection Sharing (ICS) from one of the host&#8217;s active network connections. This is an internal network like any other Hyper-V internal network &#8211; it just so happens that the host&#8217;s adapter on this network will be receiving ICS from another of the host&#8217;s connected adapters. Any connection can share to the ICS network &#8211; even if Hyper-V doesn&#8217;t natively support external networks of that type. Depending on the need, we will share to this ICS network from:</p>
<ul>
<li>Hyper-V host external connections (by default)</li>
<li>Wireless</li>
<li>Mobile broadband</li>
<li>VPN</li>
</ul>
<p>ICS also introduces a layer of NAT between the guests and the physical network, preventing inbound connections to guests over these networks. This is desirable as it is how we achieve physical network isolation, and is the reason why we&#8217;ve chosen ICS over Bridging. In the ICS Settings we enable outbound RDP, HTTP and HTTPS connections over ICS by default, although it may be useful to enable other common outbound network protocols like FTP and SMTP. Outbound connectivity from our guest virtual machines is primarily used for connecting to TFS over HTTPS.</p>
<h4>Internal network</h4>
<p>We have also created a Hyper-V Internal network to support &#8220;always on&#8221; communication between the host machine and the guest virtual machines. Guest virtual machines can also communicate with each other over this network.</p>
<p>We cannot rely solely on the ICS connection. Guest virtual machine IP addresses on the ICS network will change because they receive them via DHCP from the host&#8217;s ICS connection. This is just how ICS works. The host&#8217;s ICS adapter becomes a gateway on 192.168.137.1. Any Hyper-V guests on that network pick up DHCP from the host and are automatically assigned an address on the 192.168.137.xxx (255.255.255.0) IP range.</p>
<p>As we rely on HOSTS file entries for RDP connections from host to guest and for browsing to guest SharePoint sites from the host, we need fixed, reliable IP routing and name resolution, so we use this second network for that purpose. The hosts and guests have both been built with fixed IP addresses on this range.</p>
<p>Because this is a Hyper-V internal network, there is no risk of network collisions on these IP ranges (which are identical for all users). Internal traffic never leaves the machine.</p>
<h3>Project builds</h3>
<p>By providing self-contained environments, our technical leads and/or architects can now customise the base builds to create project-specific virtual machines that can be exported to all members of a team, reducing system/configuration inconsistencies. In practice, the build lead/architect will export the final snapshot of the project environment, which all team members will use as a starting point for project development. As the project progresses, updated builds can be released in this same manner.</p>
<h3>Clean hosts</h3>
<p>Host machines will be cleaned of development tools and data, allowing quick provisioning. Development tools will not need to be reconfigured, as they will reside in virtual machines that can be exported/imported to any host. Guest base build virtual machines will be provided with as much SharePoint configuration as possible in order to make them light on reconfiguration, disposable and re-deployable.</p>
<h3>Project resumption</h3>
<p>Project-specific exports will reduce the need for storage of multiple virtual machines &#8211; as much as possible. We will retain one virtual machine export in public storage per-project. This will reduce the amount of time involved with resurrecting environments after project completion.</p>
<h3>Optimisation</h3>
<p>Host machines are built on Windows Server 2008 R2, optimised as much as possible and reduced to the lightest weight achievable. The build will broadly include:</p>
<ul>
<li>Hyper-V R2</li>
<li>Microsoft Office applications</li>
<li>All browsers</li>
<li>No development tools (these will all live in guest machines)
<ul>
<li>The only exception to this is the Team Foundation Client which TFS administrators manually install. We have not been able to pick domain users from within a Workgroup environment</li>
</ul>
</li>
</ul>
<h3>Content provisioning</h3>
<p>By deploying a single project-specific virtual machine, we can bake content in to the project build, ensuring consistency and reducing the overhead associated with re-deploying content.</p>
<h3>Improved testing and reduced volatility through the use of snapshots</h3>
<p>By using snapshots we are able to test code and configuration changes without volatility. The benefits of this technology include:</p>
<ul>
<li>Capturing restore points at milestones in a server build</li>
<li>Capturing a stable state before attempting volatile configuration changes</li>
<li>Capturing a stable state before testing code changes</li>
<li>Creating an initial restore point after importing a virtual machine and re-configuring network adapters (when required) and making other preferential settings
<ul>
<li>This saves re-importing and reconfiguring network adapters if a machine needs to be rolled back to its initial state</li>
</ul>
</li>
<li>Exporting a virtual machine to capture a problem when trouble occurs
<ul>
<li>An exact instance of a problem can be captured and shipped out for support, without having to re-create the problem in a distinct environment. This will only apply tot self-contained environments, however</li>
</ul>
</li>
</ul>
<h3>Local source code storage on the host machine</h3>
<p>Before our pilot started we identified that storing the local copies of source code within changing snapshot states could create problems. At the same time, we found it desirable to put the development tools inside our virtual machines in order to get around remote SharePoint development difficulties and to keep the host build uncluttered. To resolve this conflict, we adopted this approach:</p>
<ul>
<li>Created a share on the host machine and granted ownership of that directory to a new user account that is used solely for this purpose</li>
<li>Created a new user account with the same name and password in the guest virtual machine</li>
<li>Mapped a drive from the guest to the host&#8217;s new share, using the internal network&#8217;s IP address and these new credentials</li>
<li>Launched Visual Studio and downloaded project source code, pointing to the newly mapped drive as the location for the local source</li>
<li>Created a new Code Group for the mapped drive to enable trust for code execution</li>
</ul>
<p>These steps are covered in more detail in the build guides that will follow in later posts. This is just an outline of the approach to extracting the local code from the snapshot state, which should be adaptable to other development systems with snapshots. For instance, we&#8217;ve found it necessary to download code to a unique location within this directory for each each user, as TFS tracks the network locations that code is checked out to. This is easy to get around, as each user just specifies a unique directory name. If this were insufficient for project requirements, this TFS behaviour could possibly be &#8220;fooled&#8221; by using NTFS junction points. We&#8217;ve not seen a need for this yet, but we&#8217;re confident that with this additional option we should be able to store local source code in this manner, and this has been validated by our project experience with Hyper-V to-date.</p>
<h3>Summary</h3>
<p>These are the high-level design choices that emerged early in the consultancy and research, which have remained largely unchanged to-date. These choices represent one design that has been validated for our needs, which has some shortcomings like any approach. Some of these issues will be covered in the final post in this series.</p>
<p>The information in this post has not covered implementation in any detail, but do not fret. In the next section I will cover the step-by-step build guide for the Hyper-V host laptop.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/building-a-sharepoint-20072010-development-environment-part-ii-design/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Monitor stroke and Ctrl+click in jump lists</title>
		<link>http://tristanwatkins.com/index.php/monitor-stroke-and-ctrlclick-in-jump-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=monitor-stroke-and-ctrlclick-in-jump-lists</link>
		<comments>http://tristanwatkins.com/index.php/monitor-stroke-and-ctrlclick-in-jump-lists/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 23:08:51 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Power]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[jump lists]]></category>
		<category><![CDATA[Monitors]]></category>
		<category><![CDATA[taskbar]]></category>
		<category><![CDATA[VDI]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=161</guid>
		<description><![CDATA[I was just looking at the Virtual PC Guy blog about the combined on/offline VDI in a forthcoming VMWare release when I noticed that he says he has six monitors on his desk at work. Six!!! I remember having three (when I also had three computers) on my desk in 2001-2002, and I&#8217;ve definitely had [...]]]></description>
			<content:encoded><![CDATA[<p>I was just looking at the <a title="Virtual PC Guy" href="http://blogs.msdn.com/virtual_pc_guy/archive/2009/09/02/vmworld-keynote-day-2.aspx" target="_blank">Virtual PC Guy blog </a>about the combined on/offline VDI in a forthcoming VMWare release when I noticed that he says he has <strong>six monitors</strong> on his desk at work. Six!!! I remember having three (when I also had three computers) on my desk in 2001-2002, and I&#8217;ve definitely had that many again while working on crazy builds, but I&#8217;m finding it hard to fathom how cool it would be to have six (let alone enough desk space to accommodate them).</p>
<p>Then it occurred to me that this must require a fairly massive amount of added power, especially when you account for the monitor envy this would induce in his colleagues. In fact, I think Virtual PC Guy&#8217;s monitors probably account for an ice shelf or two singlehandedly. <img src='http://tristanwatkins.com/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Monitor stroke and Ctrl+click in jump lists" class='wp-smiley' title="Monitor stroke and Ctrl+click in jump lists" /> </p>
<p>I&#8217;d struggle to justify it myself, especially with that new Windows 7 (and Server 2008 R2) taskbar. I&#8217;m particularly enamoured with Ctrl+click in the jump list. The jump list itself has been much discussed, and I reckon it may justify the upgrade to Windows 7 in its own right. This added functionality seals the deal though.</p>
<p>The length of the title of a document (or perhaps just a rubbish name for a document, or multiple versions of a document) sometimes makes it hard to identify a target in the jump list. If you click the taskbar icon for the application (Word, Notepad, Outlook, browser, etc) while holding down Ctrl it will cycle through the instances of that application, bringing each to the fore in turn for a peek. Think of it as ALT+TAB within a jump list. It&#8217;s an excellent way to unveil what&#8217;s hidden without introducing a requirement for seventeen screens.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/monitor-stroke-and-ctrlclick-in-jump-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

