Entries Tagged 'Benchmarking' ↓

First benchmarks with 10 GigE and VMware

Here are some quick performance results from VMware servers with 10 Gigabit Ethernet cards (from Sun with an Intel 82598 controller. The servers were Sun X4150 with Dual-Quadcore processors.

 

Network tests

I fired up two test VMs with Suse Linux Enterprise Desktop 10 (64 bit) and used netperf to measure TCP bandwidth between them (the exact command used was netperf -H <target ip> -t TCP_STREAM -C -c -l 60 -f M).

VM to VM (both VMs placed on the same physical server): 230 MB/s

VM to VM (each VM on a different physical server using 10 GigE through a single switch): 250 MB/s

VM to a physical server with a 10 GigE card: 540 MB/s

Physical server to VM: 290 MB/s

Looks like there is a bottleneck somewhere on the receive side but the performance is sufficient even for the most demanding (business) applications. Remember: this is out-of-the-box performance, no tuning.

 

Disk performance to a NFS based datastore on a Netapp

Here I simple used IOzone in the Linux-VM to write and read several GBs of data to a virtual disk (formatted with XFS). The virtual disk was placed on a NFS datastore (Netapp 6070 with Ontap 7.2.4, 2×16 disk FC aggregate).

Write: 160 MB/s

Read: 160 MB/s (200 MB/s from filer cache)

I think these numbers can be improved as neither the filer nor the server were fully utilized, so I expect more VMs will bring additional performance. Perhaps the receive-side problem mentioned above also plays a role.

Summary

Generally this is exactly what we expected: to be able to provide good performance to many virtual servers which do network and/or disk-I/O only periodically without overprovisioning the whole infrastructure.

At the moment there is exactly one dual-port 10 GigE card in every VMware server and there are two physical connections to two different switches - a much cleaner setup than the 12 (!) GigE interfaces per server we had before :-)

 

How do your numbers look like? Comments welcome (moderated). 

VMware on NFS datastores: sequential performance

We recently tested sequential performance of a virtual disk in an ESX virtual machine when the datastore is placed on NFS. The ESX servers have a separate VMKernel Gigabit Ethernet interface which is used exclusively for NFS. On the other side a Netapp FAS 6070 attached using 10 GigE exports a volume placed on a 2×16 disk (300 GB 10k FC) RAID DP aggregate.

The server is physically a Sun 4150 with additional GigE interfaces. The VM has been configured with 4 virtual CPUs, a 25 GB virtual disk (placed on the NFS datastore) and an OpenSuse 10.3 template.

On the virtual disk I created an XFS file system and then tested with iozone (iozone -t1 -i0 -i1 -r1m -s10g). Results are pretty good:

write:   106970 kB/s
rewrite: 108379 kB/s
read:    103768 kB/s
reread:  109418 kB/s

In this setup the single GigE network connection of the ESX host is the limit but I’m quite satisfied with these numbers. There are two knobs I used to tune performance in this benchmark:

options nfs.tcp.recvwindowsize 64240

on the filer increases writes from 75 to 100 MB/s (Netapp’s defaults seems pretty low). On the Linux VM side you can turn up readahead using /sys/block/<your virtual disk device>/queue/read_ahead_kb (I used 2048 kB instead of the default 128 kB). This will help alot with the read numbers.

I’m really looking forward to Neterions X3100 10 GigE cards - we’ll put a couple of them into our VMWare servers and then the current bottleneck (GigE interface) will go away. The simplicity of VMware with NFS datastores is really amazing (particularly for larger numbers of VMware servers) and I didn’t even tell you about Netapps ASIS deduplication yet :-)

Edit: there is also a post on NFS performance inside a virtual machine

What numbers do you see in your environment? Comments welcome.