Size: a a a

pgsql – PostgreSQL

2021 February 11

AL

Alexey Lesovsky in pgsql – PostgreSQL
Konstantin Knizhnik
это если 1000 активных бэкендов
а откуда им взяться? я к тому что непонятна оценка про 0.5TB, т.к. max_connections не приводили
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Я просто к тому, что work_mem надо умножать на число бэкендов
1000 взято просто как пример
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
ааа, если взято как пример... тогда вопрос снимается
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Konstantin Knizhnik
Тогда надо расшифровать "93 ГБ из 94 памяти тратится". На что именно тратится? Есть какая-то выдача ? top-а там или, уж не знаю, - resource monitor на винде...
ну в основном команда postgres , для которой тратится память. Видимо все эти бекенды не правильно работают
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
Daniella Starchenko
ну в основном команда postgres , для которой тратится память. Видимо все эти бекенды не правильно работают
ну если у вас 60 бэкендов сожрали  93-16=77гигов памяти, т.е. по гигу с копейками на брата, то это весьма подозрительно. Либо очень большая схема БД, либо очень сложные запросы, либо ... уж не знаю что. Но я бы всё таки предпочёл увидеть циферки своими глазами.  "в основном команда посгтгрес" - это, извините,  что-то малопонятное.
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Konstantin Knizhnik
ну если у вас 60 бэкендов сожрали  93-16=77гигов памяти, т.е. по гигу с копейками на брата, то это весьма подозрительно. Либо очень большая схема БД, либо очень сложные запросы, либо ... уж не знаю что. Но я бы всё таки предпочёл увидеть циферки своими глазами.  "в основном команда посгтгрес" - это, извините,  что-то малопонятное.
причем, странным мне кажется, что у меня юзер бд не postgres, а sas
источник

KK

Konstantin Knizhnik in pgsql – PostgreSQL
так, а как вы делаете вывод что они (постгресы) 93 гига сожрали?
А шапочку топа показать можете (там где про общее количество занятой и свободной памяти)?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
@Daniella_Starchenko
я думаю что вы не до конца понимаете как работает использование памяти в Linux, и особенно в случае использования Postgres.

Linux старается все кэшировать и держать в памяти, поэтому при более-менее длительной работе, ситуация с использованием памяти приходит к той что свободной памяти на сервере нет, и вся память отдается под т.н. страничный кэш. При этом если какой-то процесс запросит память, то память может быть взята за счет страничного кэша.

Обратите внимание на график, тут практически нет свободной памяти и относительно большая область кэша - и это нормально.
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Alexey Lesovsky
@Daniella_Starchenko
я думаю что вы не до конца понимаете как работает использование памяти в Linux, и особенно в случае использования Postgres.

Linux старается все кэшировать и держать в памяти, поэтому при более-менее длительной работе, ситуация с использованием памяти приходит к той что свободной памяти на сервере нет, и вся память отдается под т.н. страничный кэш. При этом если какой-то процесс запросит память, то память может быть взята за счет страничного кэша.

Обратите внимание на график, тут практически нет свободной памяти и относительно большая область кэша - и это нормально.
у меня, кажется, не то. Во первых, мониторинг zabbix гласит, что осталось менее 5% свободной памяти. Плюс у меня бывает так, что сервер блокируется и очень медленно работает
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
присоединяюсь к просьбе Константина, покажите шапку top'а
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Konstantin Knizhnik
так, а как вы делаете вывод что они (постгресы) 93 гига сожрали?
А шапочку топа показать можете (там где про общее количество занятой и свободной памяти)?
извиняюсь, упустила, что шапку не показываю)
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
> Плюс у меня бывает так, что сервер блокируется и очень медленно работает

причина может быть не связана с т.н. утечками памяти... проблема может быть в нагрузке на диске или своппинге
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Daniella Starchenko
извиняюсь, упустила, что шапку не показываю)
не то... надо то что еще выше
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Alexey Lesovsky
не то... надо то что еще выше
что именно нужно, уточните, плиз. Вот тут вижу, что постгрес сжирает память
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
нужно это
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Alexey Lesovsky
> Плюс у меня бывает так, что сервер блокируется и очень медленно работает

причина может быть не связана с т.н. утечками памяти... проблема может быть в нагрузке на диске или своппинге
про нагрузку на диск: хорошая идея. У нас мало места на диске, собираемся увеличивать. Может быть по этой причине процессы лочатся и не могут долго отработать? Это актуально даже для селектов?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
а какие диски на сервере? hdd или ssd/nvme?
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Alexey Lesovsky
нужно это
источник

DS

Daniella Starchenko in pgsql – PostgreSQL
Alexey Lesovsky
а какие диски на сервере? hdd или ssd/nvme?
ssd
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
обратите внимание на cached - там 89GB - у вас память закэширована, это нормально.
источник