The speed on the guest VM is anywhere from 1/10th to 1/2 of the host - no more! On my host I get around 970Mbps down and up - on the guest I will occasionally get a max of 450 down and 350 up - but usually it is in the 120 down and 85 up range. How can I increase the speed on my guest to at least come close to, if not match, the speed on the host.
I'm running VMware® Workstation 12 Pro (12.5.6 build-5528349) and have VMWare Tools installed on the guest. Also, NAT seems to be faster than Bridged.
Host: Win 8.1 64bit, 16Gb RAM, i7 1.7Ghz
Guest: Win 7 64-bit, 12Gb RAM, 1 CPU with 8 cores
I have to run a VPN client in the guest and then the speed really comes down. I will appreciate any help.
So, you leave only 4GB for the host, when the guest is running. I have to admit that I don't know if this could have any impact on the network bandwidth/throughput for the guest. But, if the host needs more than 4GB for its OS and any other app when the guest is running, the overall performance should degrade because the host doesn't have that much in memory left. So, I'd suggest you take a look at memory usage in both the host and the guest and overall performance, with and without the guest running.
Well, the speeds I mentioned on the host and the guest - they are on the config I mentioned. And as I mentioned, the host has absolutely no issues. So, I think I'm fine with the 4Gb.
Does anyone know of any tweaks I might apply to get the guest network to go faster?
My suggestion is to start by halving the amount of cores in the guest to 4 cores instead of 8.
And won't reducing that reduce the overall performance of the VM even more?
nope, usually it makes the guest faster as you lower the CPU scheduling problems.
Frankly unless you run specific software that really takes advantage of multiple cores, once you have 2 cores assigned to the guest, it rarely speeds up things by adding more virtual CPUs to the guest.
A database server might be able to use more cores and things like video rendering, but most workloads don't benefit from more cores.
Ok, I created a new VM using converter and assigned it 4 cores. Had to re-enter the Win Serial Number!!
Although, I noticed a minor "average" speed bump (could be placebo though, idk) but not anything significant and still within the initial speeds I mentioned in the post - so still did not get close to the speed on host.
And obviously, when I connect the vpn dialer to tunnel into my remote machine, the speed becomes one tenth of whatever speed the vm had. Essentially, for a 1Gb connection to my host, using NAT in the VM and then VPNing from the guest to a remote machine, I end up with a 24.5 Mbps down, 56 Mbps up connection on the final endpoint Would love to be able to get some more throughput.
As far as provisioning more cores on the guest, well when I'm not dialing in, I'm running device emulators in the VM and those guys will gobble up whatever processing power I can throw.
Anyway, if you all have any other tips, I can try them too but thank you all for your guidance thus far!
Normally NAT is the slower option, so I would still suggest to try bridged instead if that is an option.
I was really surprised to read that on your end NAT was faster.
And besides that it does matter what virtual NIC you are using, there is a few you can choose from.
Since you mention you are using Windows 7 then chances are you are using an intel e1000 NIC.
The intel e1000e does perform better in my experience.
So with the VM shut down -not suspended- and preferably with VMware Workstation not running, edit the .vmx file of the virtual machine using a simple text editor like notepad.
then locate the line:
ethernet0.virtualDev = "e1000"
and change it into:
ethernet0.virtualDev = "e1000e"
Start your VM, connect the VPN and see if that helps.
There are others you can try like vmxnet3, but the above changes very little as far as Windows is concerned and did make all the difference for me in the past.
Thank you all for your help, especially wila and RDPetruska While I'm still unable to get anywhere close to 1Gbps on my VM, I am now consistently getting around 450Mbps up and down with the following setup:
|Jumbo Packet||Jumbo 9000|
|Large Send Offload V2 (IPV4)||Disabled|
|Large Send Offload V2 (IPV6)||Disabled|
|Speed & Duplex||10Gbps Full Duplex|
Hope it works for you too!
I would still however, like to be able to get the full host machine's 1Gbps network speed replicated in the guest environment. Anyone?
"I would still however, like to be able to get the full host machine's 1Gbps network speed replicated in the guest environment. Anyone?"
Unfortunately, you won't be able to do so... your host actually uses the processor on your NIC card to offload all networking functions. While VMware performs all networking functions using your main CPU. A NIC processor is tuned for doing just those specific functions, and can have the faster throughput... while your main CPU is a general purpose processor, and is scheduled to do many other tasks at the same time.
Seriously? Thank you, RDPetruska I did not know that. If that is the case, then am I pretty much "peaked" out with regard to speed? My host setup is a laptop with 2 independent SSDs - I'm running the guest exclusively off of the 2nd SSD with the host OS and VMWare etc. actually running off of the 1st SSD.
Will any other software/hardware tweaks help?