|
postgresql+camunda high CPU load
|
|||
---|---|---|---|
#18+
Коллеги, имею БД postgresql 9.6.2, host ОС CentOS 7.3, виртуальная машина, выделено 16 vcpu. В базу со стороны приложения переодически прилетают запросы типа "DELETE FROM ACT_RU_EXECUTION WHERE ID_ = 'e4c175a3-b92d-11e7-86a3-fa163eea878d' AND REV_ = '6';", анализ показывает explain DELETE FROM ACT_RU_EXECUTION WHERE ID_ = 'e4c175a3-b92d-11e7-86a3-fa163eea878d' AND REV_ = '6'; QUERY PLAN ---------------------------------------------------------------------------------------------------------- Delete on act_ru_execution (cost=0.42..8.44 rows=1 width=6) -> Index Scan using act_ru_execution_alt_pk_idx on act_ru_execution (cost=0.42..8.44 rows=1 width=6) Index Cond: (((id_)::text = 'e4c175a3-b92d-11e7-86a3-fa163eea878d'::text) AND (rev_ = 6)) удаление по вполне кошерному индексу "act_ru_execution_alt_pk_idx" btree (id_, rev_) но когда подобных запросов прилетает до 20 штук в секунду, CPU нагрузка подскакивает до 90-100%. Возможно я не прав, но по логике работы postgresql, в момент удаления строки из таблицы, она просто помечается как удаленная, а дальнейшая очистка происходит процессом autovacuum. Что может давать такую нагрузку, подскажите, в какую сторону копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:00 |
|
postgresql+camunda high CPU load
|
|||
---|---|---|---|
#18+
bombardun, проверьте наличие FK в таблице, если они есть - то проверьте наличие индексов в связанных таблицах. Еще триггеры могут быть какие-то на удаление. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:09 |
|
postgresql+camunda high CPU load
|
|||
---|---|---|---|
#18+
bombardunКоллеги, имею БД postgresql 9.6.2, host ОС CentOS 7.3, виртуальная машина, выделено 16 vcpu. В базу со стороны приложения переодически прилетают запросы типа "DELETE FROM ACT_RU_EXECUTION WHERE ID_ = 'e4c175a3-b92d-11e7-86a3-fa163eea878d' AND REV_ = '6';", анализ показывает explain DELETE FROM ACT_RU_EXECUTION WHERE ID_ = 'e4c175a3-b92d-11e7-86a3-fa163eea878d' AND REV_ = '6'; QUERY PLAN ---------------------------------------------------------------------------------------------------------- Delete on act_ru_execution (cost=0.42..8.44 rows=1 width=6) -> Index Scan using act_ru_execution_alt_pk_idx on act_ru_execution (cost=0.42..8.44 rows=1 width=6) Index Cond: (((id_)::text = 'e4c175a3-b92d-11e7-86a3-fa163eea878d'::text) AND (rev_ = 6)) удаление по вполне кошерному индексу "act_ru_execution_alt_pk_idx" btree (id_, rev_) но когда подобных запросов прилетает до 20 штук в секунду, CPU нагрузка подскакивает до 90-100%. Возможно я не прав, но по логике работы postgresql, в момент удаления строки из таблицы, она просто помечается как удаленная, а дальнейшая очистка происходит процессом autovacuum. Что может давать такую нагрузку, подскажите, в какую сторону копать? Вы explain analyze сделайте... будет больше пользы и станет понятнее. Я бы предположил наличие непроиндексированных FK ссылающихся на эту таблицу (и seq scan в итоге в триггерах проверки FK). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 14:10 |
|
postgresql+camunda high CPU load
|
|||
---|---|---|---|
#18+
И, кстати, не хотите ли вместо text'а uuid'ы хранить в соответствующем типе данных uuid? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2017, 16:16 |
|
postgresql+camunda high CPU load
|
|||
---|---|---|---|
#18+
MelkijИ, кстати, не хотите ли вместо text'а uuid'ы хранить в соответствующем типе данных uuid? Невозможно. Структура используемых таблиц предопределена приложением и её нельзя изменить. Можно пытаться оптимизировать индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:09 |
|
postgresql+camunda high CPU load
|
|||
---|---|---|---|
#18+
Partisan M, Согласен, структура таблиц определена приложением, я как DBA наблюдаю нагрузку со стороны БД. пока подключил pg_stat_statements, вычленяю неоптимальные запросы с точки зрения плана выполнения, и пробую доработать индексами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:48 |
|
|
start [/forum/topic.php?fid=53&fpage=64&tid=1996146]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 148ms |
0 / 0 |