Ich teste derzeit mit PVE 8.2 ein Projekt und beobachte einen eklatanten Unterschied zwischen der Performance einer VM (Rocky Linux 9.4) und einem Container. Die VM repliziert eine mySQL-Datenbank und aufgefallen ist das Problem, wiel diese VM "seconds_behind" nicht nahe 0 halten kann, sondern immer mal wieder (sprunghaft) 30, 60 oder mehr Sekunden zurückfiel. Im Container tritt dieses Problem nicht auf.
Um ein Gespür für den Performanceunterschied zu bekommen habe ich einen sysbench-Test mit mariaDB im Container und der VM durchgeführt (16 Kerne, 32GB):
Das ist mehr als das doppelte. Ich ging bisher schon davon aus, dass ein LXC-Container ggü einer VM etwas flotter ist. Das der Unterschied zur VM jedoch so extrem ist.. ich frage mich, ob dieser Performanceunterschied wie beobachtet normal ist oder ich eine wichtige Stellschraube übersehe.
Der Flaschenhals wird hier vermutlich i/o sein und da habe ich einen ZFS-Mirror über zwei SSDs (Solidigm D7-P5520). Die VM verwendet als Dateisystem ext4. Im Benchmark oben Virtio Single, aio=threads, cache=none, iothread=1, ssd=1. Ich habe jedoch auch schon aio native und io_uring, sowie statt Virtio Single, Virtio Block probiert um die Performance der Datenbank in der VM zu steigern.
Um ein Gespür für den Performanceunterschied zu bekommen habe ich einen sysbench-Test mit mariaDB im Container und der VM durchgeführt (16 Kerne, 32GB):
Metrik | LXC | VM |
---|---|---|
Leseabfragen | 1,020,390 | 432,614 |
Schreibabfragen | 291,540 | 123,604 |
Andere Abfragen | 145,770 | 61,802 |
Gesamtanzahl Abfragen | 1,457,700 | 618,020 |
Transaktionen | 72,885 | 30,901 |
Abfragen pro Sekunde | 145,713.01 | 61,776.44 |
Das ist mehr als das doppelte. Ich ging bisher schon davon aus, dass ein LXC-Container ggü einer VM etwas flotter ist. Das der Unterschied zur VM jedoch so extrem ist.. ich frage mich, ob dieser Performanceunterschied wie beobachtet normal ist oder ich eine wichtige Stellschraube übersehe.
Der Flaschenhals wird hier vermutlich i/o sein und da habe ich einen ZFS-Mirror über zwei SSDs (Solidigm D7-P5520). Die VM verwendet als Dateisystem ext4. Im Benchmark oben Virtio Single, aio=threads, cache=none, iothread=1, ssd=1. Ich habe jedoch auch schon aio native und io_uring, sowie statt Virtio Single, Virtio Block probiert um die Performance der Datenbank in der VM zu steigern.