|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
Привет Есть таблица с высокой частотой апдейта ~2500 update/sec autovacuum_vacuum_scale_factor = 0.05 autovacuum_analyze_threshold = 50 select count(*) from t 31488384 Каждые 10 мин автовакуум просыпается и вычищает мертвяков (вычищаться должно около 1 млн). Однако я вижу нестыковки в логах АВ, и в во вьюхе pg_stat_user_tables типичная запись лога АВ для этой таблицы: Код: plsql 1. 2. 3. 4. 5. 6.
Я подловил момент когда вакуум закончил работать по этой таблице и сразу запросил вьюху pg_stat_user_tables. Она показала, что все было вычищено (т.е более 1 млн строк), а лог АВ пишет про 27 тыс. Кто врет? p.s создается впечатление что миллион строк затерялся в "remain", но почему такая нестыковка? PG 9.6.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 07:35 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
Дождался когда накопится 1 млн мертвых и запустил ручной вакум Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Тут все сходится. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 08:06 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
Вакуум не может все вычистить, мож данные еще какой-то сессии нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 16:00 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
Синий Слон, проблема не в том, что АВ не очистил. А в том, что он очистил > 1млн, а залогировал 27к ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 07:18 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
gav21, а не может быть, что между замерами автовакуум на самом деле запускался несколько раз? но прерывался в процессе (если например кто-то запрашивает access exclusive lock на таблицу, обычные автовакуумы прерываются). в логах при этом должны быть строки вида 'canceling autovacuum task'. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 12:28 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
Alexius, отменных АВ в логе нет. а не autoanalyze ли чистит попутно и не сообщает подробностей? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 12:44 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
gav21, хотя нет на момент 12:17:48, кол-во мертвых строк росло а не уменьшалось... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 12:54 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
gav21, а можно показать 2 вывода с pg_stat_user_tables до и после автовакуума вместе с выводом логов автовакуума? интересно какая доля hot update и какой порядок числа апдейтов на строку (не обновляем ли мы одну и ту же строку очень много раз в секунду). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 13:18 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
Таблица - очередь, делается инсерт, потом эти строки много-много раз меняют статус. Но в парадигме Postgres, каждый апдейт это ведь delete+insert, так ведь? Даже если мы будем миллион раз в секунду обновлять одну и ту же строку. Хот апдейтов там нет, от слова совсем. Вот снимки перед запуском АВ, и сразу после Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 13:48 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
gav21, спасибо, я подозреваю что это какой-то баг в отображении в логах в числе tuples removed, надо смотреть vacuumlazy.c (lazy_scan_heap, lazy_vacuum_heap). я пока сходу до конца не разобрался. каждый апдейт это ведь delete+insert, так ведь? да ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 16:16 |
|
вопрос за автовакуум
|
|||
---|---|---|---|
#18+
gav21Таблица - очередь, делается инсерт, потом эти строки много-много раз меняют статус. Но в парадигме Postgres, каждый апдейт это ведь delete+insert, так ведь? Даже если мы будем миллион раз в секунду обновлять одну и ту же строку. Хот апдейтов там нет, от слова совсем. пардон, а почему не стали в редисе/мемкешеде очередь делать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2018, 16:59 |
|
|
start [/forum/topic.php?fid=53&msg=39636693&tid=1995805]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 127ms |
0 / 0 |