powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / непонятные зависания во время вставки данных
5 сообщений из 5, страница 1 из 1
непонятные зависания во время вставки данных
    #35373619
_aвтop_тeмы_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. возникла следующая проблема - есть база, в которую периодичестки нужно заносить пачками данные. данные при этом заносятся обычными инсертами.
скорость отработки одиночного инсерта достаточно мала, порядка 1мс. Когда начинается импорт данных скорость вставки данных остается именно на таком уровне, но по прошествии некоторого времени скорость инсерта резко замедляется и в конечном итоге вся база подвисает - в том числе не отвечает ни на какие запросы на выборку данных от других пользователей. такой подвисон продолжается секунд 30, после чего всё опять начинает работать очень быстро.

рабочая база функционирует под freebsd7.0, однако я промоделировал такую систуацию на рабочей машине под управления win2003 - там абсолютно такие же проблемы - периодически процесс вставки данных замедляется, причем в это время на системном мониторе видно очень сильно возросшее количество обращений к дискам. активное юзанье дисков продолжается некоторое время (от 20 секунд до минуты) и после этого всё снова приходит в норму. а минуты через 2-3 всё снова подвисает.

то есть это не проблема одно какой-то системы, это какие-то общие особенности работы постгре.

подскажите, какие параметры нужно смотреть? пусть каждый инсерт по отдельности будет делаться медленнее чем сейчас, но главное чтобы не было этих ужасных подвисаний.

я делал следующее:
1) увеличил количество сегментов до 256
2) отключил fsync
3) увеличил checkpoint_timeout до 20 минут
4) менял значения checkpoint_completion_target от 0 до 0.9
5) изменял bgwriter_delay от 10 мс до 1000 мс а также bgwriter_lru_maxpages

все эти манипуляции вообще никак не повлияли на проблему - через примерно одинаковое количество вставленных данных база всё так же на некоторое время зависает.

все эти манипуляции проводились на postgre 8.3.1.
однако я поставил для эксперимента на рабочую машину 8.2, создал тестовую табличку и попробовал загрузить данные в неё - там такие же проблемы.

в общем я уже не знаю что ещё оттюнить чтобы эти подвисания прекратились...
...
Рейтинг: 0 / 0
непонятные зависания во время вставки данных
    #35373643
Фотография Степан H.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"пачками" данные, как правило, вносят командой COPY. ... если б так делали то до "провисаний" дело б не доходило.

А в остальном конкретизируйте вашу проблему
....какие объемы данных, интенсивность вставки, каким споробом производится вставка, индексы, AUTOVACUUM.. и т.д.

Неплохо глянуть на статистику, воспользуйтесь прелестями CACTI, для простреса .
...
Рейтинг: 0 / 0
непонятные зависания во время вставки данных
    #35373678
копи, к сожелению, использовать не получается.
на то есть две причины
1) драйвер jdbc не поддерживает команду copy
2) на таблице, куда вставляются данные, висят правила, которые при вставки с помощью copy не будут учитываться.

....какие объемы данных, интенсивность вставки, каким споробом производится вставка, индексы, AUTOVACUUM.. и т.д.
как я говорил я моделировал такое на многих системах.
самый простой способ добиться такого эффекта - поставить конфиг по умолчанию, создать там таблицу, повесить первичный ключ, добавить несолкько полей, потом написать программу которая начнет вставлять туда данные, через буквально несколько минут можно наблюдать подобные зависания.

меня больше всего волнует вопрос как избежать этого волнообразного наплыва тормозов. пусть будет всё медленнее, я согласен, лишь бы не было мёртвых подвисаний. как этого можно добиться?
...
Рейтинг: 0 / 0
непонятные зависания во время вставки данных
    #35374199
Фотография Степан H.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за свой 2-х годичный опыт много раз приодилось вставлять большие объемы данных (>10 млн.), в некоторых случаях и методом INSERT. и никогда у меня ничего подобного не происходило. Возможно это связано с тем что я никогда не использовал jdbc (возможно собака там зарылась),

...а также пропробуйте подтверждать транзакцию через каждые 500 записей.
...
Рейтинг: 0 / 0
непонятные зависания во время вставки данных
    #35378633
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по описанию проблемы, дело в происходящих CHECKPOINT'ах. В нормальной ситуации, впрочем, глухих зависаний быть не должно, скорее всего что-то не так с дисковой подсистемой (ну хотя бы тупо отключён режим DMA при доступе к диску, тут запись большого кол-ва данных всё что угодно подвесит).

Что за диски, что за контроллер, какой RAID?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / непонятные зависания во время вставки данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]