VMware Cloud Community
BrunoOliveiraBa
Contributor
Contributor

Problem in VM performance using VMWare 6.7

Gentlemen, I have a PowerEdge R410 server, Intel Xeon 2.8Ghz, 64 GB RAM, HD SAS 15K 600GB RAID1. I created only one VM with Windows Server 2019, in this Windows runs Terminal Service and Firebird 2.5. For some reason when I order to run a report routine that takes 40 minutes on the physical machine, the VM is taking 5 hours. One thing I noticed is that when firebird is running the task it is using only 1 core and not all, although it is configured with CpuAffinity 255. And the application itself does not perform more than 30% of the machine's processing. There is no limit configured in VMWare and when I run a stress test it runs on all vCPUs. Does anyone have any idea how to improve this?

Reply
0 Kudos
13 Replies
IRIX201110141
Champion
Champion

FirebirdDB is very special when it comes to CPU. Different versions exists with different config options.  Iam pretty sure that when you configure the VM with its vSockets and vCores in the same as your phys. Server the DB will shows the same performance characteristics. Certain DB versions use only the first core which sounds similar to what you have seen.

Regards,
Joerg

Reply
0 Kudos
nachogonzalez
Commander
Commander

Hey. hope you are doing fine

I'm not aware of how Firebird DB works (maybe it has something to do with threads on the application)

But i'd like to ask a few questions that might help address any issues:

1. This Firebird DB VM was created a VM or is a phyiscal server migrated to a virtual machine?
1.b. How is the CPU configuration on the Phyisical machine?
2. Can you share the vHardware configs for this VM?
2.a. How many vCPUs?
2.b How Much vRAM?
2.c. Is vNIC VMXNET3?
2d. Are you using VMware Paravirtual controller? Do you have any RDM?

2e. What VMware tools version are you running? What is vHardware version?

3. Performance
3.a. HAve you checked any performance charts (vCenter perfcharts/vROPs)?

3. b. Is VM sitting alone on the host?
3.c Are you able to run an esxtop? Do you see resource contention (memory ballooning / CPU Ready / Costop)

3.d Is there any reservation on the VM?

Reply
0 Kudos
BrunoOliveiraBa
Contributor
Contributor

1. This Firebird DB VM was created a VM or is a phyiscal server migrated to a virtual machine? No
1.b. How is the CPU configuration on the Phyisical machine? Two Zeon 2.8GHz
2. Can you share the vHardware configs for this VM? Yes

# VMX file

.encoding = "UTF-8"

config.version = "8"

virtualHW.version = "15"

vmci0.present = "TRUE"

floppy0.present = "FALSE"

numvcpus = "8"

memSize = "10240"

bios.bootRetry.delay = "10"

powerType.suspend = "soft"

tools.upgrade.policy = "manual"

sched.cpu.units = "mhz"

sched.cpu.affinity = "all"

vm.createDate = "1576663547981070"

scsi0.virtualDev = "lsisas1068"

scsi0.present = "TRUE"

sata0.present = "TRUE"

usb.present = "TRUE"

ehci.present = "TRUE"

ethernet0.virtualDev = "e1000"

ethernet0.networkName = "LAN"

ethernet0.addressType = "generated"

ethernet0.present = "TRUE"

sata0:0.deviceType = "atapi-cdrom"

sata0:0.fileName = "/vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0"

sata0:0.present = "TRUE"

displayName = "WINTS01"

guestOS = "windows7srv-64"

toolScripts.afterPowerOn = "TRUE"

toolScripts.afterResume = "TRUE"

toolScripts.beforeSuspend = "TRUE"

toolScripts.beforePowerOff = "TRUE"

tools.syncTime = "FALSE"

uuid.bios = "56 4d d2 78 27 68 aa 52-f1 31 7e 3e aa 79 1d c9"

uuid.location = "56 4d d2 78 27 68 aa 52-f1 31 7e 3e aa 79 1d c9"

vc.uuid = "52 9f 6f 7d 10 af cf 21-e2 8b b3 46 4e 9f ed a4"

sched.cpu.min = "0"

sched.cpu.shares = "normal"

sched.mem.min = "0"

sched.mem.minSize = "0"

sched.mem.shares = "high"

scsi0:0.deviceType = "scsi-hardDisk"

scsi0:0.fileName = "WINTS01.vmdk"

sched.scsi0:0.shares = "normal"

sched.scsi0:0.throughputCap = "off"

scsi0:0.present = "TRUE"

ethernet0.generatedAddress = "00:0c:29:79:1d:c9"

vmci0.id = "-1209650970"

svga.vramSize = "8388608"

cleanShutdown = "FALSE"

extendedConfigFile = "WINTS01.vmxf"

vcpu.hotadd = "TRUE"

vpmc.enable = "TRUE"

vvtd.enable = "TRUE"

config.readOnly = "FALSE"

cpuid.coresPerSocket = "8"

tools.guest.desktop.autolock = "FALSE"

nvram = "WINTS01.nvram"

pciBridge0.present = "TRUE"

svga.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"

hpet0.present = "TRUE"

RemoteDisplay.maxConnections = "-1"

sched.cpu.latencySensitivity = "normal"

disk.EnableUUID = "TRUE"

numa.autosize.cookie = "240001"

numa.autosize.vcpu.maxPerVirtualNode = "12"

sched.swap.derivedName = "/vmfs/volumes/5f362ba9-1d370fd9-1ebb-842b2b6812e4/WINTS01/WINTS01-ef5d1321.vswp"

pciBridge0.pciSlotNumber = "17"

pciBridge4.pciSlotNumber = "21"

pciBridge5.pciSlotNumber = "22"

pciBridge6.pciSlotNumber = "23"

pciBridge7.pciSlotNumber = "24"

scsi0.pciSlotNumber = "160"

usb.pciSlotNumber = "32"

ethernet0.pciSlotNumber = "33"

ehci.pciSlotNumber = "34"

vmci0.pciSlotNumber = "35"

sata0.pciSlotNumber = "36"

scsi0.sasWWID = "50 05 05 68 27 68 aa 50"

ethernet0.generatedAddressOffset = "0"

monitor.phys_bits_used = "43"

vmotion.checkpointFBSize = "8388608"

vmotion.checkpointSVGAPrimarySize = "8388608"

softPowerOff = "FALSE"

usb:1.speed = "2"

usb:1.present = "TRUE"

usb:1.deviceType = "hub"

usb:1.port = "1"

usb:1.parent = "-1"

tools.remindInstall = "FALSE"

toolsInstallManager.lastInstallError = "0"

toolsInstallManager.updateCounter = "1"

svga.guestBackedPrimaryAware = "TRUE"

ctkEnabled = "TRUE"

scsi0:0.ctkEnabled = "TRUE"

migrate.hostLog = "./WINTS01-51f9b15e.hlog"

scsi0:0.redo = ""

usb:0.present = "TRUE"

usb:0.deviceType = "hid"

usb:0.port = "0"

usb:0.parent = "-1"


2.a. How many vCPUs? 8

2.b How Much vRAM? 10GB

2.c. Is vNIC VMXNET3? No. E1000 ( The aplication and DB is the same machine )
2d. Are you using VMware Paravirtual controller? Do you have any RDM? Yes. No.

2e. What VMware tools version are you running? What is vHardware version?  10.2.0 build 7253323

3. Performance
3.a. HAve you checked any performance charts (vCenter perfcharts/vROPs)? No, i dont have vcenter, but i look in monitor and i am using 15% of processor

3. b. Is VM sitting alone on the host? Yes
3.c Are you able to run an esxtop? Do you see resource contention (memory ballooning / CPU Ready / Costop) Yes.

3.d Is there any reservation on the VM? No

Reply
0 Kudos
scott28tt
VMware Employee
VMware Employee

How many cores on your physical Xeon processors?

How much physical RAM do you have?

Your VM is using E1000 not VMXNET3.


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Reply
0 Kudos
BrunoOliveiraBa
Contributor
Contributor

How many cores on your physical Xeon processors? 2 phisical with 6 core each

How much physical RAM do you have? 64GB

Your VM is using E1000 not VMXNET3. E1000

Reply
0 Kudos
scott28tt
VMware Employee
VMware Employee

I wasn‘t asking you the type of NIC your VM uses, I was telling you the type of NIC it is using.

From your VMX file:

ethernet0.virtualDev = "e1000"


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Reply
0 Kudos
BrunoOliveiraBa
Contributor
Contributor

I understood, but like i said, the DB and Application its in same VM.

Reply
0 Kudos
bluefirestorm
Champion
Champion

The Dell R410 server comes with Nehalem EP 55xx/56xx series of CPUs.

https://www.dell.com/downloads/emea/products/R410_spec_sheet.pdf

Officially, this server supports only ESXi 5.5.

https://www.vmware.com/resources/compatibility/detail.php?deviceCategory=server&productid=4932

Officially, ESXi 6.7 no longer supports the 55xx/56xx series of CPUs.

https://docs.vmware.com/en/VMware-vSphere/6.7/rn/vsphere-esxi-vcenter-server-67-release-notes.html#i...

So you must have known these things all along and had to employ some workarounds to get to install ESXi 6.7.

Running a modern OS with a network/disk I/O intensive application such as a database server with very old CPU technology is just not going to cut it.

With Spectre/Meltdown patches, you should be looking at minimum a CPU from the Haswell generation.

Reply
0 Kudos
BrunoOliveiraBa
Contributor
Contributor

I understood, but if it was not really compatible, VMWawre itself would not do the installation, what he notifies in the installation is that in the future it will not be more compatible, what happened in version 7.0, which does not even install.

I did a new test to analyze the performance of the application and the database:

Test 1: Virtualized APP and Physical DB

Time to generate a report: 2H

Test 2: Virtualized DB and Physical APP

Time to generate a report: 58min

Test 3: Physical APP and physical DB

Time to generate a report: 30min

Reply
0 Kudos
nachogonzalez
Commander
Commander

have you tied replacing NICS and controllers and adjusting CPU settings to what was indicated before?

Reply
0 Kudos
BrunoOliveiraBa
Contributor
Contributor

Yes, i put more vCPU, but in report i dont use more than 30% or processing.

Reply
0 Kudos
nachogonzalez
Commander
Commander

Hey, hope you are doing fine

As you told before you have
numvcpus = "8"

cpuid.coresPerSocket = "8"


Which gives the grand total of 16 vCPU and that is more than your Physical CPU can handle (since you have 2 processors and 6 cores per procesos)

also you NIC is: ethernet0.virtualDev = "e1000" and it should be ethernet0.virtualDev = "vmxnet3"

Can you make the adjustments?

Reply
0 Kudos
scott28tt
VMware Employee
VMware Employee

Regarding these 2 parameters from the VMX file:

numvcpus = "8"

cpuid.coresPerSocket = "8"

I believe that combination of parameters means that the VM has 1 vCPU with 8 cores.

That could be an issue on a physical system which has 2 x 6-core pCPUs, I'm thinking of NUMA.

I wonder what would happen if those 2 parameters were both set to 6 instead of 8...


-------------------------------------------------------------------------------------------------------------------------------------------------------------

Although I am a VMware employee I contribute to VMware Communities voluntarily (ie. not in any official capacity)
VMware Training & Certification blog
Reply
0 Kudos