Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В ней одновременно не более 30 строк. Строки часто обновляются - только поле value - (до нескольких раз в секунду), удаляются - раз в несколько минут, создаются новые (разв неск. минут). Достаточно часто зависают запросы на UPDATE одной из строк - процесс может висеть часами пока не рестартнуть базу. При этом спокойно делается select, но удалить или изменить эту строку не даёт. С остальными строками работает нормально: изменяет, удаляет, добавляет. В чем может быть проблема? Postgresql 8.1.11-1.el5_1.1, CentOS release 5 (Final). Автовакуум отрублен. База пропахала примерно месяц. Заранее спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 21:10 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny Bronnikov В чем может быть проблема? Postgresql 8.1.11-1.el5_1.1, CentOS release 5 (Final). Автовакуум отрублен. База пропахала примерно месяц. Заранее спасибо за помощь. А VACUUM делался хотя бы раз за месяц? А то при такой интенсивности работы, там уже физических строчек должно за миллион перевалить ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 06:31 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
нет не делал :( Зависает только на определенных id1 и id2 (они одинаковые значения содержат): 3008, 1008, 8, 1108. На других (их еще штук 20) никаких проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 09:21 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny BronnikovДостаточно часто зависают запросы на UPDATE одной из строк - процесс может висеть часами пока не рестартнуть базу. При этом спокойно делается select, но удалить или изменить эту строку не даёт.возможно, проблема с блокировками. посмотрите select * from pg_locks ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 09:52 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
VACUUM FULL не помог :( в pg_locks висит вот что: Код: plaintext 1. 2. 3. 4. 5. 6. я не понимаю что это означает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 09:59 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny Bronnikovв pg_locks висит вот чтов момент зависшего запроса на update? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 10:02 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny Bronnikovвроде да..вряд ли. в выдаче нет эксклюзивного лока на данные, который потребовал бы апдейт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 14:48 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
А что вообще за проблема может быть? Там нигде локи не ставятся в коде (было раньше SELECT FOR UPDATE, но я поубирал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 15:18 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny BronnikovА что вообще за проблема может быть? Там нигде локи не ставятся в коде (было раньше SELECT FOR UPDATE, но я поубирал)Если две сессии одновременно делают update одной и той же строки, то пока первая не закоммитится, вторая будет ждать освобождения строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 15:25 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny BronnikovТам нигде локи не ставятся в коде (было раньше SELECT FOR UPDATE, но я поубирал)при выполнении запросов select и update неявно ставятся локи, именно их можно увидеть в pg_locks ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 15:30 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
pamir Evgeny BronnikovА что вообще за проблема может быть? Там нигде локи не ставятся в коде (было раньше SELECT FOR UPDATE, но я поубирал) Если две сессии одновременно делают update одной и той же строки, то пока первая не закоммитится, вторая будет ждать освобождения строки да это понятно. происходит всё так: клиент пытается выполняет INSERT. Всё нормально происходит. При следующем его обращении на UPDATE - он виснет. Клиент отваливается, а на сервере процесс postmaster молотит до упора. Естественно все последующие обращения этого клиента к своей строчке зависают.. Параллельно никто не обращается - id1 и id2 это ID клиента, то есть на каждого клиента своя уникальная строчка в которую кроме него никто не лезет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 15:30 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny BronnikovКлиент отваливается, а на сервере процесс postmaster молотит до упора.postmaster активно работает или спит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 15:51 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat Evgeny BronnikovКлиент отваливается, а на сервере процесс postmaster молотит до упора.postmaster активно работает или спит? молотит аж вся база колом встаёт (100% проца в топе показывает, я ему renice +19 делал - все равно нагружает). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 19:19 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny Bronnikovмолотит аж вся база колом встаёт (100% проца в топе показываеттогда проблема видимо не в блокировках покажете содержимое pg_locks во время выполнения "зависшего" апдейта? еще можно и содержимое pg_stat_activity. покажите ещё дамп схемы базы "pg_dump -s" (к сообщению в этом форуме можно прикрепить файл) Evgeny BronnikovVACUUM FULL не помог :(попорбуйте перестроить все индексы с помощью команды REINDEX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2008, 21:22 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Индексов нет вообще. Там всего штук 6 таблиц и очень много процедур, в т.ч. в виде модулей на Си. Я уже показал как выглядит таблица, на которой зависает. Зависание происходит на конкретных id1 и id2. Возможно проблема в коде хранимых процедур, но тогда не понятно, почему остальные id не зависают.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 06:09 |
|
||
|
Зависает на UPDATE
|
|||
|---|---|---|---|
|
#18+
Evgeny BronnikovИндексов нет вообще. Там всего штук 6 таблиц и очень много процедур, в т.ч. в виде модулей на Си. Я уже показал как выглядит таблица, на которой зависает. Зависание происходит на конкретных id1 и id2. Возможно проблема в коде хранимых процедур, но тогда не понятно, почему остальные id не зависают.. PRIMARY KEY - это тоже индекс, надо посмотреть как он называется и попробовать его перестроить командой REINDEX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2008, 10:00 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35202357&tid=2004504]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 381ms |

| 0 / 0 |
