German version below.
In my latest guide I showed you how to create yourself a gaming VM. I'm using the described setup for almost one year now. How does it perform?
A quick recap on my hardware:
I have a 2014's PC build with:
- an Intel Core i5-4430 clocking in at 3 GHz
- nVidia GeForce GTX 780 Ti (EVGA SuperClocked Edition)
- 8 GiB of RAM for the VM (16 GiB in the host system)
I thought I would get around 99% of the native performance. I was blown away on first using the VM: I couldn't tell that this was a VM. No difference to a native system what so ever.
For this post I've ran some benchmark to quantify the numbers.
First of is the Cinebench R15. I scored whopping 459 multicore point and 126 single core points. For GPU OpenGL performance I got 82.56 frames per seconds.
I managed to find a reference benchmark for the i5-4430 in Cinebench R15: 448 in multicore and 124 in singlecore. Nailed it
But why is my system faster? Probably the Windows version and the Cinebench got some optimizations on their way. I mean the Haswell generation is from 2013.
Okay but what about the I/O
I save my virtual drive inside a qcow2
image file on a real harddrive. To be honest: Linux is awesome. Linux has a cache for the filesystem and open files. And my virtual drive is an open file: So the performance is faster than an actual HDD but slower than a SSD. Works for me.
Any sequential I/O is directly touched by RAM - and that's clearly visible on the benchmarks. CrystalDiskMark 6.0.0 was very humble with half of the sequential I/O I've got with CDM 6.0.1.
To crunch some numbers: Sequential I/O is on the same level as a SSD would be - a normal HDD scores about 170 MB/s here. The random access is of course slower than a SSD would be.
Since this machine is used for gaming I didn't checked the IOPS.
Network
I use a macvtap
to multiplex the virtual network card and the physical network card together. When your switch supports paket reflection - you could actually talk this way from host to guest and vice versa. I always get my usual 20 to 30 ms round trip time to Frankfurt/Main Germany.
Bans
Some anti-cheat vendors don't allow to use their games on a virtual machine - because you can manipulate the system's memory from the underlying host. Some gamers with that setup reported bans.
I didn't got banned - neither with BattleEye nor with VAC nor any other anti-cheat software. But be careful.
What do I play?
My most modern games I've played with that system are Hitman and Rainbow Six Siege. Both on FullHD with high graphics settings - without any problems.
WHY do you play with a VM? What's wrong with dual-boot
For dual-boot you have to exit Linux in order to play. With my setup I can use both - at the same time. For example I often use TeamSpeak through Linux while playing on Windows.
I could easily render a video with two cores on Windows and use that computer under Linux in parallel. I could do updates and downloads - and still can use the Linux.
When you start Windows 10 once a month - it's starting to calculate the millionth iteration of Pi. Here I could start it and let it's do the thing it needs to do - while working uninterrupted.
I could put the Windows state into a RAM file - and boot the VM entirely from RAM.
Isolation: Windows can't destroy my bootloader because it doesn't see any of the Linux drives.
But I understand that this is not applicable for everybody.
Deutsch
In meinem letzten Guide habe ich euch ein VM Setup vorgestellt zum Zocken. Das gleiche Setup benutze ich nun seit circa einem Jahr. Daher hier eine kurze Aufstellung, wie das ganze so performt.
Mein 2014er PC hat folgende Komponenten:
- einen Intel Core i5-4430 mit 3 GHz Taktung
- nVidia GeForce GTX 780 Ti (EVGA SuperClocked Edition)
- 8 GiB RAM für die Windows VM (16 GiB im Hostsystem)
Ich habe erwartet, dass ich ca. 99% der nativen Performance bekomme. Als ich die VM jedoch zum ersten Mal benutzt habe durfte ich feststellen: man merkt überhaupt nicht, dass man eine VM benutzt.
Für diesen Post habe ich einige Benchmarks laufen lassen.
Der Klassiker ist sicherlich der Cinebench R15. Hier bringt die VM 459 Punkte im Multicore und 126 Punkte im Singlecore Test auf die Straße. Im OpenGL Test für die CPU gibt es 82,56 FPS auf den Bildschirm.
Um einen Vergleichswert zu haben, habe ich nach Cinebench R15 Tests mit dem i5-4430 gesucht. Und gefunden: 448 im Multicore und 124 im Singlecore. Volltreffer.
Aber wie das? Meine Vermutung ist, dass durch Optimierungen in Windows und im Cinebench ich etwas besser dastehe. Immerhin ist meine Prozessorgeneration von 2013.
Was macht die Festplatte den ganzen Tag
Meine VM lagert in einem qcow2
Image auf einer echten Festplatte. Auf der Festplatte hat Linux das Sagen, und Linux ist toll: Linux cached nämlich das Dateisystem und alle offenen Dateien; und die virtuelle Platte ist eine offene Datei. Damit bekomme ich einen Performanceboost, der schneller ist als eine normale Festplatte, aber langsamer als eine SSD. Kann ich mit leben. Alle sequenziellen I/O Operationen gehen nämlich erstmal in den RAM; und das macht sich auch bei Benchmarks bemerkbar.
CrystalDiskMark 6.0.0 war noch bescheiden und hat mir ca. die Hälfte von dem angezeigt, was CDM 6.0.1 ausgespuckt hat.
In Vergleichen ausgedrückt: Sequenzielle I/O Operationen sind auf dem gleichen Level wie SSDs - vergleichbare Festplatten erreichen hier nur etwa 170 MB/s. Random Access ist selbstverständlich viel langsamer als eine SSD.
Da das hier eine Spielemaschine ist, habe ich die IOPS nicht geprüft.
Netzwerk
Die virtuelle Netzwerkkarte schnorchelt mit macvtap
auf der physikalischen Karte für Linux um beide zu multiplexen. Wenn euer Switch Paket Reflektionen unterstützt, könnt ihr damit sogar vom Host zu Gast kommunizieren und umgekehrt. Vom Multiplexen bekommt man nichts mit - ich habe meine üblichen 20 bis 30 ms in Richtung Frankfurt.
Gebannt werden
Einige Anti-Cheat Programme erlauben es nicht, dass auf einer virtuellen Maschine gespielt wird. Theoretisch könnte man nämlich vom Host den Arbeitsspeicher des Gastes und des Spiels verändern. Es gibt ein paar Einträge in Internetforen die von Bans berichten.
Ich wurde bisher nicht gebannt - weder mit BattleEye, noch mit VAC oder einem anderen Anti-Cheat System. Seid trotzdem vorsichtig
Was spiele ich denn so
Das einzige, was so halbwegs aktuell ist sind Hitman und Rainbow Six Siege. Beides in FullHD mit hohen Grafikeinstellungen. Ohne Probleme
Und warum tut man das jetzt? Nutze doch Dual-Boot
Zugegeben ich habe wenig Hobbies. Aber um ins Windows zu wechseln muss man beim Dual-Boot immer noch Linux beenden. Mit meinem Setup kann ich beides parallel laufen lassen. Ich nutze zum Beispiel gerne TeamSpeak unter Linux, zeitgleich spiele ich unter Windows.
Ich kann ein Video mit zwei Kernen unter Windows rendern lassen und neben bei unter Linux meine Arbeit fortführen. Ich kann Windows Updates einspielen und Sachen downloaden - während ich Linux nutze.
Wenn man Windows 10 einen Monat lang nicht verwendet, will es immer die millionste Nachkommastelle von Pi ausrechnen. Ich kann es hier einfach starten und rödeln lassen. Nebenbei.
Ich könnte Windows' RAM auf meine Festplatte auslagern - anstatt es herunterzufahren - das ganze bootet dann vom RAM.
Ich kann Windows von meinem Linux isolieren - Windows kann mir dann nicht mehr den Bootloader zerschießen, weil es von ganzen Linux Part nichts sieht.
Es ist aber verständlich, wenn dieses Setup für viele nicht praktikabel ist.
Du meintest du benutzt die VM auch zum Video schnitt, wie wirkt sich die VM umgebung darauf aus?
Auch bei der Videobearbeitung bemerkt man die VM nicht.
Es ist natürlich eine Umstellung die Rohdateien vom Netzwerk zu beziehen, was das ganze etwas langsamer macht.
Insgesamt aber keinen Unterschied - nur dass ich keine Schattendateien mehr verwende. So viel Videobearbeitung habe ich in dem letzten Jahr auch nicht gemacht.