172 похожих чатов

У вас при любой нагрузке лимит конекшинов на постгресе до

100? вы все регулируете пгбаунсером?

у меня примерно 2000 конекшинов от бэкэнда. как мне максимально правильно настроить пгбаунсер и постгрес?

23 ответов

13 просмотров

если мне не изменяет память > 100 нельзя в PSQL и в DB2 такое же ограничение

В идеале, max_connections бессмысленно делать больше числа доступных физических ядер процессоров сервера.

Artur Karapetov
если мне не изменяет память > 100 нельзя в PSQL и ...

Это неверно. Указать можно сколько угодно, и оно честно отработает. Какие при этом возникнут проблемы - это второй вопрос

Dima Igrishin
В идеале, max_connections бессмысленно делать боль...

Если 90% из них 90% времени простаивают, то вполне себе полезно.

Dima Igrishin
В идеале, max_connections бессмысленно делать боль...

Это неверно. Если оптимизировать общую пропускную способность (скорость), то параллелизм должэн забить все устройства до насыщения самого ограничивающего. К количеству процэссоров это часто имеет очень опосредованное отношэние. И это число чаще всего заметно большэ количества процэссоров.

Роман Жарков
Если 90% из них 90% времени простаивают, то вполне...

Я ж говорю, в идеале. Простой 9 бэкэндов из 10 в 90% говорит лишь об одном - плохой архитектуре решения.

Ilya Anfimov
Это неверно. Если оптимизировать общую пропускную ...

Ну так сделайте max_connections равным 100000 и забьются все ядра и будет суперсервер, наверное. 😁

Ilya Anfimov
Это неверно. Если оптимизировать общую пропускную ...

Каждый бэкэнд ложится на физическое ядро. Из этого, соответственно, мои выводы.

Dima Igrishin
Я ж говорю, в идеале. Простой 9 бэкэндов из 10 в 9...

У вас десять условных кассиров в условной 1С держат десять сессий и не успевают нагрузить пару четырёхгигагерцовых ядер. Где архитектурная ошибка?

Dima Igrishin
Каждый бэкэнд ложится на физическое ядро. Из этого...

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

Роман Жарков
У вас десять условных кассиров в условной 1С держа...

Я ж говорю, о том, к чему нужно стремиться в идеале. Для такого детского случая, как Вы сейчас привели, в постгресе по дефолту стоит max_connections равным 100, как раз потому, чтобы большинство кассиров было довольно. Но человек то спрашивал про кейс с max_connections 2000. Т.е. его кейс скорее о хороших нагрузках, для которых и придумали пулы, вроде баунсера, хотя, в идеале, такой пул должен быть в постгресе, и над его реализацией работает уже давно К. Книжник, если я не ошибаюсь.

Ilya Anfimov
Эти выводы довольно безосновательны и несоответств...

Хехе. Когда на сервере N ядер, то установка max_connections больше, чем N - это либо самообман, либо случаи, вроде упомянутых Романом - 10 кассиров кое-как работают с бд без загрузки последней.

Dima Igrishin
Каждый бэкэнд ложится на физическое ядро. Из этого...

В реальности бОльшая часть задач СУБД — io-bound. Потому, как минимум, базе надо забить очереди дисков. Которых во-первых много, во-вторых до них можэт быть приличный round-trip в десятки микросекунд (если это SAN какой-нибудь). При этом, когда 50 бэкэндов ждут своих данных от дисков в полёте — всё равно жэлательно, чтобы задачи для дисков вычислялись. Есди при равномерной нагрузке у нас 100% нагрузка дисков требует 20% загрузки CPU — то получается, что требуется ещё 1/5 от количества процэссоров. Примерно та жэ ситуацыя с загрузкой шыны памяти (только мониторить её сложнее, чем диски и процэссоры). В общем, в большынстве ситуацый надо заметно большэ воркеров, чем голов ЦПУ.

Ilya Anfimov
В реальности бОльшая часть задач СУБД — io-bound. ...

Во сколько раз больше? Каковы Ваши рекомендации?

Dima Igrishin
Во сколько раз больше? Каковы Ваши рекомендации?

Провести нагрузочное тэстирование и определить максимум tps.

Ilya Anfimov
Провести нагрузочное тэстирование и определить мак...

Соглашусь. Но в идеале max_connections равен числу ядер, без всякого тестирования. Если речь идёт о нагрузках, то лучше перестраховаться и не задирать max_connections выше этого.

Dima Igrishin
Во сколько раз больше? Каковы Ваши рекомендации?

Ну, то есть можно конечно представить некоторые рекомендацыи там 15 на каждый hdd, 5 на ssd, плюс домножыть round-trip на iops, плюс по числу голов.... Но я ужэ говорил — многое зависит от нагрузки, многое — от расположэния данных. К тому жэ то, что я описал — это бонусы параллелизма. Ещё более богатая тема — его недостатки. Вымывание кэшэй, бесплодное ожыдание блокировок, ... Потому оцэнивать это очень полезно, но хорошый результат даёт эксперимент.

Dima Igrishin
Соглашусь. Но в идеале max_connections равен числу...

Ну, если вы выбрали себе такой идеал — то кто я такой, чтобы с ним интэрферировать. Но идеала всё равно не бывает, так что уж его мусолить. Базы данных у нас те, которые даны в ощущениях, и жэлезо тожэ.

Ilya Anfimov
В реальности бОльшая часть задач СУБД — io-bound. ...

> В реальности бОльшая часть задач СУБД — io-bound. [citation needed] Т.е. откуда "статистика"? > Потому, как минимум, базе надо забить очереди дисков. Потому как вот это выглядит как "кто-то удачно сэкономил на железе", IMHO. ;) > В общем, в большынстве ситуацый надо заметно большэ воркеров, чем голов ЦПУ. В этих ситуациях уже нужно "спасать" перегруженную СУБД, а крутить max_connections и т.п.

Ilya Anfimov
Ну, если вы выбрали себе такой идеал — то кто я та...

Это потому идеал, потому что логичен и очень просто объясняется безо всяких экспериментов и танцев с бубнами. Буквально на пальцах.

Yaroslav Schekin
> В реальности бОльшая часть задач СУБД — io-bound...

Ниоткуда статистика особенно. Так, опыт решэния проблем с СУБД. Последний абзац нераспарзил.

Ilya Anfimov
Ниоткуда статистика особенно. Так, опыт решэния пр...

IMHO, большая часть таких "опытов" с успехом заменяется "just buy the damn RAM!". ;) > Последний абзац нераспарзил. Я про ситуации, "когда 50 бэкэндов ждут своих данных от дисков в полёте".

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта