Shared Memory Einstellungen im HOST und in der VM

<< Click to Display Table of Contents >>

Navigation:  Linux - Ubuntu 24.04 >

Shared Memory Einstellungen im HOST und in der VM

Shared Memory 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.

HOST

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.

VM

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