Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сколько памяти использует запрос / 15 сообщений из 15, страница 1 из 1
13.10.2020, 11:57
    #40008014
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
Подскажите пожулуйста, есть какой то удобный способ, вот есть конкретный запрос

Посмотреть по этому запросу, сколько памяти понадобилось на его выполнение. Сколько он задействовал из shared buffers.

По плану запроса в принципе можно посмотреть shared hit каждого узла и посмотреть сколько work_mem было задействовано для каждого узла, можно ли как то удобно посмотреть так же, максимум памяти для узла в запросе, память для всех узлов запроса?
...
Рейтинг: 0 / 0
13.10.2020, 12:30
    #40008037
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
и объем данных, которые он в итоге выгребает в мегабайтах
...
Рейтинг: 0 / 0
13.10.2020, 14:02
    #40008078
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
kliff
и объем данных, которые он в итоге выгребает в мегабайтах


выгребает в каком смысле?
сколько было считано из файловой системы?
сколько было считано с физических дисков?
сколько по сети передали (так оно зависит от кучи факторов включая наличие или отсутствие ssl)?

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

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
13.10.2020, 18:39
    #40008167
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
Maxim Boguk
kliff
и объем данных, которые он в итоге выгребает в мегабайтах


выгребает в каком смысле?
сколько было считано из файловой системы?
сколько было считано с физических дисков?
сколько по сети передали (так оно зависит от кучи факторов включая наличие или отсутствие ssl)?

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

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


да, сколько приблизительно ему надо передать по сети. Но важнее конечно вопрос про оперативку.
...
Рейтинг: 0 / 0
13.10.2020, 19:02
    #40008172
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
kliff


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


если work_mem не хватило то начнется использование temp файлов и это будет видно в explain analyze
кроме этого ничего нет...

а зачем вам это все?
какую задачу решаем?


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
13.10.2020, 20:22
    #40008206
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
Maxim Boguk,
Задача - есть порядочно большой запрос, но он очень частый, он сразу выполняется при входе юзера в систему ну и вообще самый частый запрос в системе, по сути он основной в системе. Вот надо подобрать оптимальные настройки PG под 5000 пользователей, из них примерно у 500 этот запрос будет выполняться одновременно. Нагрузка адски неравномерная, то есть например все 5000 одновременно подключаются в понедельник с 9 утра до 2х дня, все остальное время в системе 2000 пользователей. Памяти можно поставить хоть сколько, процессоров хоть сколько. Винты не ssd. Пока не понятно честно говоря как понять необходимый объем памяти и настройки под него.

будет видно в explain analyze, то есть только методом тыка подбирать work_mem, меняя его.
...
Рейтинг: 0 / 0
13.10.2020, 22:03
    #40008262
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
kliff
Maxim Boguk,
Задача - есть порядочно большой запрос, но он очень частый, он сразу выполняется при входе юзера в систему ну и вообще самый частый запрос в системе, по сути он основной в системе. Вот надо подобрать оптимальные настройки PG под 5000 пользователей, из них примерно у 500 этот запрос будет выполняться одновременно. Нагрузка адски неравномерная, то есть например все 5000 одновременно подключаются в понедельник с 9 утра до 2х дня, все остальное время в системе 2000 пользователей. Памяти можно поставить хоть сколько, процессоров хоть сколько. Винты не ssd. Пока не понятно честно говоря как понять необходимый объем памяти и настройки под него.

будет видно в explain analyze, то есть только методом тыка подбирать work_mem, меняя его.

и судя по 22207666 у этого PG только 8 рабочих процессов? Вы шутите батенька. Рабочих процессов на боксе с винтами должно быть как минимум в пять раз больще чем количество ядер. Let me think. 500 сложных запросов одновременно на HDDs.... Я бы поставил, для начала, каропку с минимум 80 ядрами (типа lenovo x3850x6) и сконфигил бы max_worker_processes=500.
...
Рейтинг: 0 / 0
13.10.2020, 22:09
    #40008265
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
OoCc
и судя по 22207666 у этого PG только 8 рабочих процессов? Вы шутите батенька. Рабочих процессов на боксе с винтами должно быть как минимум в пять раз больще чем количество ядер. Let me think. 500 сложных запросов одновременно на HDDs.... Я бы поставил, для начала, каропку с минимум 80 ядрами (типа lenovo x3850x6) и сконфигил бы max_worker_processes=500.

откуда такие цифры? можете обосновать?
...
Рейтинг: 0 / 0
13.10.2020, 22:11
    #40008266
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
OoCc
kliff
Maxim Boguk,
Задача - есть порядочно большой запрос, но он очень частый, он сразу выполняется при входе юзера в систему ну и вообще самый частый запрос в системе, по сути он основной в системе. Вот надо подобрать оптимальные настройки PG под 5000 пользователей, из них примерно у 500 этот запрос будет выполняться одновременно. Нагрузка адски неравномерная, то есть например все 5000 одновременно подключаются в понедельник с 9 утра до 2х дня, все остальное время в системе 2000 пользователей. Памяти можно поставить хоть сколько, процессоров хоть сколько. Винты не ssd. Пока не понятно честно говоря как понять необходимый объем памяти и настройки под него.

будет видно в explain analyze, то есть только методом тыка подбирать work_mem, меняя его.

и судя по 22207666 у этого PG только 8 рабочих процессов? Вы шутите батенька. Рабочих процессов на боксе с винтами должно быть как минимум в пять раз больще чем количество ядер. Let me think. 500 сложных запросов одновременно на HDDs.... Я бы поставил, для начала, каропку с минимум 80 ядрами (типа lenovo x3850x6) и сконфигил бы max_worker_processes=500.


очень вряд ли быстрый и частый запрос будет parralel workers использовать... они для аналитики а тут OLTP какой то недоделанный...
а если запрос параллельное выполнение не использует то пользы от max_worker_processes=500 не только вредно но еще и бесполезно.
Да и доступ к hdd легко насыщается 1 процессом (200iops как то и в один поток прожевать не сложно).


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
14.10.2020, 10:21
    #40008354
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
[quot Maxim Boguk#22213762]
OoCc
пропущено...
а тут OLTP какой то недоделанный
--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


В каком плане не доделанный?
...
Рейтинг: 0 / 0
14.10.2020, 10:42
    #40008364
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
vyegorov
OoCc
и судя по 22207666 у этого PG только 8 рабочих процессов? Вы шутите батенька. Рабочих процессов на боксе с винтами должно быть как минимум в пять раз больще чем количество ядер. Let me think. 500 сложных запросов одновременно на HDDs.... Я бы поставил, для начала, каропку с минимум 80 ядрами (типа lenovo x3850x6) и сконфигил бы max_worker_processes=500.

откуда такие цифры? можете обосновать?

Я был неправ, у меня другой тип нагрузки.
...
Рейтинг: 0 / 0
14.10.2020, 10:55
    #40008367
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
Ну вот в этом и проблема, литературу то я перечитал по настройкам, но тут нужен именно опыт. Кто то говорит ставь равное количеству ядер, кто то количество ядер умножь на 10 и тд. Вопрос и правда сложный и неоднозначный.
...
Рейтинг: 0 / 0
14.10.2020, 11:20
    #40008372
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
[quot kliff#22213934]
Maxim Boguk
пропущено...


В каком плане не доделанный?


В том смысле что "Задача - есть порядочно большой запрос, но он очень частый, он сразу выполняется при входе юзера в систему ну и вообще самый частый запрос в системе, по сути он основной в системе. " - это с одной стороны OLTP потому что очень частый/самый частый а с другой стороны нет потому что "порядочно большой запрос".

Вы бы его вместе с планом бы показали - может чего умного бы посоветовали.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
20.10.2020, 08:29
    #40010072
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
[quot Maxim Boguk#22213983]
kliff
пропущено...


В том смысле что "Задача - есть порядочно большой запрос, но он очень частый, он сразу выполняется при входе юзера в систему ну и вообще самый частый запрос в системе, по сути он основной в системе. " - это с одной стороны OLTP потому что очень частый/самый частый а с другой стороны нет потому что "порядочно большой запрос".

Вы бы его вместе с планом бы показали - может чего умного бы посоветовали.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Я уже писал про запрос, он на 800 строк и я уверен, что революционно его разогнать можно только полностью пересмотрев работу приложения и изменив логику запроса, работаю над этим. Оптимизировать план не вижу перспектив.

Конечно хотелось бы понять, почему система начинает подтормаживать при наплыве пользователей, хотя ОЗУ не расходуется даже на треть, процессоры не загружены даже наполовину в основном. По Забикс не просаживается ни один из показателей.
...
Рейтинг: 0 / 0
20.10.2020, 11:41
    #40010123
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сколько памяти использует запрос
[quot kliff#22217186]
Maxim Boguk
пропущено...

Конечно хотелось бы понять, почему система начинает подтормаживать при наплыве пользователей, хотя ОЗУ не расходуется даже на треть, процессоры не загружены даже наполовину в основном. По Забикс не просаживается ни один из показателей.


1)"ОЗУ не расходуется даже на треть" - знать бы как оно это считает ваш мониторинг и отличает ли он память занятую под дисковый кеш операционной системы (где база основную часть данных кеширует обычно) и действительно свободную память

2)"По Забикс не просаживается ни один из показателей" - zabbix по умолчанию в принципе не пригоден для адекватного мониторинга сервера с базой... поставьте okmeter хотя бы временно и скорее всего все яснее станет


Теоретически какие ресурсы могут у сервера с базой закончится:
1)IO - у вас есть графики IO утилизации, IOPS и latency по чтению и записи? учитывая что у вас hdd - там много не надо чтобы все начало тормозить
2)коннекты к базе (тут надо смотреть сколько коннектов у вас есть максимум, и разбивка по тем чем заняты те что установлены (idle/idle in trasnaction/active/waiting) - этот график у вас есть?
3)CPU ну тут вы говорите что не занят могу только поверить
4)пропускная способность сети - у вас графики по сети есть там никаких полок или потерь пакетов не видно?
5)если используется connection pooling того или иного вида - там тоже много интересных эффектов может быть... графики использования пула коннектов у вас есть?


PS: график времени ответа среднего от базы есть? а графики request per second по самым популярным запросам?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сколько памяти использует запрос / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]