|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
Хочется оценить возможности использования PostgreSQL в одном из проектов, и хочется прояснить несколько вопросов о возможностях PostgreSQL. Можно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster? То что я прочитал, не требует разделяемого хранилища, но при этом нагружает базу данных, что выглядит плохо. Еще вопрос. Как PostgreSQL работает с большими базами и большими объемами памяти? Например, база данных размером 500 Гб, активная часть данных 200 Гб, 256 Гб ОЗУ, 32 ядра процессора. Как PostgreSQL будет работать при этих параметрах при 300+ открытых соединениях, при этом в каждый момент времени 20-30 соединений будут параллельно выполнять какие-то запросы? Вопрос про надежность. Реально ли получить 24x6 надежность? При том что в течение этих 6 дней даже глубокой ночью имеется минимум несколько сотен активных пользователей, которые будут недовольны даже если база будет недоступна несколько секунд. И вопрос про оптимизацию. И в MS SQL, и в Оракл имеется много возможностей по оптимизации запросов, при помощи различных хинтов. Как с этим обстоит дело в PostgreSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 15:49 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Зачем? andsmЕще вопрос. Как PostgreSQL работает с большими базами и большими объемами памяти? Например, база данных размером 500 Гб, активная часть данных 200 Гб, 256 Гб ОЗУ, 32 ядра процессора. Как PostgreSQL будет работать при этих параметрах при 300+ открытых соединениях, при этом в каждый момент времени 20-30 соединений будут параллельно выполнять какие-то запросы? Нормально, но не на дефолтном конфиге, разумеется. Хотя конечно "какие-то запросы" - штука сильно растяжимая. andsmВопрос про надежность. Реально ли получить 24x6 надежность? При том что в течение этих 6 дней даже глубокой ночью имеется минимум несколько сотен активных пользователей, которые будут недовольны даже если база будет недоступна несколько секунд. На нормальном железе - да. andsmИ вопрос про оптимизацию. И в MS SQL, и в Оракл имеется много возможностей по оптимизации запросов, при помощи различных хинтов. Как с этим обстоит дело в PostgreSQL? Хинты - это не про оптимизацию. Это про костыли. Хинтов нет, костыли для граничных случаев есть. По всем вышеперечисленным вопросам ответ ничем не отличается от других баз - нужен DBA. Террабайтные базы 24/7 и под mysql можно крутить, если уметь. А если не уметь - то и оракл не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 16:09 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
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 ни разу не встречал. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 16:54 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmMelkijпропущено... Зачем? Потому что, согласно тому что читал, решения на основе синхронной репликации замедляют сервер где-то от 30% до 2-3 раз. Очевидно, что при высокой нагрузке на сервер его хочется разгрузить. А сетевой диск бесплатно? Синхронная репликация - это ожидание подтверждения получения wal репликой. То есть только при записи. Аналогично сетевому диску запись отправить по сети и дождаться ответа. Но сетевой диск будет медленнее и на чтении тоже. andsmЕсть ли примеры подобных решений на PostgreSQL для mission-critical систем? И как при этом обходится вакууминг или как это называется? headhunter? Lamoda? Яндекс много где, в общем-то. Mission critical? Да. Автовакуум настраивается агрессивно и отстреливаются аномально долгие транзакции, чтобы не мешали. andsm24/7 под mysql? Видимо у нас разные понятия о том что такое 24/7. Честный 24/7 под mysql ни разу не встречал. Спросите у percona. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2018, 17:59 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsm, авторМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster? Если нужна доступность можно без репликации сделать HA Cluster с общим хранилищем ( pacemaker, corosync ) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 09:59 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
Melkijandsmпропущено... Потому что, согласно тому что читал, решения на основе синхронной репликации замедляют сервер где-то от 30% до 2-3 раз. Очевидно, что при высокой нагрузке на сервер его хочется разгрузить. А сетевой диск бесплатно? Какой сетевой диск если я говорю про разделяемое хранилище, SAN? Соединяется напрямую с серверами, по FC 10+ гбит и соответствующей скоростью, ставим туда SSD диски. Понятно что это дороже и чем сетевой диск и чем отдельные диски. Стоит это примерно от 20k$. Однако если хочется и надежность и производительность и есть готовность заплатить, то хочется наличия такой возможности. MelkijСинхронная репликация - это ожидание подтверждения получения wal репликой. То есть только при записи. Аналогично сетевому диску запись отправить по сети и дождаться ответа. Но сетевой диск будет медленнее и на чтении тоже. Чувствуется что не работали с хорошими хранилищами. Для сетевого диска пишете правильно, для разделяемого хранилища - полностью неверно. MelkijandsmЕсть ли примеры подобных решений на PostgreSQL для mission-critical систем? И как при этом обходится вакууминг или как это называется? headhunter? Lamoda? Яндекс много где, в общем-то. Mission critical? Да. Что там в Яндексе не знаю, а headhunter и Lamoda не впечатляют от слова совсем. Занимался как-то базой данных для одного из сайтов, куда более посещаемого чем headhunter. И, в процессе, понял что не такие уж на деле высокие требования по доступности для веб-сайтов. Если система подзависнет на несколько секунд, никто и не заметит. Есть ли примеры финансовых систем на PostgreSQL? MelkijАвтовакуум настраивается агрессивно и отстреливаются аномально долгие транзакции, чтобы не мешали. Как-то не очень звучит. Что такое аномально долгая транзакция в секундах? А если она нужна? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 13:22 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
alexkirandsm, авторМожно ли как-то настроить кластер PostgreSQL с разделяемым хранилищем? Аналогично как в SQL Server c MS Cluster? Если нужна доступность можно без репликации сделать HA Cluster с общим хранилищем ( pacemaker, corosync ) Спасибо! Хоть на какой-то вопрос нашел ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 13:23 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
И что там в PostgreSQL с параллелизмом? Как он использует ядра процессора? Кеш операционки или собственный? Разделяемый кеш или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 13:25 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmКакой сетевой диск если я говорю про разделяемое хранилище, SAN? Соединяется напрямую с серверами, по FC 10+ гбит От этого оно не перестаёт быть сетевым диском. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 13:34 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmИ что там в PostgreSQL с параллелизмом? Как он использует ядра процессора? Кеш операционки или собственный? Разделяемый кеш или нет? Если вы задаете такие вопросы вам надо начинать или с чтения книжек или с наема профильного специалиста в компанию (если вы действительно финансовую систему с 24x7 собираетесь на postgresql строить). Потому что иначе тут придется вам рассказывать очень много всего. Про параллельное выполнение запроса 1)до 9.6 - никак вообще 9.6 - для некоторых запросов в 10.0 - для несколько большего набора запросов в 11 будет еще для большего набора запросов... Как он использует ядра процессора? расшифруйте вопрос а тот тут лекцию на несколько часов написать можно. Кеш операционки или собственный? И то и это... с сильной ориентацией (официально) на кеш операционки. В реальности можно и попробовать почти всю память под свой кеш выделить но оно не всегда будет работать эффективно. Разделяемый кеш или нет? Расшифруйте вопрос. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 13:53 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
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 базе - зачем бы? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 15:13 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
Предложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник". Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 17:09 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
Maxim BogukandsmИ что там в PostgreSQL с параллелизмом? Как он использует ядра процессора? Кеш операционки или собственный? Разделяемый кеш или нет? Если вы задаете такие вопросы вам надо начинать или с чтения книжек или с наема профильного специалиста в компанию (если вы действительно финансовую систему с 24x7 собираетесь на postgresql строить). Никто не собирается финансовую систему с 24x7 реально делать на PostgreSQL. Задача, под которую на самом деле рассматривается postgresql, намного проще и не требует такого уровня надежности. Ну а приведенные параметры - это параметры реально работающей системы (на MS SQL), с которыми проще проводить сравнение чтобы понять возможности PostgreSQL. Maxim BogukПотому что иначе тут придется вам рассказывать очень много всего. Про параллельное выполнение запроса 1)до 9.6 - никак вообще 9.6 - для некоторых запросов в 10.0 - для несколько большего набора запросов в 11 будет еще для большего набора запросов... Это, насколько понимаю, ответ на вопрос про параллелизм запросов. Maxim BogukРазделяемый кеш или нет? Расшифруйте вопрос. Кеш данных один для всего PostgreSQL или разные запросы могут читать одни и те же данные в свои кешы? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 18:16 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
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? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 18:22 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
HawkmoonПредложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник". Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет. Хех. Проспали более 10 лет? MSSQL может себя вести и как версионник, и как блокировочник. Есть особенности, связанные с особенностями наложения блокировок на индексы при работе, но они все известны и понятны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 18:26 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmHawkmoonПредложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник". Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет. Хех. Проспали более 10 лет? MSSQL может себя вести и как версионник, и как блокировочник. Есть особенности, связанные с особенностями наложения блокировок на индексы при работе, но они все известны и понятны. Оставайтесь на нем, в чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 18:28 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmHawkmoonПредложил бы озаботиться премногоуважаемому ТС с его активностью в MSSQL-части форума для начала миграции озаботиться переходом "блокировочник->версионник". Если, конечно, речь идет о миграции. Чтобы потом не было бы мучительно больно за бесцельно прожранный бюджет. Хех. Проспали более 10 лет? MSSQL может себя вести и как версионник, и как блокировочник. Есть особенности, связанные с особенностями наложения блокировок на индексы при работе, но они все известны и понятны.вангую -- вам именно советовали нагнуть м$скл к лесу передом, т.е. как блокировочник. и подергать его за вымя , пока не станет ясно чем писанина для блокировочника в корне отличается от оной для версионника а то некоторые только в блокировках индексов проблемы видят. а вообще вам правильно посоветовали -- нанять спеца по пж. и начать с ним макетик прорисовывать - в железе малом и с обзиранием грабель, коих воз и тележка. авось прыти поубавиццо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2018, 19:46 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
[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-е. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 18:44 |
|
Кластер PostgreSQL и возможности PostgreSQL
|
|||
---|---|---|---|
#18+
andsmПричина почему в Оракл возникает Snapshot Too Old понятно, это можно регулировать. А как с этим в PostgreSQL? Не так страшен вакуум, как его малюют. Обычно, autovacuum вполне справляется, при двух условиях: 1. схему базы данных и код, который с ней работает, писали люди, который понимают как работает PG, какие его слабые и сильные стороны. А то был у меня проект, где базу дизайнили люди, пришедшие из мира NoSQL, а весь опыт их работы с реляционными базами ограничивался микроскопическими базами на 4-5 таблиц в MySQL. В этом случае никакой autovacuum не спасет. 2. Админ постгреса должен понимать, что он тюнит в настройках autovacuum и зачем именно так делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2018, 18:56 |
|
|
start [/forum/topic.php?fid=53&msg=39707663&tid=1995544]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 164ms |
0 / 0 |