VMware Communities
Netsmage
Enthusiast
Enthusiast
Jump to solution

Turning on Network Discovery - Terrible performance hit

Hello and good morning all,

In working around the Copy/Paste issue Shared VM - Copy/Paste and Cloning  that I have another thread on, I had Network Discovery enabled to allow file transfer between the Host and Guest operating system.

When enabling this feature, I notice a very significant slow down of the guest operating system to where it would stutter at times. Its so severe that I need to disable it in order to restore performance back to the VM. Keep in mind this is running on an AMD 3990X Threadripper and performance has never been an issue till I enabled Network Discovery.

I wanted to see if anyone knew how to eliminate this problem?

Reply
0 Kudos
1 Solution

Accepted Solutions
wila
Immortal
Immortal
Jump to solution

Hi,

On most systems 8 CPU's is indeed too much, however like you say, it should be fine on yours.

Note however that the networking between host & guest is all done via CPU, so while it should be fine, there might still be some truth in what has been said about overprovisioning.

In theory however I agree with you that there is plenty of host resources left over.

I also agree with Ulli about the use of auto-protect snapshots not making sense with the independent disk.

re. the ethernet adapter, as mentioned earlier, you are using "e1000e" .. you could try and change that to vmxnet3.

In order to do so, shut down -not suspend- your VM, shut down VMware Workstation as well then edit the line that has "e1000e" into "vmxnet3".

This might or might not help, depending on if you are even having a resources problem.

It could be something completely different.. I'm wondering if you are not having a DNS problem.

If you open a DOS window in your guest and type :

nslookup www.vmware.com

Does it return immediately? Also what is the output?

One more thing...

You have enabled hypervisor capabilities for your guest OS. (under CPU options configuration)

Unless you are using that, you should not enable it, it is not an "improve my performance" option.

There's a good reason it is not enabled by default. Code profiling isn't on by default either, disable it.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva

View solution in original post

Reply
0 Kudos
10 Replies
wila
Immortal
Immortal
Jump to solution

Hi,

That doesn't sound right.

How many of the available vCPU's did you assign to the guest?

Also what is your guest OS? (sounds like it is a Windows one, if so which one?)

Check the virtual network card used.
On Windows I think the default is intel e1000 and that one does not perform very well.

The intel e1000e will work better.

The most performant however is the vmxnet3 adapter, but the latter one requires vmware tools to be installed as it is not a windows inbox driver yet (afaik)

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
Reply
0 Kudos
Netsmage
Enthusiast
Enthusiast
Jump to solution

Thank you for the response.

Below is the contents of the .vmx file, note the XXXXX are project names removed.

The Host Operating System is Windows 10 Pro x64 v10.0.18363 Build 18363

The motherboard is Gigabyte TRX40 Aorus Master

EDIT:

Also, can you elaborate on this

"Check the virtual network card used.

On Windows I think the default is intel e1000 and that one does not perform very well.

The intel e1000e will work better."

Could you please give me steps on how to check and verify / alter this?

The Virtual Machine is configured as such:

.encoding = "windows-1252"

config.version = "8"

virtualHW.version = "16"

mks.enable3d = "TRUE"

pciBridge0.present = "TRUE"

pciBridge4.present = "TRUE"

pciBridge4.virtualDev = "pcieRootPort"

pciBridge4.functions = "8"

pciBridge5.present = "TRUE"

pciBridge5.virtualDev = "pcieRootPort"

pciBridge5.functions = "8"

pciBridge6.present = "TRUE"

pciBridge6.virtualDev = "pcieRootPort"

pciBridge6.functions = "8"

pciBridge7.present = "TRUE"

pciBridge7.virtualDev = "pcieRootPort"

pciBridge7.functions = "8"

vmci0.present = "TRUE"

hpet0.present = "TRUE"

displayName = "XXXXXXXXXXXX"

guestOS = "windows9-64"

nvram = "XXXXXXXXXXXX.nvram"

virtualHW.productCompatibility = "hosted"

powerType.powerOff = "soft"

powerType.powerOn = "soft"

powerType.suspend = "soft"

powerType.reset = "soft"

usb.vbluetooth.startConnected = "TRUE"

firmware = "efi"

sensor.location = "pass-through"

tools.syncTime = "FALSE"

sound.autoDetect = "TRUE"

sound.virtualDev = "hdaudio"

numvcpus = "8"

cpuid.coresPerSocket = "8"

memsize = "16384"

mem.hotadd = "TRUE"

scsi0.virtualDev = "lsisas1068"

scsi0.present = "TRUE"

sata0.present = "TRUE"

scsi0:0.fileName = "XXXXXXXXXXXX.vmdk"

sata0:1.deviceType = "cdrom-raw"

sata0:1.fileName = "auto detect"

usb.present = "TRUE"

ehci.present = "TRUE"

usb_xhci.present = "TRUE"

svga.graphicsMemoryKB = "1048576"

ethernet0.addressType = "static"

ethernet0.virtualDev = "e1000e"

serial0.fileType = "thinprint"

serial0.fileName = "thinprint"

ethernet0.present = "TRUE"

extendedConfigFile = "XXXXXXXXXXXX.vmxf"

numa.autosize.cookie = "80082"

numa.autosize.vcpu.maxPerVirtualNode = "8"

uuid.bios = "56 4d 94 a2 4f 76 3c 7e-f7 0c c7 ac eb 1d 47 0d"

uuid.location = "56 4d 94 a2 4f 76 3c 7e-f7 0c c7 ac eb 1d 47 0d"

scsi0:0.redo = ""

pciBridge0.pciSlotNumber = "17"

pciBridge4.pciSlotNumber = "21"

pciBridge5.pciSlotNumber = "22"

pciBridge6.pciSlotNumber = "23"

pciBridge7.pciSlotNumber = "24"

scsi0.pciSlotNumber = "160"

usb.pciSlotNumber = "32"

ethernet0.pciSlotNumber = "192"

sound.pciSlotNumber = "-1"

ehci.pciSlotNumber = "34"

usb_xhci.pciSlotNumber = "224"

vmci0.pciSlotNumber = "35"

sata0.pciSlotNumber = "36"

scsi0.sasWWID = "50 05 05 62 4f 76 3c 70"

svga.vramSize = "268435456"

vmotion.checkpointFBSize = "4194304"

vmotion.checkpointSVGAPrimarySize = "268435456"

vmci0.id = "-800030642"

monitor.phys_bits_used = "43"

cleanShutdown = "FALSE"

softPowerOff = "FALSE"

usb:1.speed = "2"

usb:1.present = "TRUE"

usb:1.deviceType = "hub"

usb:1.port = "1"

usb:1.parent = "-1"

toolsInstallManager.lastInstallError = "0"

svga.guestBackedPrimaryAware = "TRUE"

tools.remindInstall = "FALSE"

toolsInstallManager.updateCounter = "3"

guestOS.detailed.data = ""

gui.lastPoweredViewMode = "fullscreen"

sata0:1.autodetect = "TRUE"

vhv.enable = "TRUE"

vpmc.enable = "TRUE"

checkpoint.vmState = ""

vc.uuid = ""

policy.vm.mvmtid = ""

vm.genid = "3352729945805702004"

vm.genidX = "8848313689448859159"

sata0:1.startConnected = "FALSE"

scsi0:0.mode = "independent-persistent"

scsi0:0.present = "TRUE"

workingDir = "."

mks.keyboardFilter = "allow"

sound.startConnected = "FALSE"

sound.fileName = "-1"

snapshot.action = "autoCommit"

snapshot.numRollingTiers = "3"

rollingTier0.uid = "1"

rollingTier0.interval = "86400"

rollingTier0.baseTier = "0"

rollingTier0.baseTierInterval = "0"

rollingTier0.maximum = "1"

rollingTier0.live = "FALSE"

rollingTier0.clientFlags = "8"

rollingTier0.displayName = "AutoProtect Snapshot"

rollingTier1.uid = "2"

rollingTier1.interval = "604800"

rollingTier1.baseTier = "1"

rollingTier1.baseTierInterval = "7"

rollingTier1.maximum = "1"

rollingTier1.live = "FALSE"

rollingTier1.clientFlags = "8"

rollingTier1.displayName = "AutoProtect Snapshot"

rollingTier2.uid = "3"

rollingTier2.interval = "2419200"

rollingTier2.baseTier = "1"

rollingTier2.baseTierInterval = "28"

rollingTier2.maximum = "1"

rollingTier2.live = "FALSE"

rollingTier2.clientFlags = "8"

rollingTier2.displayName = "AutoProtect Snapshot"

tools.upgrade.policy = "upgradeAtPowerCycle"

ethernet0.linkStatePropagation.enable = "TRUE"

rollingTier0.timeSincelast = "82663"

rollingTier1.timeSincelast = "82663"

rollingTier2.timeSincelast = "82663"

hgfs.mapRootShare = "FALSE"

usb.generic.allowHID = "TRUE"

sata0:0.autoDetect = "TRUE"

sata0:0.deviceType = "cdrom-raw"

sata0:0.fileName = "auto detect"

sata0:0.present = "TRUE"

sata0:0.connectionStatus = "4"

sata0:0.startConnected = "FALSE"

ethernet0.address = "00:50:56:22:A0:64"

isolation.tools.hgfs.disable = "FALSE"

floppy0.present = "FALSE"

usb_xhci:4.present = "TRUE"

usb_xhci:4.deviceType = "hid"

usb_xhci:4.port = "4"

usb_xhci:4.parent = "-1"

unity.wasCapable = "TRUE"

Reply
0 Kudos
continuum
Immortal
Immortal
Jump to solution

numvcpus = "8"

cpuid.coresPerSocket = "8"

memsize = "16384"

This VM will very likely perform poorly.

You also use persistent vmdks with Autoprotect/Autodestruct turned on - this makes no sense at all.

It means you get the full performance-hit without any benefit ...

The virtual networkdevice is e1000e - thats ok


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
Netsmage
Enthusiast
Enthusiast
Jump to solution

Could you please explain why this would cause a problem?

numvcpus = "8"

cpuid.coresPerSocket = "8"

memsize = "16384"

Reply
0 Kudos
Netsmage
Enthusiast
Enthusiast
Jump to solution

Follow up, could you care to elaborate as to why those configuration values would be "perform poorly"?

Reply
0 Kudos
RDPetruska
Leadership
Leadership
Jump to solution

Because you are assigning too much resources to the guest, and starving your host.

Reply
0 Kudos
Netsmage
Enthusiast
Enthusiast
Jump to solution

I don't think you saw in my original thread this machine has a 3990X CPU.

128threads with 128GB of DDR4 3200MHZ ram with 3500mb/s 970EVO PRO SSD's.

Theres nothing to starve. Thank you for answering though.

Reply
0 Kudos
wila
Immortal
Immortal
Jump to solution

Hi,

On most systems 8 CPU's is indeed too much, however like you say, it should be fine on yours.

Note however that the networking between host & guest is all done via CPU, so while it should be fine, there might still be some truth in what has been said about overprovisioning.

In theory however I agree with you that there is plenty of host resources left over.

I also agree with Ulli about the use of auto-protect snapshots not making sense with the independent disk.

re. the ethernet adapter, as mentioned earlier, you are using "e1000e" .. you could try and change that to vmxnet3.

In order to do so, shut down -not suspend- your VM, shut down VMware Workstation as well then edit the line that has "e1000e" into "vmxnet3".

This might or might not help, depending on if you are even having a resources problem.

It could be something completely different.. I'm wondering if you are not having a DNS problem.

If you open a DOS window in your guest and type :

nslookup www.vmware.com

Does it return immediately? Also what is the output?

One more thing...

You have enabled hypervisor capabilities for your guest OS. (under CPU options configuration)

Unless you are using that, you should not enable it, it is not an "improve my performance" option.

There's a good reason it is not enabled by default. Code profiling isn't on by default either, disable it.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
Reply
0 Kudos
Netsmage
Enthusiast
Enthusiast
Jump to solution

Thank you for the great response!

Also can you please point out the exact configuration setting for 'hypervisor'? I do not see it in the config and would like to disable it. It is not needed.

Reply
0 Kudos
wila
Immortal
Immortal
Jump to solution

Hi,

You don't need these two lines (just remove them with the vm shut down and not open in VMware Workstation tab - easiest is just shut down Workstation):

vhv.enable = "TRUE"

vpmc.enable = "TRUE"

FWIW, it's these settings:

pastedImage_0.png

For your VM, the top two checkbox'es are ticked and they don't need to be.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
Reply
0 Kudos