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?
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
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?
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
How many cores on your physical Xeon processors?
How much physical RAM do you have?
Your VM is using E1000 not VMXNET3.
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
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"
I understood, but like i said, the DB and Application its in same VM.
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.
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.
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
have you tied replacing NICS and controllers and adjusting CPU settings to what was indicated before?
Yes, i put more vCPU, but in report i dont use more than 30% or processing.
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?
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...