Hello!
Please allow me to outline an odd performance issue I'm witnessing on a newly set up server virtualization for my working group at university.
We're using one PC (Core i5 on Intel mainboard) as a VMWare ESXi 5 host. That PC has one 500 GB HDD, only for booting and to store CD images.
A second PC (AMD platform) is used as a storage machine for VM HDD files. It's running Ubuntu Server 10.04 64-bit.
Both PCs are equipped with two Intel 82541PI gigabit ethernet NICs. One of them (eth0) is used to connect to the "public network", the other (eth1) is used for a dedicated, direct cable connection between the two PCs.
I have set up a software RAID-1 (mdadm) with 2 HDDs (2 TB each) on the storage PC and exported it via NFS.
On the host PC, I'm using that NFS mount as a datastore. Jumbo frames (MTU 9000) are configured for the eth1 NICs.
Now comes the odd part. ESXi achieves only about 200 MBit network throughput on the NFS direct connection to the storage PC. I'm supposing that should be a bit more...
I can rule out the NIC itself, or the storage PC, as culprits:
- When I transfer files from the outside to VMs running on the host, and those get cached in the VM's memory, I see 600+ MBit on the eth0 NIC. But the transferred data is stored at only ~200 MBit over eth1 to the NFS datastore.
- Furthermore, when I transfer files directly to the storage PC from a physical machine, I also get around 600 MBit throughput.
So it seems that only when used for a datastore, the NFS / Intel NIC performs badly. Mmh, how come? And what can I do to improve the throughput?
I tried the following, to no effect:
- Use iSCSI instead of NFS
- Use ESXi 4.1 instead of 5
- Turn off jumbo frames (I thought maybe the Intel NICs don't like that)
- Use the eth0 switched network instead of the dedicated eth1 link
Any help, anyone? :smileyhappy: If you need more information, please let me know!