Добрый день.
Вопрос не так прост, как может показаться с первого вгляда. Имеем окружение Solaris x64. Стоит один (по крайней мере должен стоять один) инстанс Оракла.
RAM: 132Gb
Пытаемся выставить вот такие параметры:
DB_CACHE_ADVICE = 'OFF'
NLS_LENGTH_SEMANTICS = CHAR
MEMORY_MAX_TARGET = 0
MEMORY_TARGET = 0
SGA_MAX_SIZE = 10G
SGA_TARGET = 10G
PGA_AGGREGATE_TARGET = 4GB
DB_CACHE_SIZE = 5G
SHARED_POOL_SIZE = 1G
SHARED_POOL_RESERVED_SIZE = 35M
RESULT_CACHE_MAX_SIZE = 25M
DB_KEEP_CACHE_SIZE = 100M
Но после перезапуска сервер не стартует, падая с ошибкой ORA-04030: out of process memory when trying to allocate 256 bytes (Heap0: KGL,kglob).
То, что гуглилось, сразу проверили:
oracle@server1 $ prctl -n project.max-shm-memory -i project default
project: 3: default
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 31.4GB — deny —
system 16.0EB max deny
ROOT@server1 [UAT Active] /root# swap -l
swapfile dev swaplo blocks free
/dev/swap 0,0 16 76523504 76523504
ROOT@server1 [UAT Active] /root# prtconf |grep -i mem
prtconf:
Memory size: 131072 Megabytes
ROOT@server1 [UAT Active] /root# cat /etc/system
set noexec_user_stack=1
set noexec_user_stack_log=1
Лимиты проверили:
server1 [UAT Active] /root# ulimit -H -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) unlimited
coredump(blocks) unlimited
nofiles(descriptors) 65536
vmemory(kbytes) unlimited
Подскажите путь куда копать! Совсем ступор.