Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Доброго времени суток!

Сервер 64 ядра 256GB ОЗУ
PostgreSQL 12.8 (Debian 12.8-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
Debian GNU/Linux 10 (buster)


С недавних пор появились фантомные процессы [postgres] причем с 100% утилизацией CPU SystemTime, на несколько секунда или минут висят.
Кол-во 3-50 порою забивают весь вывод команды TOP.

причем strace процесса пустой
root@:/tmp# strace -p 42321 -s 128 -T
strace: Process 42321 attached
+++ exited with 0 +++


Нагрузка скажем не очень большая 10K tps
Профиль нагрузки не менялся, мжт немного вырос, в pg_stat_activity ничего подозрительного нет, вернее этих процессов фантомов там нет и нагрузка от приложения не проседает, только скачет общее CPU до 100% от фантомных процессов с зашкаливающем SystemTime.


Подскажите, сталкивался кто с такой бедой?

top -с выглядит следующим образом

К сообщению приложен файл. Размер - 146Kb


Сообщение было отредактировано: 28 окт 21, 17:50
28 окт 21, 17:41    [22389513]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1391
S.e.r.y.i,

замерьте количество forks / sec. Типичная причина аномального systime - слишком часто открываете/закрываете коннекты к базе.
28 окт 21, 17:54    [22389518]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Честно говоря как замерить forks / sec не представляю возможным.

Но все приложения ходят в базу чрз PgBauncer, включил логирование коннектов, в логах появились записи от zabbix локально, где-то 2 коннекта в секунду, не может он такой SystemTime накручивать.

К сообщению приложен файл. Размер - 121Kb


Сообщение было отредактировано: 28 окт 21, 18:05
28 окт 21, 18:03    [22389523]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Предварительно дав checkpoint и на pgBouncer pause, далее попытался отправить postgres в restart так сервер повис с 100 фантомных процессов в TOP, пришлось дать hard reset.

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

Сообщение было отредактировано: 28 окт 21, 18:16
28 окт 21, 18:08    [22389526]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
mefman
Member

Откуда:
Сообщений: 3664
S.e.r.y.i
Честно говоря как замерить forks / sec не представляю возможным.

Но все приложения ходят в базу чрз PgBauncer, включил логирование коннектов, в логах появились записи от zabbix локально, где-то 2 коннекта в секунду, не может он такой SystemTime накручивать.

PgBauncer в каком режиме работает?
Машина - Виртуалка?
думаю имеет смысл посмотреть
perf top
28 окт 21, 18:32    [22389540]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
S.e.r.y.i,

strace на какой то из таких процессов чтобы посмотреть чем он занят таким странным.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
28 окт 21, 18:43    [22389547]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
mefman
Member

Откуда:
Сообщений: 3664
По вашему логу - коннектится у вас в основном заббикс. У вас самопальный агент или "коробочный"?
28 окт 21, 18:43    [22389548]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
mefman

PgBauncer в каком режиме работает?
Машина - Виртуалка?
думаю имеет смысл посмотреть
perf top


pool_mode = transaction

сервер железный
28 окт 21, 18:49    [22389553]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
mefman
По вашему логу - коннектится у вас в основном заббикс. У вас самопальный агент или "коробочный"?


Новых коннектов нет, потому как приложение работает чрз pgBouncer в режиме pool_mode = transaction и то что новых коннектов нет это нормально.

Уже писал выше о нагрузке от приложений ~10К запросов в секунду.

Zabbix снимает некоторые метрики чрз psql и для этого делает 2 коннекта в секунду это тоже нормально.
28 окт 21, 18:53    [22389555]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Maxim Boguk
S.e.r.y.i,

strace на какой то из таких процессов чтобы посмотреть чем он занят таким странным.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


уже писал выше вывод strace фантомного процесса, он пустой.
повторю еще раз
root@:/tmp# strace -p 42321 -s 128 -T
strace: Process 42321 attached
+++ exited with 0 +++


Сообщение было отредактировано: 28 окт 21, 18:55
28 окт 21, 18:54    [22389556]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54789
Тогда тяжёлую артиллерию: GDB, attach, bt.
29 окт 21, 13:55    [22389914]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
mefman
Member

Откуда:
Сообщений: 3664
Dimitry Sibiryakov
Тогда тяжёлую артиллерию: GDB, attach, bt.

ну и "perf" все-таки я бы посмотрел

Сообщение было отредактировано: 29 окт 21, 14:11
29 окт 21, 14:11    [22389924]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Везде пусто, не perf не strace ничего не выводят, что удивительно, другие процессы postgres прекрасно выводят стек своей работы.
31 окт 21, 18:23    [22390675]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Вот еще один нюанс, kill -9 с процессом ничего не делает, он по прежнему висит пока сам не исчезнет.
После попыток kill в логах БД пусто, такое ощущение, что это не postgres процессы, и не понятно почему для них не работает kill -9, загадка.

К сообщению приложен файл. Размер - 76Kb
31 окт 21, 18:26    [22390676]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
mefman
Member

Откуда:
Сообщений: 3664
S.e.r.y.i
Везде пусто, не perf не strace ничего не выводят, что удивительно, другие процессы postgres прекрасно выводят стек своей работы.

Что значит пусто?
Что показывает perf top?
Он показывает не процессную информацию а общесистемную.
Хотелось бы понять какие события конкретно приходятся на system time.
31 окт 21, 19:11    [22390699]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
Процесс висит, а perf top либо пишет что процесс не найден, либо выводит вот такую ерунду.

К сообщению приложен файл. Размер - 7Kb
31 окт 21, 19:33    [22390709]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
вывод dmesg

К сообщению приложен файл. Размер - 32Kb
31 окт 21, 19:35    [22390714]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
вывод perf top -a во время пика фантомных процессов.

К сообщению приложен файл. Размер - 90Kb


Сообщение было отредактировано: 31 окт 21, 19:52
31 окт 21, 19:50    [22390729]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
вот еще пример raw_spin_lock в TOP

К сообщению приложен файл. Размер - 84Kb
31 окт 21, 19:57    [22390736]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
вот еще пример хороший

К сообщению приложен файл. Размер - 94Kb
31 окт 21, 20:33    [22390758]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
Maxim Boguk
Member

Откуда: По разному.
Сообщений: 5021
S.e.r.y.i,

Самое интересное в этих perf top это наличие __bpf_prog_run кругом в top3.
Что то у вас там странное с сетевым стеком творится походу (как версия на проверку).
В жизни не видел __bpf_prog_run в perf top на базах, это очень очень странно.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
31 окт 21, 22:39    [22390806]     Ответить | Цитировать Сообщить модератору
 Re: Фантомные процессы [postgres] с 100% CPU SystemTime  [new]
S.e.r.y.i
Member

Откуда:
Сообщений: 21
В итоге, просто поменяли сервер железный, на новый, с аналогичными настройками и характеристиками, проблема с фантомными процессами ушла сразу.

perf top -a на новом сервере, если кому интересно (профиль нагрузки БД не менялся).

К сообщению приложен файл. Размер - 15Kb
сегодня, 10:53    [22403930]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить