У меня есть сервер с 16 ГБ памяти.
Теперь мне нужно установить shmmax
и shmall
, потому что сервер по умолчанию (проверено с помощью ipcs -l
)
------ Messages Limits --------
max queues system wide = 32000
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398509465599
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 32000
max semaphores per array = 32000
max semaphores system wide = 1024000000
max ops per semop call = 500
semaphore max value = 32767
Кажется ужасным, shmall
и shmmax
больше моих 16 ГБ.
Поэтому я хочу изменить настройку на
shmmax -> 16GB/4
shmall -> 16GB/2
Но я не могубудьте уверены, какую единицу я установил
shmmax --> 4420960256
shmall --> 8620960256
Но является ли единица измерения моим номером?Байт или КБ?Потому что ipcs -l
показывает КБ ....
echo "kernel.shmmax=4420960256" >> /etc/sysctl.conf
echo 4420960256> /proc/sys/kernel/shmmax
echo "kernel.shmall=8620960256" >> /etc/sysctl.conf
echo 8620960256> /proc/sys/kernel/shmall
спасибо за помощь, но postgresql просто вылетает и убивается вчера, он показывает:
This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 4420960256 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
мои настройки =>
shared_buffers = 4GB
effective_cache_size = 12GB