WiMax in Milton Keynes – not at that price, thank you!

Last year, I wrote a post about free Wi-Fi provision in central Milton Keynes. I wasn’t very impressed (although I’d like to see the service prosper) but have to admit that I haven’t tried it since. In the same post, I also mentioned that there was a WiMax trial planned for Milton Keynes and a few weeks back, after hearing nothing for over a year, I received an e-mail to tell me that it is now available in my area.

This sounded good – I have “up to 8Mbps” ADSL at home and my router tells me that I get about 7.2Mbps downstream with about 448Kbps upstream, but if I could get good upstream bandwidth too then that would be an advantage. Then I noticed two things that put me off.

Firstly, the service is provided by Connect MK – who claim to be:

“A Council company created to provide better broadband services for Milton Keynes”

WTF! Milton Keynes Council appears to me to be incapable of managing anything of any substance (of course, that is purely a personal opinion, based on my experience as a Council Tax payer). In the small town where I live (under the control of the unitary authority that is Milton Keynes Council) we have: a secondary school that opened 8 months late and £3m over budget [source: political propaganda for the upcoming local elections], with design changes that mean it stands out like a blot on our (pleasant) landscape; a backlog of road repairs; short-sighted planning decisions with councillors supporting further expansion without any of the supporting infrastructure (including the grid road system that has worked so well for the last 30 years in urban Milton Keynes); etc., etc. (my list could go on and on, but let’s stop here – you get the idea). Now the same council wants to provide network infrastructure services. It’s not 1 April is it? Not according to my calendar anyway.

Secondly, the price: a 1Mbps downstream/512Kbps upstream package with a 10GB download limit is advertised for £20 a month; 2Mbps down and 512Kbps up with a 20GB allowance is £25; but 2Mbps down and 1Mbps up with a 40GB allowance is a staggering £50 a month! Are they joking?

I pay around £30 for my small business ADSL service and I have no issues with bandwidth allowances (my current ISP operates a system of peak and off-peak usage, and the off-peak usage really is unlimited, with peak usage rates depending upon the tariff). If I wanted a residential service I could pay a lot less than that. For that matter, I can get HSPA mobile broadband Internet for £15 a month on an £18 month contract.

As it happens, Connect MK is a reseller for the infrastructure provided by FREEDOM4 (formerly Pipex Communications). Interestingly, despite having supplied my home address and postcode details to Pipex and Connect MK having e-mailed me to say “Great news – You can now receive a WiMAX Broadband Service”, neither the current FREEDOM4 coverage map nor the coverage checker on their website indicates that I can receive the service – at this time it only seems to cover urban areas of Milton Keynes. It’s not a very good indictment of Connect MK’s ability to provide a reliable service when they haven’t even worked out that I live 10 miles outside their coverage area.

Regardless of the network coverage, I fail to see who would even consider the Connect MK WiMax service as an alternative to ADSL or cable. At the prices quoted, I can’t imagine much of Milton Keynes’ population getting connected with Connect MK.

Caching Microsoft updates with ISA Server

I used to use WSUS to update the machines on my home network but after a botched server upgrade, it all went screwy and I didn’t really want to have to pull all the updates down over my ADSL connection again (would probably blow away my month’s worth of “fair usage”). In any case all I was doing was blindly approving updates for installation so I might as well use the Microsoft Update servers instead.

The only downside of using the Microsoft Update servers to update several computers is that there is a lot of duplication in the network traffic. That’s why ISA Server 2006 includes a cache rule that enables caching of Microsoft updates using the Background Intelligent Transfer Service (BITS). For those who aren’t aware, BITS allows the transfer of large volumes of data without degrading network performance as it transfers the data in small chunks to utilise unused bandwidth as it becomes available and reassembles the data at the destination. The BITS feature is not available for any other ISA cache rule but the Microsoft Update Cache Rule is installed by default and all I needed to do was enable caching.

After setting up the cache rules and updating one of my servers, I wanted to see that the cache was being used. I’ve previously mentioned the cachedir.exe tool that can be used to examine ISA Server caches and I downloaded the latest version from Microsoft’s ISA Server 2006 tools page. After extracting the tool, I ran it and was presented with an error:

CACHEDIR.exe – Unable to Locate Component
This application has failed to start because msfpc.DLL was not found. Re-installing the application may fix the problem.

Then I remembered that cachedir.exe needs to be copied to the ISA Server installation folder (on my system that is %programfiles%\Microsoft ISA Server) – after moving the file to the correct folder, it fired up as expected. Just remember that this utility can only display the cache contents that have been written to disk. To flush the memory cache to disk you will need to restart the Microsoft Firewall service and re-run cachedir.exe to view the contents.

Comparing internal and USB-attached hard disk performance in a notebook PC

Recently, I was in a meeting with a potential business partner and their software was performing more slowly than they had expected in the virtual environment on my notebook PC. The application was using a SQL Server 2005 Express Edition database and SQL Server is not normally a good candidate for virtualisation but I was prepared to accept the performance hit as I do not want any traces of the product to remain on my PC once the evaluation is over.

Basic inspection using Task Manager showed that neither the virtual nor the physical system was stressed from a memory or CPU perspective but the disk access light was on continuously, suggesting that the application was IO-bound (as might be expected with a database-driven application). As I was also running low on physical disk space, I considered whether moving the VM to an external disk would improve performance.

On the face of it, spreading IO across disk spindles should improve performance but with SATA hard disk interfaces providing a theoretical data transfer rate of 1.5-3.0Gbps and USB 2.0 support at 480Mbps, my external (USB-attached) drive is, on paper at least, likely to result in reduced IO when compared with the internal disk. That’s not the whole story though – once you factor in the consideration that standard notebook hard drives are slow (4200 or 5400RPM), this becomes less of a concern as the theoretical throughput of the disk controller suddenly looks far less attainable (my primary hard drive maxes out at 600Mbps). Then consider that actual hard disk performance under Windows is determined not only by the speed of the drive but also by factors such as the motherboard chipset, UDMA/PIO mode, RAID configuration, CPU speed, RAM size and even the quality of the drivers and it’s far from straightforward.

I decided to take a deeper look into this. I should caveat this with a note that performance testing is not my forte but I armed myself with a couple of utilities that are free for non-commercial use – Disk Thruput Tester (DiskTT.exe) and HD Tune.

Both disks were attached to the same PC, a Fujitsu-Siemens S7210 with a 2.2GHz Intel Mobile Core 2 Duo (Merom) CPU, 4GB RAM and two 2.5″ SATA hard disks but the internal disk was a Western Digital Scorpio WD1200BEVS-22USTO whilst the external was a Fujitsu MHY2120BH in a Freecom ToughDrive enclosure.

My (admittedly basic) testing revealed that although the USB device was a little slower on sequential reads, and quite a bit slower on sequential writes, the random access figure was very similar:

Internal (SATA) disk External (USB) disk
Sequential writes 25.1MBps 22.1MBps
Sequential reads 607.7MBps 570.8MBps
Random access 729.3MBps 721.6MBps

Testing was performed using a 1024MB file, in 1024 chunks and the cache was flushed after writing. No work was performed on the PC during testing (background processes only). Subsequent re-runs produced similar test results.

Disk throughput test results for internal diskDisk throughput test results for external (USB-attached) disk

Something doesn’t quite stack up here though. My drive is supposed to max out at 600Mbps (not MBps) so I put the strange results down to running a 32-bit application on 64-bit Windows and ran a different test using HD Tune. This gave some interesting results too:

Internal (SATA) disk External (USB) disk
Minimum transfer rate 19.5MBps 18.1MBps
Maximum transfer rate 52.3MBps 30.6MBps
Average transfer rate 40.3MBps 27.6MBps
Access time 17.0ms 17.7ms
Burst rate 58.9MBps 24.5MBps
CPU utilisation 13.2% 14.3%

Based on these figures, the USB-attached disk is slower than the internal disk but what I found interesting was the graph that HD Tune produced – the USB-attached disk was producing more-or-less consistent results across the whole drive whereas the internal disk tailed off considerably through the test.

Disk performance test results for internal disk
Disk performance test results for external (USB-attached) disk

There’s a huge difference between benchmark testing and practical use though – I needed to know if the USB disk was still slower than the internal one when it ran with a real workload. I don’t have any sophisticated load testing tools (or experience) so I decided to use the reliability and performance (performance monitor) capabilities in Windows Server 2008 to measure the performance of two identical virtual machines, each running on a different disk.

Brent Ozar has written a good article on using perfmon for SQL performance testing and, whilst my application is running on SQL Server (so the article may help me find bottlenecks if I’m still having issues later), by now I was more interested in the effect of moving the virtual machine between disks. It did suggest some useful counters to use though:

  • Memory – Available MBytes
  • Paging File – % Usage
  • Physical Disk – % Disk Time
  • Physical Disk – Avg. Disk Queue Length
  • Physical Disk – Avg. Disk sec/Read
  • Physical Disk – Avg. Disk sec/Write
  • Physical Disk – Disk Reads/sec
  • Physical Disk – Disk Writes/sec
  • Processor – % Processor Time
  • System – Processor Queue Length

I set this up to monitor both my internal and external disks, and to log to a third external disk so as to minimise the impact of the logging on the test.

Starting from the same snapshot, I ran the VM on the external disk and monitored the performance as I started the VM, waited for the Windows Vista Welcome screen and then shut it down again. I then repeated the test with another copy of the same VM, from the same snapshot, but running on the internal disk.

Sadly, when I opened the performance monitor file that the data collector had created, the disk counters had not been recorded (which was disappointing) but I did notice that the test had run for 4 minutes and 44 seconds on the internal disk and only taken 3 minutes and 58 seconds on the external one, suggesting that the external disk was actually faster in practice.

I’ll admit that this testing is hardly scientific – I did say that performance testing is not my forte. Ideally I’d research this further and I’ve already spent more time on this than I intended to but, on the face of it, using the slower USB-attached hard disk still seems to improve VM performance because the disk is dedicated to that VM and not being shared with the operating system.

I’d be interested to hear other people’s comments and experience in this area.

Waiting for Windows 7: is Vista really that bad?

I was at an event last week where Gareth Hall, UK Product Manager for Windows Server 2008, commented on the product’s fantastic press reviews, with even Jon Honeyball (who it seems is well known for his less-than-complimentary response to Microsoft’s output of late) commenting that:

“Server 2008 excels in just about every area [… and] is certainly ready for prime time. There’s no need to wait for Service Pack 1”

[Jon Honeyball, PC Pro, February 2008]

It seems that, wherever you look, Windows Server 2008 is almost universally acclaimed. And rightly so – I believe that it is a fantastic operating system release (let’s face it, Windows Server 2003 and R2 were very good too) and is packed full of features that have the potential to add significant value to solutions.

So, tell me, why are the same journalists who think Windows Server 2008 is great, still berating Windows Vista – the client version of the same operating system codebase? Sure, Vista is for a different market, Vista has different features, and it’s only fair to say that Vista took some time to bed down, but after more than a year of continuous updates and a major service pack is it really that bad?

This week, IT Week is running a leader on the “migration muddle” that organisations face. Should IT Manager’s skip Vista and go straight to Windows 7, with Bill Gates allegedly saying that “sometime in the next year we will have a new version [of Windows]”?

The short answer is “No!”. My advice is either to move to Vista now and save the pain of trying to jump two or three releases to Windows 7 later, or accept a more pragmatic approach of managed diversity.

The trouble is that Microsoft has muddied the water by dropping hints about what the future may hold. What was once arguably the world’s biggest and best marketing machine seems to have lost its way recently – either maintain the silence and keep us guessing what Windows 7 means, or open up and let us decide whether it’s worth the wait. With the current situation, IT Managers are confused: the press are, by and large, critical of Vista; consumers and early adopters have complained of poor device support (not Microsoft’s fault); and even Microsoft seems ready to forget about pushing their current client operating system and move on to the next big thing.

In all my roles – as a consultant, an infrastructure architect, a Microsoft partner and of course as a blogger, I’d love to know more about Windows 7 – and Microsoft does need to be more transparent if it expects customers to make a decision. Instead, they seem to be hoping that hints of something new that’s not Vista will help to sell Enterprise Agreements (complete with Software Assurance) to corporates.

Moving virtual machines between disks in Hyper-V

The trouble with running Microsoft Hyper-V on a notebook PC is that notebook PCs typically don’t have large hard disks. Add a few snapshots and a virtual machine (VM) can quickly run into tens or even hundreds of gigabytes and that meant that I needed to move my VMs onto an external hard disk.

In theory at last, there should also be a performance increase by moving the VMs off the system disk and onto a separate spindle; however that’s not straightforward on a notebook PC as second disks will (normally) be external (and therefore using a slower USB 2.0 interface, rather than the internal SATA controller) – anyway, in my case, disk space was a more important than any potential performance hit.

Moving VMs around under Hyper-V is not as straightforward as in Virtual Server; however there is an export function in Hyper-V Manager that allowed me to export a VM to my external hard disk, complete with snapshots (Ken Schaefer describes the equivalent manual process for moving a Hyper-V VM on his blog).

The exported VM is still not ready to run though – it needs to be imported again but the import operation is faster as it doesn’t involve copying the .VHD file (and any associated snapshots) to a new location. After checking that the newly imported VM (with disk and snapshot storage on the external drive) would fire up, I deleted the original version. Or, more accurately, I would have done if I hadn’t run out of disk space in the meantime (Windows Server 2008 doesn’t like it when you leave it with only a few MB of free space).

Deleting VMs is normally straightforward, but my machine got stuck half way through the “destroy” process (due to the lack of hard disk space upsetting my system’s stability) and I failed to recover from this, so I manually deleted the files and restarted. At this point, Hyper-V manager thought that the original VM was still present but any attempt to modify VM settings resulted in an error (not surprising as I’d deleted the virtual machine’s configuration file and the virtual hard disks). What I hadn’t removed though was the shortcut (symbolic link) from the to my external hard disk. Deleting this file from %systemdrive%\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines and refreshing Hyper-V Manager left me with a clean management console again.

Accessing USB devices from within Microsoft virtual machines

In my Hyper-V presentation on Wednesday, I said that USB support was one of the things that is missing from Hyper-V. That is correct – i.e. there is no ability to add USB devices as virtual hardware – but, in a conversation yesterday, Clive Watson pointed out that if you connect to a virtual machine using RDP, there is the ability to access local resources – including hard drives and smart card readers.

The way to do this is to use the Local Resources tab in the Remote Desktop Connection client options, where local devices and resources may be specified for connection:

Accessing local resources in the RDP client

If you click more, there is the option to select smart cards, serial ports, drives and supported plug and play devices (i.e. those that support redirection). In this case, I selected the USB hard drive that was currently plugged into my computer:

Accessing local resources in the RDP client

And when I connect to the virtual machine using RDP, it is listed the drive as driveletter on localmachine:

Accessing local resources via RDP - as seen on the remote machine

This is really a Terminal Services (presentation virtualisation) feature – rather than something in Hyper-V – and so it is true to say that there is no USB device support in Hyper-V for other access methods (e.g. from a virtual machine console) and that the RDP connection method is a workaround for occasional access. Microsoft see USB support as a desktop virtualisation feature and the only way that will change is if they see enough customer feedback to tell them that it’s something we need on servers too.

PowerShell running on server core

Aaron Parker saw my presentation on Windows Server 2008 server core earlier this week and it got him thinking…

I said that Microsoft don’t see server core as an application platform but there’s no real reason why not as long as the applications you want to run don’t have dependencies on components that don’t exist in server core. I even suggested that, with a reduced surface attack area and less patching required, server core is a great platform for those applications that don’t rely on the shell, Internet Explorer, the .NET Framework or anything else that has been removed.

I also mentioned that PowerShell doesn’t run on server core because it relies on the .NET Framework.

So Aaron used SoftGrid to repackage the Microsoft .NET Framework and Windows PowerShell for server core – and it worked! He says there are a few errors, but as a proof of concept it’s a great idea – and a good demonstration of how flexible application virtualisation can be.

Adding Windows Live Messenger presence to a web page

For a while at the end of 2007, this blog had a feature where it showed presence information for me (with the ability to send me an IM) based on my status in Windows Live Messenger. I’ve removed that functionality now because: a) I find IM to be a distraction and so am very rarely logged in; b) I use a private IM system using OCS when I’m working; and c) I use a variety of IM systems (and three different Windows Live logins), so my presence on any one Windows Live Messenger account is not really relevant.

Even so, if this is something that might be useful, there is a page on Windows Live to generate the necessary HTML (I found this information from Michael Niehaus’ blog).

PowerPoint 2007’s Presenter View is a fantastic tool

Today has been a big day for me. I’ve given presentations before but typically to colleagues, or occasionally to customers. Never to a large group of technical people – some of whom will also be extremely knowledgeable on my chosen topics (perhaps using a competitive product) – and never at Microsoft’s UK Campus in Reading, where I have attended many presentations, but never presented.

I really enjoyed myself at today’s Microsoft UK user groups community day – and if you were in one of my sessions I hope you found it useful and thank you for your support.

Because this was such a big deal for me (and because I didn’t know who would be watching), I put a lot of effort into my preparation. I had virtual machine snapshots and demonstration screen grabs (just in case the demo gods decided that today was not my day) as well as full speaker notes (with printed copies just in case). I also used the presenter view in PowerPoint for the first time ever and have to say it is fantastic.

PowerPoint 2007 Presenter Mode

The notebook PC I was using doesn’t have an high-powered graphics adapter – just an Intel GMA 965 chipset – but the standard Intel Graphics Media Accelerator for mobile driver helped me configure multiple monitors (1280×800 on the notebook display and 1024×768 on the projector – both in 32-bit colour). After this, I switched PowerPoint into presenter view and the audience could see the slides (or whatever I was demonstrating on the projector), whilst I could view the current slide, my speaker notes (at whatever text size I wanted), thumbnails of upcoming and previous slides, a clock and an elapsed time counter (there’s full details on delivering a presentation on two monitors by using presenter view in the Microsoft Office 2007 online help).

Trying not to bore the audience with “death by PowerPoint” is one thing, managing to accurately type commands in demos is another and only experience will teach me how to manage audience questions to stay on track but the PowerPoint presenter view really helped me out today – I’ll be using it a lot more regularly now I know how useful it is.

My slides from the Microsoft UK user groups community day

I’m presenting two sessions at the Microsoft UK user groups community day today on behalf of the Windows Server Team.

The first is an introduction to Hyper-V and the second will look at server core installations of Windows Server 2008. I’ve included full speaker notes in the slide decks, as well as some additional material that I won’t have time to present and screen grabs from my demos. Both decks are available on my Windows Live SkyDrive, along with a couple of videos I recorded of the Hyper-V installation process: