Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кластер PostgreSQL и возможности PostgreSQL / 19 сообщений из 19, страница 1 из 1
24.09.2018, 15:49
    #39707143
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
Хочется оценить возможности использования PostgreSQL в одном из проектов, и хочется прояснить несколько вопросов о возможностях PostgreSQL.

Можно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster?
То что я прочитал, не требует разделяемого хранилища, но при этом нагружает базу данных, что выглядит плохо.

Еще вопрос. Как PostgreSQL работает с большими базами и большими объемами памяти? Например, база данных размером 500 Гб, активная часть данных 200 Гб, 256 Гб ОЗУ, 32 ядра процессора. Как PostgreSQL будет работать при этих параметрах при 300+ открытых соединениях, при этом в каждый момент времени 20-30 соединений будут параллельно выполнять какие-то запросы?

Вопрос про надежность. Реально ли получить 24x6 надежность? При том что в течение этих 6 дней даже глубокой ночью имеется минимум несколько сотен активных пользователей, которые будут недовольны даже если база будет недоступна несколько секунд.

И вопрос про оптимизацию. И в MS SQL, и в Оракл имеется много возможностей по оптимизации запросов, при помощи различных хинтов. Как с этим обстоит дело в PostgreSQL?
...
Рейтинг: 0 / 0
24.09.2018, 16:09
    #39707169
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем?
Зачем?

andsmЕще вопрос. Как PostgreSQL работает с большими базами и большими объемами памяти? Например, база данных размером 500 Гб, активная часть данных 200 Гб, 256 Гб ОЗУ, 32 ядра процессора. Как PostgreSQL будет работать при этих параметрах при 300+ открытых соединениях, при этом в каждый момент времени 20-30 соединений будут параллельно выполнять какие-то запросы?
Нормально, но не на дефолтном конфиге, разумеется.
Хотя конечно "какие-то запросы" - штука сильно растяжимая.

andsmВопрос про надежность. Реально ли получить 24x6 надежность? При том что в течение этих 6 дней даже глубокой ночью имеется минимум несколько сотен активных пользователей, которые будут недовольны даже если база будет недоступна несколько секунд.
На нормальном железе - да.

andsmИ вопрос про оптимизацию. И в MS SQL, и в Оракл имеется много возможностей по оптимизации запросов, при помощи различных хинтов. Как с этим обстоит дело в PostgreSQL?
Хинты - это не про оптимизацию. Это про костыли.
Хинтов нет, костыли для граничных случаев есть.

По всем вышеперечисленным вопросам ответ ничем не отличается от других баз - нужен DBA.
Террабайтные базы 24/7 и под mysql можно крутить, если уметь. А если не уметь - то и оракл не поможет.
...
Рейтинг: 0 / 0
24.09.2018, 16:54
    #39707197
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
MelkijandsmМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем?
Зачем?

Потому что, согласно тому что читал, решения на основе синхронной репликации замедляют сервер где-то от 30% до 2-3 раз. Очевидно, что при высокой нагрузке на сервер его хочется разгрузить.

MelkijandsmЕще вопрос. Как PostgreSQL работает с большими базами и большими объемами памяти? Например, база данных размером 500 Гб, активная часть данных 200 Гб, 256 Гб ОЗУ, 32 ядра процессора. Как PostgreSQL будет работать при этих параметрах при 300+ открытых соединениях, при этом в каждый момент времени 20-30 соединений будут параллельно выполнять какие-то запросы?
Нормально, но не на дефолтном конфиге, разумеется.
Хотя конечно "какие-то запросы" - штука сильно растяжимая.

Запросы достаточно сложные, джойны 10-15 табличек, некоторые таблички содержат до 1 млрд записей. В среднем возвращают 100-200 записей и должны работать в пределах 50-100 мс. Некоторые запросы могут вытягивать по 150-200 Мб данных и должны работать не более 10-15 сек.

MelkijandsmВопрос про надежность. Реально ли получить 24x6 надежность? При том что в течение этих 6 дней даже глубокой ночью имеется минимум несколько сотен активных пользователей, которые будут недовольны даже если база будет недоступна несколько секунд.
На нормальном железе - да.

Есть ли примеры подобных решений на PostgreSQL для mission-critical систем?
И как при этом обходится вакууминг или как это называется?

MelkijandsmИ вопрос про оптимизацию. И в MS SQL, и в Оракл имеется много возможностей по оптимизации запросов, при помощи различных хинтов. Как с этим обстоит дело в PostgreSQL?
Хинты - это не про оптимизацию. Это про костыли.
Хинтов нет, костыли для граничных случаев есть.

Да нет, в некоторых случаях это необходимая часть решения. Когда разных типов запросов сотни, и под каждый не создашь свою структуру, а оптимизатор не справляется.
Нашел возможности PostgreSQL на эту тему: https://blog.2ndquadrant.com/hinting_at_postgresql/
Выглядит не очень, возможности есть, но маловато.

MelkijПо всем вышеперечисленным вопросам ответ ничем не отличается от других баз - нужен DBA.
Террабайтные базы 24/7 и под mysql можно крутить, если уметь. А если не уметь - то и оракл не поможет.
24/7 под mysql? Видимо у нас разные понятия о том что такое 24/7. Честный 24/7 под mysql ни разу не встречал.
...
Рейтинг: 0 / 0
24.09.2018, 17:59
    #39707232
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmMelkijпропущено...

Зачем?

Потому что, согласно тому что читал, решения на основе синхронной репликации замедляют сервер где-то от 30% до 2-3 раз. Очевидно, что при высокой нагрузке на сервер его хочется разгрузить.
А сетевой диск бесплатно?
Синхронная репликация - это ожидание подтверждения получения wal репликой. То есть только при записи. Аналогично сетевому диску запись отправить по сети и дождаться ответа. Но сетевой диск будет медленнее и на чтении тоже.

andsmЕсть ли примеры подобных решений на PostgreSQL для mission-critical систем?
И как при этом обходится вакууминг или как это называется?
headhunter? Lamoda? Яндекс много где, в общем-то. Mission critical? Да.
Автовакуум настраивается агрессивно и отстреливаются аномально долгие транзакции, чтобы не мешали.

andsm24/7 под mysql? Видимо у нас разные понятия о том что такое 24/7. Честный 24/7 под mysql ни разу не встречал.
Спросите у percona.
...
Рейтинг: 0 / 0
25.09.2018, 09:59
    #39707480
alexkir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsm,

авторМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster?

Если нужна доступность можно без репликации сделать HA Cluster с общим хранилищем ( pacemaker, corosync )
...
Рейтинг: 0 / 0
25.09.2018, 13:22
    #39707644
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
Melkijandsmпропущено...

Потому что, согласно тому что читал, решения на основе синхронной репликации замедляют сервер где-то от 30% до 2-3 раз. Очевидно, что при высокой нагрузке на сервер его хочется разгрузить.
А сетевой диск бесплатно?

Какой сетевой диск если я говорю про разделяемое хранилище, SAN? Соединяется напрямую с серверами, по FC 10+ гбит и соответствующей скоростью, ставим туда SSD диски. Понятно что это дороже и чем сетевой диск и чем отдельные диски. Стоит это примерно от 20k$. Однако если хочется и надежность и производительность и есть готовность заплатить, то хочется наличия такой возможности.

MelkijСинхронная репликация - это ожидание подтверждения получения wal репликой. То есть только при записи. Аналогично сетевому диску запись отправить по сети и дождаться ответа. Но сетевой диск будет медленнее и на чтении тоже.

Чувствуется что не работали с хорошими хранилищами. Для сетевого диска пишете правильно, для разделяемого хранилища - полностью неверно.

MelkijandsmЕсть ли примеры подобных решений на PostgreSQL для mission-critical систем?
И как при этом обходится вакууминг или как это называется?
headhunter? Lamoda? Яндекс много где, в общем-то. Mission critical? Да.

Что там в Яндексе не знаю, а headhunter и Lamoda не впечатляют от слова совсем.
Занимался как-то базой данных для одного из сайтов, куда более посещаемого чем headhunter. И, в процессе, понял что не такие уж на деле высокие требования по доступности для веб-сайтов. Если система подзависнет на несколько секунд, никто и не заметит.
Есть ли примеры финансовых систем на PostgreSQL?

MelkijАвтовакуум настраивается агрессивно и отстреливаются аномально долгие транзакции, чтобы не мешали.

Как-то не очень звучит. Что такое аномально долгая транзакция в секундах? А если она нужна?
...
Рейтинг: 0 / 0
25.09.2018, 13:23
    #39707648
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
alexkirandsm,

авторМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster?

Если нужна доступность можно без репликации сделать HA Cluster с общим хранилищем ( pacemaker, corosync )
Спасибо!
Хоть на какой-то вопрос нашел ответ.
...
Рейтинг: 0 / 0
25.09.2018, 13:25
    #39707651
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
И что там в PostgreSQL с параллелизмом?
Как он использует ядра процессора? Кеш операционки или собственный? Разделяемый кеш или нет?
...
Рейтинг: 0 / 0
25.09.2018, 13:34
    #39707663
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmКакой сетевой диск если я говорю про разделяемое хранилище, SAN? Соединяется напрямую с серверами, по FC 10+ гбит
От этого оно не перестаёт быть сетевым диском.
...
Рейтинг: 0 / 0
25.09.2018, 13:53
    #39707681
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmИ что там в PostgreSQL с параллелизмом?
Как он использует ядра процессора? Кеш операционки или собственный? Разделяемый кеш или нет?

Если вы задаете такие вопросы вам надо начинать или с чтения книжек или с наема профильного специалиста в компанию (если вы действительно финансовую систему с 24x7 собираетесь на postgresql строить).
Потому что иначе тут придется вам рассказывать очень много всего.

Про параллельное выполнение запроса
1)до 9.6 - никак вообще
9.6 - для некоторых запросов
в 10.0 - для несколько большего набора запросов
в 11 будет еще для большего набора запросов...


Как он использует ядра процессора?
расшифруйте вопрос а тот тут лекцию на несколько часов написать можно.


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


Разделяемый кеш или нет?
Расшифруйте вопрос.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
25.09.2018, 15:13
    #39707750
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmЕсть ли примеры финансовых систем на PostgreSQL?
Да, есть. Но я не уверен, могу ли по своему NDA их называть.
Впрочем, вы и в этом случае наверняка ответите, что и эти примеры не годятся по ещё какой-нибудь выдуманной причине.

andsmMelkijпропущено...

А сетевой диск бесплатно?

Какой сетевой диск если я говорю про разделяемое хранилище, SAN? Соединяется напрямую с серверами, по FC 10+ гбит и соответствующей скоростью, ставим туда SSD диски. Понятно что это дороже и чем сетевой диск и чем отдельные диски. Стоит это примерно от 20k$. Однако если хочется и надежность и производительность и есть готовность заплатить, то хочется наличия такой возможности.
Он от этого не перестаёт быть сетевым. SAN - storage area network . А ценники в 20к$ не впечатляют. К производительности, а вернее латентности, при этом большие вопросы. Как все авторы SAN считаете, что 5мс - это хорошее io service time?

andsmMelkijАвтовакуум настраивается агрессивно и отстреливаются аномально долгие транзакции, чтобы не мешали.

Как-то не очень звучит. Что такое аномально долгая транзакция в секундах? А если она нужна?
См. любимый оракл, что случится когда транзакция висит слишком долго? Snapshot Too Old
Аномально долгая транзакция - это транзакция невозможной длительности для проекта. 10 минут, час, 6 часов - сколько нужно. Транзакция длиной в сутки на OLTP базе - зачем бы?
...
Рейтинг: 0 / 0
25.09.2018, 17:09
    #39707887
Hawkmoon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
Предложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник".

Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет.
...
Рейтинг: 0 / 0
25.09.2018, 18:16
    #39707920
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
Maxim BogukandsmИ что там в PostgreSQL с параллелизмом?
Как он использует ядра процессора? Кеш операционки или собственный? Разделяемый кеш или нет?

Если вы задаете такие вопросы вам надо начинать или с чтения книжек или с наема профильного специалиста в компанию (если вы действительно финансовую систему с 24x7 собираетесь на postgresql строить).

Никто не собирается финансовую систему с 24x7 реально делать на PostgreSQL. Задача, под которую на самом деле рассматривается postgresql, намного проще и не требует такого уровня надежности. Ну а приведенные параметры - это параметры реально работающей системы (на MS SQL), с которыми проще проводить сравнение чтобы понять возможности PostgreSQL.

Maxim BogukПотому что иначе тут придется вам рассказывать очень много всего.

Про параллельное выполнение запроса
1)до 9.6 - никак вообще
9.6 - для некоторых запросов
в 10.0 - для несколько большего набора запросов
в 11 будет еще для большего набора запросов...

Это, насколько понимаю, ответ на вопрос про параллелизм запросов.

Maxim BogukРазделяемый кеш или нет?
Расшифруйте вопрос.

Кеш данных один для всего PostgreSQL или разные запросы могут читать одни и те же данные в свои кешы?
...
Рейтинг: 0 / 0
25.09.2018, 18:22
    #39707923
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
MelkijОн от этого не перестаёт быть сетевым. SAN - storage area network . А ценники в 20к$ не впечатляют. К производительности, а вернее латентности, при этом большие вопросы. Как все авторы SAN считаете, что 5мс - это хорошее io service time?

Смотря как сконфигурировать. У нас почти все SAN-ы подсоединены напрямую к серверам, тем самым сетевыми не являются. 20k$ - конечно не много, это же только начало цены таких хранилищ.
5 мс для Io (чтение или запись) это много, особенно если SSD диски и есть аппаратный кеш на запись.

Melkijandsmпропущено...

Как-то не очень звучит. Что такое аномально долгая транзакция в секундах? А если она нужна?
См. любимый оракл, что случится когда транзакция висит слишком долго? Snapshot Too Old
Аномально долгая транзакция - это транзакция невозможной длительности для проекта. 10 минут, час, 6 часов - сколько нужно. Транзакция длиной в сутки на OLTP базе - зачем бы?
Причина почему в Оракл возникает Snapshot Too Old понятно, это можно регулировать.
А как с этим в PostgreSQL?
...
Рейтинг: 0 / 0
25.09.2018, 18:26
    #39707924
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
HawkmoonПредложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник".

Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет.
Хех. Проспали более 10 лет? MSSQL может себя вести и как версионник, и как блокировочник. Есть особенности, связанные с особенностями наложения блокировок на индексы при работе, но они все известны и понятны.
...
Рейтинг: 0 / 0
25.09.2018, 18:28
    #39707926
Синий Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmHawkmoonПредложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник".

Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет.
Хех. Проспали более 10 лет? MSSQL может себя вести и как версионник, и как блокировочник. Есть особенности, связанные с особенностями наложения блокировок на индексы при работе, но они все известны и понятны.

Оставайтесь на нем, в чем проблема?
...
Рейтинг: 0 / 0
25.09.2018, 19:46
    #39707960
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmHawkmoonПредложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник".

Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет.
Хех. Проспали более 10 лет? MSSQL может себя вести и как версионник, и как блокировочник. Есть особенности, связанные с особенностями наложения блокировок на индексы при работе, но они все известны и понятны.вангую -- вам именно советовали нагнуть м$скл к лесу передом, т.е. как блокировочник.
и подергать его за вымя , пока не станет ясно чем писанина для блокировочника в корне отличается от оной для версионника
а то некоторые только в блокировках индексов проблемы видят.


а вообще вам правильно посоветовали -- нанять спеца по пж. и начать с ним макетик прорисовывать - в железе малом и с обзиранием грабель, коих воз и тележка.
авось прыти поубавиццо
...
Рейтинг: 0 / 0
17.10.2018, 18:44
    #39719055
Katu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
[quot andsm]Можно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster?[quot]

Можно. Проще всего на pacemaker + corosync, но есть и другие решения.

[quot andsm]То что я прочитал, не требует разделяемого хранилища, но при этом нагружает базу данных, что выглядит плохо.[quot]
В смысле нагружает? Если речь о синхронной репликации (типа Database Mirroring в терминологии SQL Server-а), то курим описание параметров synchronous_commit и synchronous_standby_names. Асинхронная репликация - вообще практически не нагружает.

[quot andsm]Еще вопрос. Как PostgreSQL работает с большими базами и большими объемами памяти? Например, база данных размером 500 Гб, активная часть данных 200 Гб, 256 Гб ОЗУ, 32 ядра процессора. Как PostgreSQL будет работать при этих параметрах при 300+ открытых соединениях, при этом в каждый момент времени 20-30 соединений будут параллельно выполнять какие-то запросы?[quot]
[quot andsm]Нормально работает. У меня, например, на одном из проектов памяти чуть поменьше (192 ГБ), процессоров побольше, а база где-то 1.5 Тб.[quot]

[quot andsm]Вопрос про надежность. Реально ли получить 24x6 надежность? При том что в течение этих 6 дней даже глубокой ночью имеется минимум несколько сотен активных пользователей, которые будут недовольны даже если база будет недоступна несколько секунд.[quot]
Вышеупомянутый проект - почти 24x7, допустимый maintenance window - не больше 30 минут в день. Пользователей, конечно, поменьше, но даже ночью несколько десятков.

andsmИ вопрос про оптимизацию. И в MS SQL, и в Оракл имеется много возможностей по оптимизации запросов, при помощи различных хинтов. Как с этим обстоит дело в PostgreSQL?
Именно хинтов - нет. Есть возможность на уровне сессии влиять на поведение оптимизатора, в теме уже была ссылка. В большинстве случаев этого достаточно. Другое дело, что лично мне хинты в Pg были нужны реже, чем в том же SQL Server-е.
...
Рейтинг: 0 / 0
17.10.2018, 18:56
    #39719060
Katu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кластер PostgreSQL и возможности PostgreSQL
andsmПричина почему в Оракл возникает Snapshot Too Old понятно, это можно регулировать.
А как с этим в PostgreSQL?
Не так страшен вакуум, как его малюют. Обычно, autovacuum вполне справляется, при двух условиях:
1. схему базы данных и код, который с ней работает, писали люди, который понимают как работает PG, какие его слабые и сильные стороны. А то был у меня проект, где базу дизайнили люди, пришедшие из мира NoSQL, а весь опыт их работы с реляционными базами ограничивался микроскопическими базами на 4-5 таблиц в MySQL. В этом случае никакой autovacuum не спасет.
2. Админ постгреса должен понимать, что он тюнит в настройках autovacuum и зачем именно так делает.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кластер PostgreSQL и возможности PostgreSQL / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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