Building a SharePoint 2007/2010 development environment – Part III: Host image build and performance benchmarks

Having agreed the project objectives and designed the system, I turned my attention to the Hyper-V host image build. This is a high-level build guide with start-up time and baseline memory consumption benchmarks at key milestones. These benchmark figures were taken from the Windows Server 2008 R2 Release Candidate build and are admittedly a bit imprecise. However, they do provide an overall indication of system performance as things were added to and removed from the installation. Although I do not have precise figures on RTM improvements, I spot-checked a few of these benchmarks when I rebuilt the system on RTM. Start-up times improved slightly at each milestone. In fact, the final benchmarks came in at 100MB less idle memory used in the RTM release.

Capturing a virtual image

For the pilot and the benchmark figures listed below, the image was built on hardware and captured with Windows Deployment Services (WDS). Since then, we’ve rebuilt the system as a Hyper-V guest and we’re capturing the image by PXE booting the SysPrep’d virtual machine from a legacy network adapter. We take a snapshot before SysPrep as a rollback point for future updates to the image. Virtual PC Guy explains this approach in more detail in his geeking out with WDS post post, which I’ve linked here previously. I’ll also be discussing the Windows Server 2008 R2 WDS build and the new version of WAIK in more detail in the next post in this series.

System specification

Dell XPS M1330

  • Intel Core 2 Duo T8100 2.1 GHz
  • 4.00 GB 667 MHz DDR2 SDRAM
  • 7200 RPM 320GB SATA HDD
  • nVidia GeForce 8400M GS graphics card
  • Windows Server 2008 R2 Build 7100 (RC)

Host build

Initial OS optimisations

I installed the system from a USB pen drive (I had to try this given how easy it is now). On first login I started optimising the system as follows:

  • Write-caching is enabled in the physical hard disk hardware policy
    • Buffer flushing is turned off
    • We are comfortable with this risk since laptops run from battery or with battery backup at all times
  • IPv6 is turned off on host network adapters per SharePoint’s Hyper-V performance and capacity guidance
    • This is optional, and should not be turned off if you have IPv6 requirements
  • IE Enhanced Security Configuration (ESC) is turned off for administrators
    • Again, depending on security requirements, this may not be acceptable
  • The following services are disabled (all optional):
    • Certificate Propagation
    • Desktop Window Manager Session Manager
    • IP Helper
      • Leave this enabled if using IPv6
    • Remote Registry
    • Windows Remote Management (WS-Management)

For more information on Windows service hardening, see Black Viper’s site. This list of services could possibly be extended, but at the time of testing service hardening information for the new operating system was harder to come by than it is presently. It should be noted that the Windows Server model of turning services on if needed means that a new system is already considerably harder than a new Windows 7 system.

Next I booted the system, logged in and let it rest for at least fifteen minutes to capture the idle memory benchmark.

Benchmarks

Memory benchmark: as low as 525 MB idle.

Start up time to logon: 37 seconds.

Time to desktop: 52 seconds.

BIOS settings

I installed BIOS A15 (includes alleged performance improvements) and made the following BIOS modifications:

  • NIC settings = Enabled with PXE (required for image capture)
  • HDD Acoustic Mode = Performance
  • Virtualization = Enabled
  • Internal Cellular = Off
  • Wireless Switch = Wi-Fi + BT

Note: if you have internal cellular and use it, don’t turn it off in the BIOS and adjust the last setting accordingly. Also note, BIOS A14+ is required if exceeding 4GB RAM.

Next I booted the system, logged in and let it rest for at least fifteen minutes to capture the idle memory benchmark.

Benchmarks

Memory benchmark: as low as 525 MB idle.

Start up time to logon: 37 seconds.

Time to desktop: 48 seconds.

Adding drivers and features

Drivers

  • SigmaTel Audio driver
  • UPEK driver for TouchChip fingerprint Coprocessor (WBF advanced mode)
  • nVidia GeForce 8400M GS driver
    • Note: on one occasion this driver install forced a reboot despite requesting that it be postponed – be careful
  • Intel and Ricoh chipset drivers (Intel may not be necessary)
  • There is still one device without a driver:
    • BCM2045 (Bluetooth)
    • This is because Windows Server 2008+ does not have the Bluetooth stack

Features

  • Enabled the desktop experience and WLAN featurs
    • Requires .NET Framework 3.5 and Ink and Handwriting support

Next I rebooted the system to complete the driver installations. On reboot, I set the Windows Audio service to Automatic and started it up. I tested Audio and the wireless network adapter.

Install Windows Search

I chose not to index any drives. This is primarily installed so that Outlook Search can be turned on with little hassle if desired

Other OS modifications

Disabled Shutdown Event Tracker, as developers seem to hate it and it isn’t really necessary on a laptop

Following these changes I rebooted, logged in again and let the system rest for an extended period so that I could capture the next idle memory benchmark.

Benchmarks

Memory benchmark: as low as 622 MB idle.

Start up time to logon: 50 seconds.

Time to desktop: 1 minuteĀ  12 seconds.

Installing Microsoft Office client tools

  • Office 2007 (defaults, including InfoPath and OneNote)
  • Visio 2007
  • Office Communicator 2007 R2
  • Patched current

Benchmark with Office turned off and Communicator closed

Memory benchmark: as low as 708 MB idle when first launched, idling at closer to 760 MB after a couple of minutes. Proper benchmarks after lengthy idle were not captured here unfortunately. The next set are more useful/reliable.

Start up time to logon: 56 seconds.

Time to desktop: 1 minute 18 seconds.

Installing other client software

I installed the latest versions of all majors browsers, JRE 6, PDF X-Change Reader, Royal TS, browser plugins like Flash/Silverlight and browser debugging tools like Fiddler and Firebug. Some users of the build have specific license requirements that are accommodated manually after the system is deployed.

Benchmarks

Memory benchmark: as low as 740 MB idle.

Start up time to logon: 56 seconds.

Time to desktop: 1 minute 20 seconds.

Summary

That’s it! We met our stated goal to keep the build as lightweight and uncluttered as possible in order to improve performance and reduce the support burden of laptop rebuilds. This system is not much more than a hypervisor, office client applications, web debugging tools and browsers. Keep in mind that I have been building an image that will be captured by WDS. A number of settings will be applied with an unattend file and some additional configuration will be taken care of by script, or manually post-deployment.

Acute observers will note that I haven’t actually added the Hyper-V role. That’s because Hyper-V doesn’t get along well with SysPrep. We account for that with WAIK and scripting, as revealed in more detail in my next post.

One thought on “Building a SharePoint 2007/2010 development environment – Part III: Host image build and performance benchmarks”

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.