B
B
brar2020-12-04 11:12:05
linux
brar, 2020-12-04 11:12:05

Gilev's test (hereinafter TG). Virtualization vs bare metal?

Hardware:
i9-9900k
Memory: 64 GB, 2666 GHz.
nvme 512 GB. (sequential read 3500 MB/s, sequential write 2000 MB/s, random write and read about 70 MB/s).

qemu/kvm hypervisor on Arch Linux. Everything is on LVM.
Virtual Machine #1: Debian Linux, RAM 32GB; CPU host-passthrough. On it: Server 1c latest build and posgresql-13 from
"1c postgres ru".

Virtual #2. Windows 10 with 1s client.

We start the conf with TG.

Results of TG - 20-22.
File base - 40. (For the sake of interest, I created a RAM disk, and placed the config with the TG there, the result is the same - 40, that is, it's not about the disk subsystem).

Okay, I assumed that postgres messed up. Raised a virtual machine on win srv 2019, rolled mssql 2019 there. Created a database with TG. The result is almost the same as in postgres = 22-23.

Then he put Windows on bare iron (the same hardware where the hypervisor and virtual machines were).
TG showed in the sql version - 53 points!

What can cause such a drawdown in TG in the hypervisor? Despite the fact that tests of processor, memory and disks using Linux tools, they give almost the same results, both in Linux on bare metal and on a virtual machine.

Answer the question

In order to leave comments, you need to log in

5 answer(s)
A
Anton Anton, 2020-12-04
@brar

Gilev's parrots measure the percentage and delays between the DBMS and the 1s server (this is the main thing that affects the result).
The disk subsystem in the client-server version is a little measured by the second part, but there the calculation method is controversial, first it determines the maximum write speed by increasing the size of one portion of the data being written, then it starts threshing in several streams until the speed drops by 4, like, times. The number of threads on which this happened is, as it were, the maximum number of users. Which, of course, is not true, and this indicator itself is very synthetic.

D
Denis _______________, 2020-12-04
@LuchS-lynx

I use Proxmox for virtualization (Debian Linux + KVM). The main "losses" in my case are:
- on the one hand, emulation virtual cores, on the other hand, if you forward the host CPU, you still do not forward all the cores, something must be left to the host and / or other virtual machines. For games on my i7-8700k, I forward host CPU 8 threads out of 12, so, in fact, in the virtual machine I don’t have an i7-8700k, but rather a “conditional i7-7700k”, re-labeled in the task manager as i7-8700k, if compare with native iron.
- The second loss is a soft HDD / SSD forwarding (a la sata1: volume=/dev/disk/by-id/ata-WDC_........ or connecting a virtual hard disk that lies on a physical one), if the maximum speeds go almost without drawdowns, then the read / write speeds of medium and small blocks sink very strongly, here the only way out is to forward an external disk controller / RAID controller with live HDD / SSD connected to it to install the system / data directly, the truth remains question about PCI-Express lines on the processor....
Here is my setup, see the video:
https://www.youtube.com/watch?v=wjlmWHJiEug
"4:29 - virtual hard disk test" - this is the guest's virtual HDD Windows, which lies on the system SSD Kingston A400 2.5 "480Gb SATA III TLC SA400S37 / 480G
“5:10 - test of a physical hard disk thrown into the VM” is a forwarded soft HDD WD Red 4Tb WDC WD40EFRX
in both cases there is a wild drawdown in read / write speed for medium and small blocks, with relatively normal read / write speeds of large blocks.
At the same time, in another VM with a physically forwarded LSI SAS 9211-8i RAID controller with 4 WD Red 4Tb WDC WD40EFRX HDDs, this is not observed and the speeds there are the same as in the native system with Windows (though in my case due to due to the lack of PCI-Express lines on my VK board in the first slot it does not give out everything that it is supposed to.
PS. did you update all the drivers for the virtual machine? The Linux kernel is fresh? How does the same mysql behave on native hardware under Arch Linux? What machine do you work on? I have machine: q35

S
Stanislav Bodrov, 2020-12-04
@jenki

Virtualization is a tool. Its use must be justified from the point of view of expediency. Not on a whim. For what purpose was the use of virtualization intended?

Okay, I assumed that postgres messed up.
It seems that at hi-load 2017 Ilya Kosmodemyansky warned the use of prostgri in virtual machines due to possible drawdowns in the performance of the disk subsystem.

G
Gring76, 2020-12-10
@Gring76

My experience.
Proxmox / ZFS ( slightly tuned, compression, changed block size, but this gives a small increase )
Virtual machine 2012R2 with 1C 8.3.xxx MSSQL 2016 (System / DB / Logs from MSSQL / tempdb all on different disks and SSD)
The gilev test is shown 26- 28 in a virtual machine and up to 32-34 on bare metal.
1) Check the speed of the disk system in virualka and on bare metal. I have a difference in the range of 2-5%.
2) Forward the percentage as is, without any emulations. For 1C, the speed in one thread is important, not the number of threads. Bind cores if possible.
3) Allocate memory without any shared / ballon (or get a performance drop of 30%)

J
justhostRU, 2021-01-24
@justhostRU

>What can cause such a drawdown in TG in the hypervisor?
okhtyzh. Windows itself?)
it does not have a compatibility layer in the kernel for the Linux host, it is not a native system, like a guest linux with an agent in the kernel, in any case it will have drawdowns, because MS itself did not provide any software solution for loss avoidance, integration with the Linux host. It does not interact with the Linux host in any way, and tries to work with the processor / RAM / disk as if it were bare metal.
and it will essentially be a partial remake of the NT kernel.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question