|
|
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Есть простейшая таблица: # \d request Table "public.request" Column | Type | Modifiers -----------------+-----------------------------+----------------------------------------------------------- id | bigint | not null default nextval('public.request_id_seq'::regclass) other_id | bigint | not null default 1 enabled | boolean | not null default true Indexes: "request__idx001" btree (other_id, id DESC) WHERE enabled = true Индекс только один, primary key удален, оставлен только сиквенс для формирования следующего id. В таблице уже порядка 100 миллионов записей, в основном идут массовые INSERT, изредка SELECT, UPDATE/DELETE/транзакций нету, при этом при INSERT часто возникают ExclusiveLock, причем переиодичски по 2 ExclusiveLock на один INSERT... Подскажите плиз что это может быть и как лечить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 16:37 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, а в чем проблема то? -- http://www.postgresql.org/docs/9.1/static/explicit-locking.html вот такие блокировки бывают да. -- у вас ROW EXCLUSIVE при инсерте - один к таблице относиться, другой к индексу. как вы эти блокировки видите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:04 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
именно ExclusiveLock а не RowExclusiveLock ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:12 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
именно ExclusiveLock в INSERT на такую простую таблицу! что это? на всякий случай версия сервера: Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:18 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, почему Вы решили что ExclusiveLock на таблицу? Возможно Вы путаете ExclusiveLock на таблицу с ExclusiveLock на номер транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:20 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Ёш, transactionid в pg_locks пуст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:24 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Ёш, явных транзакций через BEGIN/COMMIT/ROLLBACK нету, только отдельные команды INSERT (массовые) и SELECT (относительно редкие) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:26 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, покажите. вам никто не верит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:27 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, покажите. Он и у virtualxid тоже пуст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:29 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:32 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Ёш, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:42 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
а у меня вот такая есть Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:46 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, Код: plsql 1. 2. 3. 4. 5. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:49 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, у вас запрос не верный) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:53 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, у вас там как раз и видно что локи на "транзакцию" и еще адвизори откуда-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:55 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
если по бекенду каждому смотреть. -- а что вас смущает то? в чем причина. почему вы к блокировкам обратились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 17:57 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 18:04 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, ну и? всё вроде как и должно быть. а вы чего ожидаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 18:07 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, смотрите: Код: 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. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 18:28 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, Что вы еще делаете в этих транзакциях, рассказывайте. Через что базу дергаете. Там же видно было, что у вас есть локи на таблицы на транзакции и на адвизори еще. Откуда там адвизори? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 19:40 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, эта таблица не участвует ни в каких транзакциях, транзакций нет. есть массовые INSERT и более редкие SELECT - все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 19:56 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, То что вы демонстрируете не противоречит тому что там инсерты. Транзакция есть в любом случае, не зависимо от того создаете ли вы ее явно или нет. А лишние блокировки - я вижу адвизори. Какой клиент к бд? Что за логика. Вообще выглядит все прилично - никто никого не ждет. Но кажется что вы не контролируете как точно идут вызовы. Может эти бекенды еще где-то юзаете. Есть ли пулы коннектов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 20:05 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, используется node.js и его модуль pg к postgresql со встроенным пулом коннектов. со стороны базы pgbouncer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 20:38 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, сорри, сижу в баре) нету коннекта проверить про адвизори. Такое впечатление, что они там где то копяться от других вызовов. Что еще там происходит с базой? кто и как ее дергает ?еще может пригодится, Пгбоунсер в каком режиме пул: сессии или транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 20:49 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, про адвизори - то попали другие запросы, к другой таблице, пгбоунсер пробывали в разных режимах - все одно - странность именно в этой таблице с которой делаются простые операции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2011, 21:06 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, Про баунсер там скорее дело не в режиме было - а в reset_query. Так. Если дело не в адвизори, то вроде как должны иметь инсерт: Две блокировки на роу - таблица и индекс Одна/две (точно не уверен, может кто подскажет) блокировки на айдишники транзакций - там айдишник и виртуальный айдишник бывают - надо разобраться Шаред блокировка на таблицу. Еще такой вопрос. А там нет никаких триггеров еще случайно, репликаций может еще чего подобного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 00:08 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, шаред - на сиквенс там -- вам надо точно поймать бекенд один подозрительный и вывести все блокировки в нем которые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 00:17 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, а какой модуль в node используете для постгреса? ноде же хитрая штука. она там как-то хитро синхронится может и может чего своего добавляет ко взаимодействию с базой. вам надо попробовать эти инсерты напрямую, например из пгадмина или псикуеля. в одной сессии подвешиваем транзакцию Код: sql 1. а в другой смотрим за локами и сравниваем с тем, что видно через node. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 01:28 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinxtron, а какой модуль в node используете для постгреса? ноде же хитрая штука. она там как-то хитро синхронится может и может чего своего добавляет ко взаимодействию с базой. вам надо попробовать эти инсерты напрямую, например из пгадмина или псикуеля. в одной сессии подвешиваем транзакцию Код: sql 1. а в другой смотрим за локами и сравниваем с тем, что видно через node. как альтернатива можно включить log_min_duration_statement=0 минут на 5 и посмотреть какие реально запросы в лог ходят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 02:45 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Maxim BogukMisha Tyurinxtron, а какой модуль в node используете для постгреса? ноде же хитрая штука. она там как-то хитро синхронится может и может чего своего добавляет ко взаимодействию с базой. вам надо попробовать эти инсерты напрямую, например из пгадмина или псикуеля. в одной сессии подвешиваем транзакцию Код: sql 1. а в другой смотрим за локами и сравниваем с тем, что видно через node. как альтернатива можно включить log_min_duration_statement=0 минут на 5 и посмотреть какие реально запросы в лог ходят. вообще не понятно что смущает... все локи какие должны быть на месте лишего ничего нет вроде... основные локи тут это ROW EXCLUSIVE Conflicts with the SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE, and ACCESS EXCLUSIVE lock modes. The commands UPDATE, DELETE, and INSERT acquire this lock mode on the target table (in addition to ACCESS SHARE locks on any other referenced tables). In general, this lock mode will be acquired by any command that modifies data in a table. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 02:48 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, вспомнил, вот написано тут http://www.postgresql.org/docs/9.1/static/view-pg-locks.html любая транзакция лочит свой виртуальный айди, а если она еще и меняет базу (например, инсерт), то у неё появляется реальный айди и она и его тоже лочит. итого ваш инсерт должен вроде давать 5 блокировок (где-то у вас так и видно). 1) RowExclusiveLock: две на строки - таблица и индекс 2) AccessShareLock на сиквенс 3) две на айдишники транзакции еще раз глянул ваши локи - адвизори мешает, как кажется. вы мой запрос перепишите, сделайте группировку по locktype - должно стать понятно. Код: sql 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. это в дополнение ко всему остальному) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 03:04 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, триггеров на таблицу никаких нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:41 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, Код: sql 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. вот еще помониторте так. и как советовал Maxim Boguk можете посмотреть что там на базу валится через логи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:43 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin, cat /etc/pgbouncer/pgbouncer.ini | grep server_reset_query server_reset_query = SET SESSION AUTHORIZATION DEFAULT; RESET ALL; DEALLOCATE ALL; CLOSE ALL; UNLISTEN *; SELECT pg_advisory_unlock_all(); DISCARD PLANS; DISCARD TEMP; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:45 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, log_min_duration_statement=0 бессмысленно - все запросы мои ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:47 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinxtron, а какой модуль в node используете для постгреса? ноде же хитрая штука. она там как-то хитро синхронится может и может чего своего добавляет ко взаимодействию с базой. pg https://github.com/brianc/node-postgres ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:49 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
xtron, ну это чтобы наверняка исключить вмешательство node . и проверти еще через подвешивание интсерта не через ноду, а на прямую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:49 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
Maxim Bogukвообще не понятно что смущает... все локи какие должны быть на месте лишего ничего нет вроде... смущает EXCLUSIVE lock, не ROW EXCLUSIVE а именно EXCLUSIVE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2011, 17:50 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
2All, а на чём сошлись ? А то на записи блобов в тосты имею это самое "ExclusiveLock". а как подопрет с диском -- так и множественно. и чего ждут -- без стаканА не ясно. 'extend''pg_toast.pg_toast_816650291'25025'select r::void from XXXX_set_proxy($1::int4,$2::int8,$3::"numeric",$4::"timestamp",$5::bytea,$6::date,$7::"varchar") r''ExclusiveLock'32724'select r::void from XXXX_set_proxy($1::int4,$2::int8,$3::"numeric",$4::"timestamp",$5::bytea,$6::date,$7::"varchar") r''ExclusiveLock' запрос цельнотянутый из инетов. примерно такой Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. -- чтобы квери читать, значится. есть идеи ? навскидку -- ничего не альтерится нигде. set ф--ии читают что---то по-мелочи, не лоча, и пишут в табличку с блобами. -- т.е. , похоже, при записи тостов имеет место ExclusiveLock ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 12:32 |
|
||
|
ExclusiveLock
|
|||
|---|---|---|---|
|
#18+
qwwq, Проблема разбиралась много раз. Называется relation extenstion locking (ExclusiveLock на таблицу когда к файлу новую страницу добавляют). Например вот http://www.postgresql.org/message-id/flat/7DC73570-1A80-470D-8B7B-46E2713C41D4@simply.name#7DC73570-1A80-470D-8B7B-46E2713C41D4@simply.name]http://www.postgresql.org/message-id/flat/7DC73570-1A80-470D-8B7B-46E2713C41D4@simply.name#7DC73570-1A80-470D-8B7B-46E2713C41D4@simply.name Причины может быть две что этот лок надолго вылезает: 1)перегруженная дисковая система и в итоге просто file append долгий 2)многовато выделено shared buffers (редкий случай когда это может быть конкретно вредно). Судя по http://www.postgresql.org/message-id/flat/CAJjS0u3oVpuSAT8NviryeRNqA0nj8WEEXfSx=uRPqWF1=ORSVg@mail.gmail.com#CAJjS0u3oVpuSAT8NviryeRNqA0nj8WEEXfSx=uRPqWF1=ORSVg@mail.gmail.com]http://www.postgresql.org/message-id/flat/CAJjS0u3oVpuSAT8NviryeRNqA0nj8WEEXfSx=uRPqWF1=ORSVg@mail.gmail.com#CAJjS0u3oVpuSAT8NviryeRNqA0nj8WEEXfSx=uRPqWF1=ORSVg@mail.gmail.com если я правильно понял в 9.6 это будет исправлено. -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 12:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=53&tid=1997287]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 436ms |

| 0 / 0 |
