У меня есть 2 вопроса об использовании памяти дочерними процессами Postgres.
- Когда я задаю
work_mem = 1MB
и запускаю некоторый SQL, дочерний процесс Postgres потребляет память на 130 МБ как PSS и 118 МБ как USS.Я думаю, что work_mem является частной памятью, поэтому, если я установлю work_mem более маленьким, PSS или USS также должны уменьшиться.Но когда я устанавливаю work_mem = 8MB
и запускаю тот же SQL.PSS составляет 138 МБ, а USS - 71 МБ.
Почему большое количество work_mem сокращает потребление личной памяти?
Я бросил один и тот же SQL несколько раз, и дочерний процесс Postgres прекратил увеличивать потребление памяти.Я хочу оценить, сколько памяти будет использовать дочерний процесс, но я не смог найти закономерности.Я думал, что число
join
в SQL связано с потреблением памяти, но, похоже, не связано.
Могу ли я оценить, сколько памяти будут занимать дочерние процессы Postgres?И как я могу это сделать?