Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

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

start [/forum/topic.php?fid=53&mobile=1&tid=2004504]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 382ms |

| 0 / 0 |
