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. Continue reading “Building a SharePoint 2007/2010 development environment — Part III: Host image build and performance benchmarks”

Disabling IPv6 on Server Core and Hyper-V Server

Note: this original KB article from which this guidance was taken has now been removed. Please see the comments below for more information.

I recently posted about the Conflicting Microsoft guidance on IPv6. While you can remove IPv6 from a NIC on a full installation of Windows Server 2008 by un-ticking the IPv6 box in the NIC properties (satisfying the Hyper-V performance guidance), you may have noticed that there’s no obvious way to disable IPv6 in server core or Hyper-V Server. If you looked in to it in a bit more detail you may have noticed a registry “fix” for this. Personally I’m always a bit skeptical of registry fixes until I see Microsoft recommending them, but now Tonyso has posted a link to a Microsoft KB article that endorses this approach (when necessary):

To completely disable IPv6 on a Windows Server 2008-based computer yourself, follow these steps:

  1. Open Registry Editor.
  2. Locate the following registry subkey:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6Parameters
  3. In the details pane, click New, and then click DWORD (32-bit) Value.
  4. Type DisabledComponents, and then press ENTER.
  5. Double-click DisabledComponents, and then type 0xffffffff in Hexadecimal or 4294967295 in Decimal.Note The 0xffffffff value or the 4294967295 value disables all IPv6 components except for the IPv6 loopback interface.

A reboot is required before the change will take effect.

Conflicting guidance on IPv6

I recently noticed that Cable Guy is saying “don’t disable IPv6“. While I broadly agree with the approach and the reasons he suggests not to, I’ve not yet seen any down-side to disabling it, and I know we aren’t using the IPv6 technologies that Cable Guy mentions. But why did I turn it off? SharePoint’s Hyper-V performance and capacity guidance suggests that performance is improved by disabling it.

Use IPv4 as the network protocol for Hyper-V guests. During the tests, better performance was observed when IPv4 was used exclusively. IPv6 was disabled on each network card for both the Hyper-V host and its guest VMs.”

In this case, I’m going with the SharePoint guys, especially when there’s a quantified test versus a theory, especially when it simplifies troubleshooting and not everyone is IPv6-fluent yet.