Я запускаю приложение базы данных в Linux (ubuntu), используя PostgreSQL. Приложение очень интенсивно использует память, поэтому я выделил серверу базы данных 64 ГБ ОЗУ (и 8 ядер ЦП). Похоже, что Postgres не определяет и не использует доступную оперативную память автоматически, а запросы приложения выполняются очень медленно. Например, top
говорит:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5958 postgres 20 0 16.5g 70m 66m R 99 0.1 8:00.83 postgres
4233 postgres 20 0 0 0 0 R 8 0.0 0:00.04 postgres
789 postgres 20 0 16.5g 408m 407m S 2 0.6 0:32.15 postgres
4221 root 20 0 17336 1292 952 R 2 0.0 0:00.01 top
1 root 20 0 24348 2232 1340 S 0 0.0 0:01.59 init
Я попытался увеличить ограничения на стороне ядра для сегментов общей памяти SysV через /etc/sysctl.conf
...
kernel.shmmax=34359738368
kernel.shmall=2147483648
... но это не имело никакого эффекта, даже после перезагрузки. Что мне попробовать дальше?