|
<< Click to Display Table of Contents >> Navigation: Linux - Ubuntu 24.04 > Shared Memory Einstellungen im HOST und in der VM |
Gemstone/S ist eine Datenbank und über den SharedMemory können die laufenden "gems" sehr schnell auf die Objekte in der Datenbank zugreifen.
Wenn man eine Datenbank auch im HOST nutzen will, dann müssen entsprechende Einträge wie bei der VM auch beim HOST eingetragen werden. Das wird genauer im folgenden Abschnitt erklärt.
Die Größe des zu nutzenden SharedMemory durch Gemstone/S in der VM (oder auf dem HOST) ist eine Frage der Lizenzdatei. Als Minimum kann 2GB angenommen werden. Falls möglich sollte man Large Shared Parges des Linux-Systems ermöglichen. Dies geschieht in der system.conf jeder Gemstone/S Datenbank.
Unter /etc/sysctl.d wird eine Datei "99-pas.conf" angelegt, die für eine 12GB Shared Pages Size die folgenden Einträge haben sollte:
kernel.shmmax = 12884901888
kernel.shmall = 3145728
vm.nr_hugepages = 6144
Für andere Werte des SharedMemory hier eine Tabelle mit den notwendigen Einträgen:
GiB |
kernel.shmmax |
kernel.shmall |
nr_hugepages (exakt) |
nr_hugepages (+2%) |
|---|---|---|---|---|
2 |
2147483648 |
524288 |
1024 |
1045 |
4 |
4294967296 |
1048576 |
2048 |
2089 |
6 |
6442450944 |
1572864 |
3072 |
3134 |
8 |
8589934592 |
2097152 |
4096 |
4178 |
10 |
10737418240 |
2621440 |
5120 |
5223 |
12 |
12884901888 |
3145728 |
6144 |
6267 |
14 |
15032385536 |
3670016 |
7168 |
7312 |
16 |
17179869184 |
4194304 |
8192 |
8356 |
18 |
19327352832 |
4718592 |
9216 |
9401 |
20 |
21474836480 |
5242880 |
10240 |
10445 |
22 |
23622320128 |
5767168 |
11264 |
11490 |
24 |
25769803776 |
6291456 |
12288 |
12534 |
Erklärung dazu:
•kernel.shmmax - max size (bytes) of a single shared memory segment, ~2080 MB here. GemStone's shared page cache lives in one big SysV shared memory segment, so this needs to be ≥ your configured cache size.
•kernel.shmall - total shared memory pages system-wide, in units of PAGE_SIZE (usually 4096 bytes). 532480 × 4096 ≈ 2181038080 bytes — so this matches shmmax almost exactly (good, that's the usual pairing).
•vm.nr_hugepages - number of 2MB hugepages reserved, 1050 × 2MB ≈ 2100 MB, again roughly matching the shared memory size. This is for GemStone's optional HugePages support to reduce TLB overhead on the shared cache.
Mittels des folgenden Skripts werden die Einträge im System übernommen (wenn man es manuell ändert) - ansonsten geschieht das Setzen beim Booten des Systems
sudo sysctl --system
Bei einigen System ist der PATH nicht so definert, dass ein normaler Benutzer sysctl finden kann