Що таке shmmax і shmmni в Oracle?
shmmax : Максимальний розмір окремого сегмента спільної пам’яті, виражений у байтах. Значення має бути достатньо великим, щоб відповідати розміру загального сегмента спільної пам’яті для елемента. shmall : загальний розмір спільних сегментів пам'яті в системі, виражений у сторінках.
Починаючи з першого розділу про обмеження спільної пам’яті, обмеження SHMMAX становить максимальний розмір сегмента спільної пам'яті в системі Linux. Ліміт SHMALL — це максимальний розподіл сторінок спільної пам’яті в системі.
Формули, які ми знайшли:
- shmall = RAM / PAGE_SIZE. shmmax = 1/2 RAM, але не більше 4 ГБ.
- shmall = shmmax / PAGE_SIZE. shmmax = 1/2 RAM, але не більше 4 ГБ.
- shmall = сума розмірів усіх SGA на сервері / PAGE_SIZE.
kernel.shmmni. Визначає максимальну кількість сегментів спільної пам'яті, яку може обробляти сервер бази даних.
SHMMAX визначає максимальний розмір окремого сегмента спільної пам'яті. Параметр SHMMAX має бути достатньо великим, щоб утримувати весь SGA в одному сегменті спільної пам’яті. Низьке значення може спричинити створення кількох спільних сегментів пам’яті, що може призвести до зниження продуктивності.
Виконайте команду Linux ipcs lm щоб відобразити поточні параметри shmmax і shmall. Максимальний розмір сегмента (кбайт) – це значення shmmax, а максимальна загальна спільна пам’ять (кбайт) – це значення, помножене на shmall, помножене на максимальну кількість сегментів.