RedHat/OL 7.6 Oracle SQL Performance und Operating Security Patches
Das Update auf RedHat 7.6 bzw. Oracle Enterprise Linux 7.6 bringt den aktualisierten Schutz gegen CVE-2017-5754 CVE-2017-5715 and CVE-2017-5753 bekannt als Spectre und Meltdown Security Lücken. Speziell die aktuellen Patches drückt die Oracle SQL Performance merklich - abhängig von der Verarbeitung in den Statements.
Analyse der Auswirkungen
Nach dem Einspielen der aktuellen Security Patches von RedHat/OEL, die auch den Spectre V2 Schutz mitbringen, sinkt die Performance bei SQL Statements speziell bei GROUP BY / ORDER BY sehr deutlich. Wir haben bei einer Applikation reproduzierbar folgende Laufzeitinformationen gemessen:
-
Aktuelle Security Patches (Stand Juli 2019): Laufzeit ca. 76 Sekunden (+/- 1 Sekunde)
-
Zuvor (Stand Sep 2018): Laufzeit ca. 55 Sekunden (+/- 1 Sekunde)
-
Nach der Deaktivierung aller Patches: Laufzeit ca. 40 Sekunden (+/- 1 Sekunde)
Wichtiger Hinweis: Das Deaktivieren der Security Patchen sollte nur dann erfolgen, wenn man sich einerseits des Risikos bewusst ist und andererseits die Systeme nicht exponiert sind (nicht im Internet stehen). Idealerweise also nur für Server, die keinerlei Berührung mit dem Internet haben und auf denen beispielsweise nur Oracle Datenbanken laufen (und keine sonstige Anwendungen).
Deaktivieren des Schutzes vor Spectre & Meltdown
die folgenden Schritte deaktivieren den Schutz vor Spectre & Meltdown komplett. Es ist auch möglich, nur einen Teil der Schutzmechanismen zu deaktivieren. Mehr dazu finden Sie in folgendem Artikel bei RedHat.
Die Befehle führen Sie als root aus:
## welcher Kernel wird genutzt
# grubby --default-kernel
/boot/vmlinuz-4.1.12-124.28.6.el7uek.x86_64
## aktuelle Boot Optionen ansehen
# grubby --info /boot/vmlinuz-4.1.12-124.28.6.el7uek.x86_64
index=1
kernel=/boot/vmlinuz-4.1.12-124.28.6.el7uek.x86_64
args="ro crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet numa=off transparent_hugepage=never LANG=en_US.UTF-8"
root=/dev/mapper/ol-root
initrd=/boot/initramfs-4.1.12-124.28.6.el7uek.x86_64.img
title=Oracle Linux Server 7.6, with Unbreakable Enterprise Kernel 4.1.12-124.28.6.el7uek.x86_64
## Schutz deaktivieren
# grubby --args="spectre_v2=off nopti" --update-kernel /boot/vmlinuz-4.1.12-124.28.6.el7uek.x86_64
## Verifizieren
# grubby --info /boot/vmlinuz-4.1.12-124.28.6.el7uek.x86_64
index=1
kernel=/boot/vmlinuz-4.1.12-124.28.6.el7uek.x86_64
args="ro crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet numa=off transparent_hugepage=never LANG=en_US.UTF-8 spectre_v2=off nopti"
root=/dev/mapper/ol-root
initrd=/boot/initramfs-4.1.12-124.28.6.el7uek.x86_64.img
title=Oracle Linux Server 7.6, with Unbreakable Enterprise Kernel 4.1.12-124.28.6.el7uek.x86_64
## Danach muss man den Server rebooten
# init 6