
Artem
17.08.2017
02:55:56
The database system is in recovery mode
И так примерно пару раз в день
Явных факапов в логах не наблюдается.
Куда копать?

Google

sic transit
17.08.2017
03:01:30
Жуть какая то... Уже думаю не прще ли MS SQL Srv купить...

Artem
17.08.2017
03:02:55
Ненене :)

Dmitry
17.08.2017
06:02:18

Artem
17.08.2017
06:04:33
Но данный параметр закоменчен
Т.е. по дефолту.

Dmitry
17.08.2017
06:05:00
Хм... Это меньше всего, что я ожидал
По дефолту 0 вроде... А какая ось?

Artem
17.08.2017
06:05:35
Centos7

Dmitry
17.08.2017
06:06:24
https://www.kernel.org/doc/Documentation/vm/overcommit-accounting
Дефолт 0
Вообще в постресовой рассылке рекомендуют 2
Только vm.overcommit_ratio не забудте поправить

Google

Artem
17.08.2017
06:12:12
Прошу прощения, сразу не указал ошибки в логах:
Server process was terminated by signal 11: Segmentation fault
Версия Постгреса 9.6.4

Dmitry
17.08.2017
06:12:47
И в доке пишут : 17.4.3. Linux Memory Overcommit
On Linux 2.6 and later, it is possible to modify the kernel's behavior so that it will not "overcommit" memory. Although this setting will not prevent the OOM killer from being invoked altogether, it will lower the chances significantly and will therefore lead to more robust system behavior. This is done by selecting strict overcommit mode via sysctl:
sysctl -w vm.overcommit_memory=2
https://www.postgresql.org/docs/9.3/static/kernel-resources.html

Artem
17.08.2017
06:14:14

Mike Chuguniy
17.08.2017
06:14:14
@dmitrykremer , у человека постгрес начал падать после обновления. До обновления, насколько я понял, всё было в порядке. Если так - вакуум фулл на весь инстанс, и молиться, чтобы оный вакуум не свалился.

Artem
17.08.2017
06:15:51
Могу ещё больше подробностей показать, только скажите какие именно))

Dmitry
17.08.2017
06:15:56
У меня такая же ошибка была при обновлении 9.4.5 на 9.4.12. Видимо в какой-то момент PG стал более чуствителен к этому параметру
RHEL 6

Mike Chuguniy
17.08.2017
06:19:22
Стоп, уважаемые коллеги. Оверкоммит - оно же от оомкиллера. А у человека - сегфолт.

Artem
17.08.2017
06:20:21
Посмотрел, оверкоммит мемори был 1, поставил 2.
Overcommit ratio оставил 50

Dmitry
17.08.2017
06:21:20
Я бы не меньше 70 поставил.
У вас кроме постгреса есть на этом хосте что-то?

Петр
17.08.2017
06:21:58
вы лучше посмотрите на чем сегфолт

Artem
17.08.2017
06:22:25
На серваке 252гб памяти, из них занято 82

Петр
17.08.2017
06:23:09
смотрите логи

Artem
17.08.2017
06:25:28
Ratio выставил в 70

Dmitry
17.08.2017
06:26:47
https://www.postgresql.org/message-id/20170207135635.1411.1311@wrigleys.postgresql.org

Google

Nikolay
17.08.2017
06:27:00
После обновления делали?

Artem
17.08.2017
06:27:47
А вот дроп расширения не делал

Nikolay
17.08.2017
06:29:18
Они вам зачем уже после обновления?

Artem
17.08.2017
06:29:44

Nikolay
17.08.2017
06:30:09
Из прелоад тоже и перезагружайтесь.

Alexey
17.08.2017
06:30:41
кстати, граждане постгресоиды, объясните пожалуйста. вот эти ссылки на номера багов, которые периодически встречаются в pgsql-bugs и надписи "The following bug has been logged on the website" они к чему относятся? на каком вебсайте и где можно весь список посмотреть?

Nikolay
17.08.2017
06:31:26

Arthur
17.08.2017
06:33:25

Artem
17.08.2017
06:34:42

Nikolay
17.08.2017
06:35:01
Отпишитесь по результатам.

Alexey
17.08.2017
06:35:02

Mike Chuguniy
17.08.2017
06:35:59
DROP EXTENSION pglogical;
какое, однако, "полезное" расширение. Я прям весь из себя умилился, погрузившись в нирвану восторга. :(

Arthur
17.08.2017
06:36:54

Alexey
17.08.2017
06:37:12

Nikolay
17.08.2017
06:37:57

Dmitry
17.08.2017
06:40:11

Arthur
17.08.2017
06:42:20

Google

Nikolay
17.08.2017
06:44:10
Чую щас кого-то бомбонет ;)

Mike Chuguniy
17.08.2017
06:44:27
@popovnv не поминай мультимастер всуе. А то я и так больной... :)

Dmitry
17.08.2017
06:47:50

Nikolay
17.08.2017
06:55:01
А вообще, кто-нибудь использовал логическую репликацию для "бесшовного" обновления? Стоит оно того?
pg_upgrade -k разве не закрывает 99% случаев?

Darafei
17.08.2017
06:55:25
а как это, "область памяти, которая переназначена другому процессу", если у каждого процесса своё адресное пространство?

Artem
17.08.2017
06:56:28
Так что, до 10 буду через pg-upgrade

Dmitry
17.08.2017
07:01:42

Admin
ERROR: S client not available

Alexey
17.08.2017
07:02:05

Darafei
17.08.2017
07:03:03

Sergey
17.08.2017
07:04:36
Простите, как?
Раскопать core файл оставшийся от процесса и скормить его gdb
Возможно доставить пакет c debug-символами от postgres чтобы core-файл стал понятнее

Alexey
17.08.2017
07:05:31

Nikolay
17.08.2017
07:08:49

Dmitry
17.08.2017
07:08:51

Sergey
17.08.2017
07:11:00

Alexey
17.08.2017
07:12:10
PG не создаёт корки, потому что никогда не падает

Nikolay
17.08.2017
07:12:13

Google

Dmitry
17.08.2017
07:13:25
Они есть. Но их надо включать. https://wiki.postgresql.org/wiki/Getting_a_stack_trace_of_a_running_PostgreSQL_backend_on_Linux/BSD#Enabling_core_dumps

Darafei
17.08.2017
07:14:59

Nikolay
17.08.2017
07:15:51

Alexey
17.08.2017
07:16:10

Dmitry
17.08.2017
07:16:11
Так и не надо выключать :)

Darafei
17.08.2017
07:18:42
должен получиться page fault, и его OS должна обработать, постаравшись замапить страницу

Maksim
17.08.2017
07:20:52

Alexey
17.08.2017
07:21:04

Darafei
17.08.2017
07:22:42
обещанной памяти могло не существовать в принципе :)

Alexey
17.08.2017
07:23:02

Darafei
17.08.2017
07:26:26
oom killer - это не бекграунд и не процесс, это функция ядра "выбрать жертву и убить, когда не хватает памяти"
https://github.com/torvalds/linux/blob/9967468c0a109644e4a1f5b39b39bf86fe7507a7/mm/oom_kill.c
даже https://github.com/torvalds/linux/blob/9967468c0a109644e4a1f5b39b39bf86fe7507a7/mm/oom_kill.c#L1070

Alexey
17.08.2017
07:28:27

Dmitry
17.08.2017
07:29:35
A segmentation fault means a program tried to access an invalid or illegal memory address: for example, 0, or a value larger than any valid pointer. A page fault is when a pointer tries to access a page of address space that's currently not mapped onto physical memory, so that the MMU needs to grab it off of disk before it can be used. The former is an illegal condition and the program will generally be aborted; the latter is perfectly normal and the program won't even know about it.
https://stackoverflow.com/questions/6950549/segmentation-fault-vs-page-fault
segfault != pagefault

Darafei
17.08.2017
07:30:29
overcommit опасен тем, что ты можешь просто записать в память и убить этим неизвестно кого с -9