03. Dezember 2012
Benchmark: ext4 vs. XFS (Disk-IO und MySQL-Performance)
Wir haben das Linux-Standard-Dateisystem ext4 sowie XFS in einem Benchmark mit dem Tool sysbench antreten lassen, um sowohl die Disk-IO-Performance als auch die MySQL-Performance zumessen.
Versuchsaufbau: Wir haben jeweils ein identisches Ubuntu 12.10 x86_64-Server-System mit 1GB RAM herangezogen (genauer gesagt, eine VirtualBox-VM, die immer auf demselben Host-System ausgeführt wurde), das nur eine einzige große /-Partition benutzt, einmal mit ext4, einmal mit XFS. Auf diesem System waren jeweils nur MySQL (Pakete: mysql-server und mysql-client in Version 5.5.28-0ubuntu0.12.10.1) sowie sysbench installiert.
Zur Messung der Disk-IO-Performance haben wir 15GB Testdaten mit folgendem Befehl erzeugt:
sysbench --test=fileio --file-total-size=15G prepare
Die Disk-IO-Performance wurde dann mit folgendem Befehl gemessen:
sysbench --test=fileio --file-total-size=15G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
Zur Messung der MySQL-Performance haben wir 1.000.000 Testdatensätze angelegt...
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
... und die Performance dann mit diesem Befehl gemessen (wobei wir erst den dritten Testlauf gemessen haben, damit sich MySQL aufwärmen konnte - Caches, etc.; allerdings haben sich zwischen den Testläufen keine signifikanten Unterschiede ergeben):
sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
Ergebnisse Disk-IO-Performance:
Gleichstand! ext4 und XFS liefern ungefähr die gleiche Disk-IO-Performance ab.
| ext4 | XFS |
Operationen | 1.413.085 | 1.434.431 |
Transferrate | 32.281Mb/sec | 32.77Mb/sec |
Ergebnisse MySQL-Performance:
Bei der MySQL-Performance ist ext4 dagegen eindeutig schneller als XFS:
| ext4 | XFS |
Transaktionen | 715.56 per sec. | 634.55 per sec. |