Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
Описание длинное. Хочется разобраться что бы это могло быть. DB2 9.1.2 под CentOS 5 на виртуальной машине с очень медленным вводом-выводом. Сегодня в четыре наступил коллапс. Все стало работать ужасно медленно. Кое как получалось работать только от рута. Результат любых команд к DB2, даже db2 list applications дождаться было невозможно. Поэтому не удалось ничего помониторить кроме того что записалось в db2diag.log С причиной разобрались быстро - активный ввод-вывод. Остановили все сервера приложений. Отрубили на уровне операционной системы все обращения к серверу. СУБД по прежнему висит. Первая мысль - логи какие-то бакапит. Посмотрели db2diag.log - пытался архивировать логи базы для которой не существует пути LOGARCHMETH1 (восстановлена с другого сервера). Путь создали. Один лог заархивировался. Больше не требовалось. Сервер такой же мертвый. В db2diag.log больше ничего нового не пишет. Начали стопать db2stop force. Висит. Ввод-вывод по прежнему бешеный. Увеличивается объем одной базы (PBMAX, не та где логи пытались архивироваться). C 7Гб выросла до 8,3Гб. Потом директория уменьшилась до копеек. DB2 остановился и наступило счастие. Полчаса с момента стопа прошло где-то. После запуска все работает нормально. Позже определили что после запуска db2stop росла по объему директория с временным табличным пространством. Чтобы это могло быть? SA сделал предположение (пока DB2 не остановился) что у DB2 сьехала крыша и он в цикле сам добавляет данные. Ведь все коннекты обрублены :-) На базе логи транзакций циклические. Диаг-лог весь не выложить. Там почти все забито попытками архивировать логи. В db2diag.log накопал из стоящего такие вещи. Несколько раз в разное время с 12 часов. Последний раз в 15-58: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. и еще Код: plaintext Насчет коллапса ко мне обратился SA в 16-09. Судя по данным БД в 16-03 была запущена и закрыта последняя сессия. Есть десяток сессий которые не были завершены нормально. На уровне приложения. Но это обычная практика - при отладке закрыть клиента неосторожно. Транзакции все короткие. На несколько гигов никак не тянут. С этой базой тренировались запускать нового робота которые добавляет в базу информацию. Это так на всякий случай. На уровне логов системы ничего интересного нет. Что с базой нужно делать чтобы так получилось ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2008, 20:40 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
Очень интересно. Жду Марка, он профи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2008, 23:30 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
dealko... Результат любых команд к DB2, даже db2 list applications дождаться было невозможно. ... С причиной разобрались быстро - активный ввод-вывод. ... Позже определили что после запуска db2stop росла по объему директория с временным табличным пространством. ... Что с базой нужно делать чтобы так получилось ?Не видя этого самому, трудно сказать. Можно было запустить db2pd -everything -file some_file.txt и там посмотреть. Системное табичное пространство (если именно оно, а не пользовательское временное пространство у вас росло) может использоваться, например, при сортировках, хеш-соединениях, если они в sortheap не влезают. Я видел такой рост системного временного пространства, когда оптимизатор выбирал неправильный план. Причем в одном случае в несложном запросе причина была в отсутствии статистики на маленькую справочную таблицу. В вашем случае, если это пространство с file system caching, то у вас мог к тому же еще и начаться интенсивный свопинг. Часто это и приводит к тому, что система "замирает"... P.S.: Никогда не слышал о том, чтобы db2 в состоянии "съехавшей крыши" в цикле сама начинала добавлять данные. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 10:20 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
Марк, табличное пространство системное временное. А рост временного системного табличного простраства при сортировках, хеш-соединениях возможен после запуска db2stop force ? Свопа точно не было - смотрели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 12:35 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
force applications (надо думать, db2stop force делает то же самое) ведь асинхронная команда. Когда вы её выполнили, это не означает, что коннекты убиты немедленно. Нет, запросы всё ещё могут выполняться в течение какого-то времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 11:05 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
По опыту заметил, что запросы выполняются несколько секунд после force. Ну может минут. А вот десятки минут и часы после force занимают только жизненно важные для целостности данных операции с точки зрения DB2. Например: 1. Бакап архивных логов. 2. Попытка сделать бакап логов если не готово устройство (ждет пока вставят новый картридж например). 3. Rollback для длинной транзакции. 4. Commit для длинной транзакции. Не совсем уверен что DB2 будет завершать транзакцию. Скорее всего откатит. Виктор, я правильно понимаю, что Select на пару часов с большими сортировками не будет выполняться до конца при db2 force ? При наших условиях с короткими транзакциями, маленькими файлами журналов не могу придумать где найти "великие" запросы которые будут сортировать данные занимая при этом гигабайты во временном табличном пространстве. Из всех вариантов наиболее правдоподобным кажется списание проблемы на неверный план доступа, выбранный DB2. Минус ситуации в том что такая болезнь не лечится... Хотя официально можно заявить что лечится сбором статистики. Но у меня сбор статистики настроен автоматический и проблем быть не должно. Это скорее риторика... Достоверного объяснения проблеме пока нет. А значит не ясно как избежать такой проблемы в дальнейшем. Но это уже скорее риторика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 14:43 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
dealko Виктор, я правильно понимаю, что Select на пару часов с большими сортировками не будет выполняться до конца при db2 force ? Ну, у меня такого не было. Надо как-нибудь попробовать. [quot] Из всех вариантов наиболее правдоподобным кажется списание проблемы на неверный план доступа, выбранный DB2. Минус ситуации в том что такая болезнь не лечится... [/quot] Почему же не лечится? Бывают и средства помимо хинтов. К примеру, индексирование, секционирование (MDC и VIEW с Union all), физическая реорганизация с переупорядочиванием. [quot] Хотя официально можно заявить что лечится сбором статистики. Но у меня сбор статистики настроен автоматический и проблем быть не должно. [/quot] Ну как же не должно? Оптимизатор, пользуясь статистикой, рассчитывает на "средний" случай, а ваш случай может быть крайний. (Да и детальность статистики бывает разная). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 12:09 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
Виктор, в моей ситуации размер системного временного тейблспейса в десятки раз превысил размер БД. Таблички маленькие, выполнялись короткие транзакции, которые помещаются в журнал размером 4Мб. В этом контексте говорить о реорганизации данных, индексировании, MDC смысла нет. Оптимизатор выбирает не "средний" план доступа а в соответствии с указанным классом оптимизации. Хотя это тоже не важно в данном случае. Марк говорит о сбое СУБД: Mark Barinstein Я видел такой рост системного временного пространства, когда оптимизатор выбирал неправильный план. Причем в одном случае в несложном запросе причина была в отсутствии статистики на маленькую справочную таблицу. Я со своей стороны хочу понять насколько часто мне рассчитывать на такие "сюрпризы". За пять лет работы с DB2 беспричинных аварий типа вышеописанной у меня не было ни разу. Причина всегда находилась и было ясно что сделать чтобы авария не повторялась. Сейчас причина непонятна. Объяснения аварии нет. А это есть плохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2008, 17:23 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
аналогичная ситуация была у нас на v.7 OS WinSx32 с большим буфером размещенным в верхней памяти AWE. при длинных транзакциях на удаление данных и общей нагрузке в виде коротких запросов. В db2diag были рекомендации на увеличение IO_CLEANERS хотя их и так было предостаточно. я полагаю, что это был свопинг "грязных" страниц из буфер пула на диск ничего другого придумать не могу ((((. поправь, те кто знает верна ли моя теория??? и еще, почемуто, уверен, что у Вас была длинная транзакция, которая явно не влезала в Ваш объем логов (кол-во активных логов * размер файла лога) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 16:09 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
Подобное поведение DB2 при длинных транзакциях у меня было. Оно легко объясняется - целостность данных превыше всего. Поэтому при попытке остановить DB2 начинается длинный Rollback. Мои первые мысли были как раз про длинную транзакцию, но.. У меня как и было по дефолту для базы 3 архивных лога по 4 метра. По опыту знаю что длинная транзакция забьет такие логи очень быстро. И так же быстро откатится с ошибкой что в логи не поместилась. Тут что-то другое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 17:07 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
я немного в кучу все свалил........... ))))) может кто нибудь подскажет, 1. делает ли DB2 своп "грязных" страниц на диск при заполненном буф.пуле 2. если делает в какое таб.пространство он делает для вер. 9.1 что касается авторСвопа точно не было - смотрели. то Вы наверное говорите про своп операционки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 17:38 |
|
||
|
При db2stop долго рос размер БД. Чтобы это могло быть ?
|
|||
|---|---|---|---|
|
#18+
автор1. делает ли DB2 своп "грязных" страниц на диск при заполненном буф.пуле В таком случае возникает ситуация Dirty Page Steal, ее можно увидеть в мониторе. 1) BP full 2) Необходимо подгрузить с диска страницу #1 для продолжения обработки транзакции 3) DB2 ищет по критериям ищет грязную страницу #2 (victim page) 4) Данная грязная страница используя sync write записывается на диск 5) Cтраница #1 читается с диска и перезаписывает в BP страницу #2 Данная ситуация очень негативно влияет на производительность. Играться нужно с параметрами NUM_IOCLEANERS chngpgs_thresh http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0001252.htm Поскольку страница принадлежит Таблице, а таблица принадлежит табличному пространству, то записывает грязная страница туда откуда была прочитана ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 18:58 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35622493&tid=1603608]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 423ms |

| 0 / 0 |
