Grosse Speicherseiten verbessern die Performance, da weniger Einträge im Translation Lookaside Buffer (TLB) notwendig sind. Ausserdem wird der Speicher gepinnt, d. h. es findet kein Paging statt.
Kernel- und Hardwarevoraussetzungen:
Der Huge Page Support ist bei SLES 11 standardmässig aktiviert:
app-pweb:~ # sysctl kernel.shmmax
kernel.shmmax = 18446744073709551615
Die Seitengrösse ist bei unserer Hardware 2 MB:
app-pweb:~ # cat /proc/meminfo | grep Hugepagesize
Hugepagesize: 2048 kB
Einrichtung:
Gruppe einrichten
Eintrag in /etc/group
hugepage:!:90:root
Die Mitglieder der Gruppe sind die Laufzeituser der Applikationen, die den Speicher verwenden sollen.
Kernelparameter setzen
sysctl -w vm.hugetlb_shm_group=90
Limits für die Gruppe in /etc/security/limits.conf anpassen
@hugepage soft memlock 1259520
@hugepage hard memlock 1259520
Maximale Größe, die im Speicher gelockt werden darf. Muss grösser oder gleich dem benötigten Speicher sein.
Zahl der Seiten festlegen
sysctl -w vm.nr_hugepages=615
Wenn wir 2.2 GB reservieren wollen, dann benötigen wir 1.2GB/2MB = 615(gerundet).
Kernelparameter persistent machen. Eintrag in /etc/sysctl.conf:
# Huge Page Support - JG
vm.hugetlb_shm_group = 90
vm.nr_hugepages = 615
Anzeigen der belegten Seiten:
cat /proc/meminfo |grep Huge