Amazon AWS vs. RackSpace Cloud Windows 2008 I/O Test

I did a basic test trying to measure the un-tuned out-of-the-box I/O performance of Rackspace Cloud instance with the HDTune utility on a Windows Server 2008 instance. According the the RS documentation their disks are local RAID10. Then I run the same utility on 8 core extra large  EBS backed EC2 instance provided by Amazon (wanted to make sure it is not an issue due to a small EC2 instance size). According to the docs EBS should provide consistent performance of a SAN regardless of the instance type.

Here are the somehow surprising results. I was expecting, that they perform somehow equal but RS is in the range of 300 MB/s whereas the EC2 instance is below 40 MB/s.

Rackspace Cloud with Windows 2008:

AWS with Windows 2008:

Interesting enough also the CPU usage is quite different: 2% only for AWS and 31% for RS.

I welcome any comments and I am aware that the tool is meant to measure disks and not RAID or SAN volumes. Still I am surprised by the huge difference. I wonder if the difference is only due to the difference of local RAID vs. SAN. Also I wonder how is the SAN attached then, since the SAN performance is still worse than my laptop disk.

RackspaceCloud Support for MultiCast?

A WebLogic server cluster used to use IP multicast (MC) for cluster heartbeats and global JNDI updates. Today there is another option with Unicast. Still large cluster deployments benefit from multicast. Often using MC is problematic, there is a whole list of possible problems with Windows, routers and firewalls swallow the MC packets (by design, unless you configure them otherwise) and on Unix it could be disabled for the NIC. Apart from WLS clustering it is used by products such as TIBCO EMS for failover.

I had an excellent discussion with the support team of RackspaceCloud about using IP multicast. “There is no obvious reason why it shouldn’t work“, they told me, but at the end there was some doubt left. Since I know AWS doesn’t support MC on EC2 I decided to give it a try.

How to reproduce

  1. Launch two instance in RSC. Should take some 3 minutes. 1 went for a 1GB Win2008 because I wanted to check for poetential Win problems. Note: Currently you cannot create an image from a Windows server, that’s why I started two images from the very beginning, otherwise it makes more sense to prepare one and then clone it.
  2. I downloaded Mozilla FireFox because InternetExplorer drives my crazy with all its security fuss when doing a simple proof of concept.
  3. Download and install WLS10.3.2
  4. I turned off the Win firewall just in case. I don’t wanted the firewall to block the MC packets.
  5. I shared my WebLogic installation directory and copied it over. Yes, you can do that in the RS cloud and at least for a POC it saves a lot of time.
  6. Open a cmd prompt cd to server\bin and run the setWLSEnv to set the environment:

    C:\Oracle\Middleware\wlserver_10.3\server\bin>setWLSEnv.cmd

  7. Repeat step 2 to 6 on the other instance, then run the MC test utility on both sides using a different name with -N, e.g use -N Tom on the other side:
    C:\Oracle\Middleware\wlserver_10.3\server\bin>java utils.MulticastTest -n
    Frank -A 237.0.0.1 -P 8001
    ***** WARNING ***** WARNING ***** WARNING *****
    Do NOT use the same multicast address as a running WLS cluster.
    Starting test.  Hit any key to abort
    Using multicast address 237.0.0.1:8001
    Will send messages under the name Frank every 2 seconds
    Will print warning every 600 seconds if no messages are received
     I (Frank) sent message num 1
    Received message 2 from Frank
     I (Frank) sent message num 2
    Received message 3 from Frank
     I (Frank) sent message num 3
    Received message 4 from Frank
     I (Frank) sent message num 4
  8. If MC was working correctly you’d expect to see your own messages as well as the messages from the remote side, but we just seeing the local ones.

Conclusion: there is no support for Multicast between two instances in the RackspaceCloud. The RSC support team officially confirmed that later as well :” Unfortunately, multicasting is disabled on our hypervisors to preserve network sanity. We apologize for the inconvenience.

So what?

Note: Oracle states MC is not working for AWS either and the preferred solution is Unicast (which is acceptable IMHO).

How to Connect to the Cloud

Quite often I chat with customers about cloud computing and tell them they could have a server running in the cloud for as little as 1 cent per hour.  Then their next question is: “Well, if it is running in the cloud, how can I access it then?“.

There seems to be a lot of confusion about it. Just because your server is running in the cloud, doesn’t mean it is not tangible. So the short answer is: “Use ssh and connect to it.“. Your server is not hidden in a nebula – it’s fully connected to the internet (at a fantastic bandwidth, a WebLogic 10.3.2 package download is completed in 4 mins at 3.8 MB/s) . For Amazon’s AWS you typically have to provide a X.509 certificate and RackspaceCloud uses password for root login with ssh.

Windows Options

Even if your managing the cloud from your Windows desktop you are not out of luck connecting to a UNIX server in the cloud, there are a couple of options:

  • There a free version of VNC for private and commercial use which is called TightVNC, see http://www.tightvnc.com.
  • NX is a desktop virtualization solution from a company called NoMachine. NoMachine designed the NX libraries to provide a self-tuning protocol with compression and reduced round-trips for X11 even over slow connections. Have a look at their homepage under http://www.nomachine.com. They provide a free version which is limited to two connections only.
  • FreeNX was created in 2004 as the first complete free and GPLed server implementation of NX, see http://freenx.berlios.de.
  • Cygwin is another solution, see http://www.cygwin.com. It provides a UNIX environment for Windows and comes with a X-server that can display your X based applications on your UNIX host. The software was written by Cygnus Solutions which now belongs to Red Hat.