Size: a a a

pgsql – PostgreSQL

2021 March 11

СК

Сергей Кравчук... in pgsql – PostgreSQL
какая-то лютая дичь
разобраться конечно интересно
но я бы переинициализировал базу и работал бы с ней дальше

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

VY

Victor Yegorov in pgsql – PostgreSQL
Igor Zinovik
Я писал выше, 9.6.9.
вы же осознаёте, что при текущей 9.6.21 у вас там 3 года багфиксов отсутствуют?
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Victor Yegorov
вы же осознаёте, что при текущей 9.6.21 у вас там 3 года багфиксов отсутствуют?
разумеется
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Igor Zinovik
postgresql-staging-gce-sc-2/postgres # SELECT version();
                                              version                                              
-----------------------------------------------------------------------------------------------------
PostgreSQL 9.6.9 on x86_64-pc-linux-gnu ( ), compiled by gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0, 64-bit


template0 никто не менял.
Также в логе я вижу вот такие предупреждения:
2021-03-11 08:36:57.456 UTC [21176] ERROR:  found xmin 203019837 from before relfrozenxid 481819908
2021-03-11 08:36:57.456 UTC [21176] CONTEXT:  automatic vacuum of table "template0.pg_catalog.pg_database"
2021-03-11 08:36:57.457 UTC [21176] WARNING:  database "template0" must be vacuumed within 1000000 transactions
2021-03-11 08:36:57.457 UTC [21176] HINT:  To avoid a database shutdown, execute a database-wide VACUUM in that database.
       You might also need to commit or roll back old prepared transactions.
А должно было быть 9.6.21.

Тут похоже на то, что это bug PostgreSQL (что-то мне такое вспоминается) — вот последствия того, что кто-то вовремя не обновляется.
В общем, если там ничего ценного нет, а дампы есть — легче снести этот кластер, обновить PostgreSQL, создать новый кластер и залить дампы.
А иначе Вам дорога в release notes — искать эту ошибку и рекомендации, что с ней делать.
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Yaroslav Schekin
А должно было быть 9.6.21.

Тут похоже на то, что это bug PostgreSQL (что-то мне такое вспоминается) — вот последствия того, что кто-то вовремя не обновляется.
В общем, если там ничего ценного нет, а дампы есть — легче снести этот кластер, обновить PostgreSQL, создать новый кластер и залить дампы.
А иначе Вам дорога в release notes — искать эту ошибку и рекомендации, что с ней делать.
рестарт кластера может помочь в данной ситуации?
источник

СК

Сергей Кравчук... in pgsql – PostgreSQL
Igor Zinovik
рестарт кластера может помочь в данной ситуации?
святой ребут конечно можно попробовать
но сомнительно что поможет
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
Сергей Кравчук
святой ребут конечно можно попробовать
но сомнительно что поможет
рестарт не помог
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Igor Zinovik
разумеется
1. ставите 9.6.21
2. читаете https://www.postgresql.org/message-id/20180620155148.7smdpcgcp4eh7rzq%40alap3.anarazel.de
3. останавливаете базу, делаете mv $PGDATA/global/pg_internal.init $PGADAT/global/pg_internal.init.bak
4. запускаете базу
5. делаете VACUUM в любой базе.

должно помочь
источник

IZ

Igor Zinovik in pgsql – PostgreSQL
ок, спасибо, мне только для начала надо .deb пакет 9.6.21 собрать под мою убунту
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Igor Zinovik
ок, спасибо, мне только для начала надо .deb пакет 9.6.21 собрать под мою убунту
нахрена? всё давно есть и в стандартных репах, и в PGDG репах: https://wiki.postgresql.org/wiki/Apt
источник

SM

Setplus Mac in pgsql – PostgreSQL
Setplus Mac
Всем привет. Подскажите, плиз: iotop показывает >90% на диске, вып-ся почти 10 инсёртов в секунду. Как нагрузку на диск снизить? С чего начать?
Может кто помочь разобраться?
источник

SM

Setplus Mac in pgsql – PostgreSQL
Конфиги скинул и параметры скинул
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Yaroslav Schekin
Вопрос же не только в этом, а и том, больше это труда или меньше...
Я думаю тут вопрос масштаба.

Приведу пример c Zalando - у них в kubernetes очень большое количество постгресов (десятки сотен) как staging так и разного объема production. Очевидно что задача мажорного обновления возникает регулярно. Так вот от ручного апгрейда они ушли совсем, у них для постгресов собран образ (вроде spilo, но могу и наврать) со всем необходимым инструментарием, в нем работают постгресы. Так вот, при запуске контейнера есть проверка необходимости апгрейда и его запуск если он требуется. Приложения при этом готовы к этому, и просто делают периодческий реконнект.
Я думаю в этом случае, подход со сборкой образа сильно экономит время и затраты труда.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Alexey Lesovsky
Я думаю тут вопрос масштаба.

Приведу пример c Zalando - у них в kubernetes очень большое количество постгресов (десятки сотен) как staging так и разного объема production. Очевидно что задача мажорного обновления возникает регулярно. Так вот от ручного апгрейда они ушли совсем, у них для постгресов собран образ (вроде spilo, но могу и наврать) со всем необходимым инструментарием, в нем работают постгресы. Так вот, при запуске контейнера есть проверка необходимости апгрейда и его запуск если он требуется. Приложения при этом готовы к этому, и просто делают периодческий реконнект.
Я думаю в этом случае, подход со сборкой образа сильно экономит время и затраты труда.
Так всё равно там много нетривиального scripting.
Который, казалось бы, так же получился бы и без kubernetes, нет?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Setplus Mac
Может кто помочь разобраться?
1. есть ли на это хосте "шумные" соседи, которые могут генерировать нагрузку? например другие службы или контейнеры
2. напишите характеристики системы - количество cpu, объем ram, тип дисков (hdd/ssd)
3. покажите вывод iostat -x -m 1 в момент проблем с производительностью
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Setplus Mac
Конфиги скинул и параметры скинул
Где? И Вам же уже давали советы, кажется — Вы им последовали?
источник

SM

Setplus Mac in pgsql – PostgreSQL
Setplus Mac
И вот конфиг

max_connections = 200
shared_buffers = 4GB
effective_cache_size = 12GB
maintenance_work_mem = 1GB
checkpoint_completion_target = 0.7
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 4
effective_io_concurrency = 2
work_mem = 5242kB
min_wal_size = 1GB
max_wal_size = 4GB
max_worker_processes = 8
max_parallel_workers_per_gather = 4
max_parallel_workers = 8
max_parallel_maintenance_workers = 4
Вот
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Yaroslav Schekin
Так всё равно там много нетривиального scripting.
Который, казалось бы, так же получился бы и без kubernetes, нет?
сложно сказать, я не являюсь сотрудником заландо, и деталей всей кухни не знаю. Наверняка какой-то скриптинг есть, куда без него.
Но, я точно знаю, что kubernetes появился для stateless приложений, и только получив и осознав преимущества эксплуатации stateless в k8s, уже потом появились мысли и попытки поместить туда еще и постгрес и прочий stateful
источник

SM

Setplus Mac in pgsql – PostgreSQL
Setplus Mac
Выхлоп pg_test_fsync
И вот
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Setplus Mac
И вот
это не совсем то что нужно, это конечно показывает что диски медленные, но не говорит о причинах почему они медленные... надо искать причины. начать следует с оценики работы системы через утилиты top, iostat и изучения окружения (конфигурация железа и настройки системы) где проявляются проблемы
источник