|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Доброе время суток! Возникла поблема (IDS 9.30FC1/SPARC) с очисткой временного спейса, а именно он не очищается после закрытия сессий. В результате по onstat видно, что спейс забит, сессий нет. Приходится в этом случае рестартовать информикс. Это баг или так должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 13:05 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey IvanovВ результате по onstat видно, что спейс забит, сессий нет. Это само по себе не проблема. Ошибки и сообщения, что не хватило пространства получаете? Если нет -расслабляйтесь... П.С.: Народ, может местный опрос проведём на тему"Какие версии в ходу"? Модератор: Создана отдельная ветка http://sql.ru/forum/actualthread.aspx?tid=743801 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 13:21 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey Ivanov Возникла поблема (IDS 9.30FC1/SPARC) с очисткой временного спейса, а именно он не очищается после закрытия сессий. В результате по onstat видно, что спейс забит, сессий нет. Временные таблицы и файлы могут оставаться в нескольких случаях, один из наиболее типичных - некорректное завершение сессий. Действия: - проверьте, не является ли это временное пространство логируемым, т.е. dbspace создали с поддержкой транзакций - какого типа (явно созданные приложениями или неявно, сортировочные файлы или таблицы) ? Несколько топиков назад я давал запрос на получение списка всех темповых таблиц и файлов. Дайте вывод этого запроса после нескольких часов работы и завершения всех сессий. - какого типа приложение работает, на чем создано и как много пользоватлей ? Alexey Ivanov Приходится в этом случае рестартовать информикс. Это баг или так должно быть? Если перестарт помогает, то это не баг сервера. Скорее всего, баг приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 14:00 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
vasilis Временные таблицы и файлы могут оставаться в нескольких случаях, один из наиболее типичных - некорректное завершение сессий. Действия: - проверьте, не является ли это временное пространство логируемым, т.е. dbspace создали с поддержкой транзакций - какого типа (явно созданные приложениями или неявно, сортировочные файлы или таблицы) ? Несколько топиков назад я давал запрос на получение списка всех темповых таблиц и файлов. Дайте вывод этого запроса после нескольких часов работы и завершения всех сессий. - какого типа приложение работает, на чем создано и как много пользоватлей ? Временный спейс создавался с ключем -t т.е. без транзакций Временные таблицы создавались запросами типа select ... into temp temptable Вывод запроса будет Это веб-приложение (php4), пользователей одновременно до 20-30. Есть одна особенность: часть веб-приложения активно работает с блобами. Когда ее ввели в продуктив начались эти проблемы. Другие части приложения тоже используют временные таблицы, но раньше таких проблем не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 09:14 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
oncheck -pe <temp dbspace> в прблемный момент что показывает? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 10:26 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Вывод по временным таблицам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: plaintext 1.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
На момент запуска было 4 открытых сессии от пользователя www ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 11:39 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey Ivanov Временный спейс создавался с ключем -t т.е. без транзакций На всякий случай: лучше это проверять не по памяти, а по выводу onstat -d... Alexey Ivanov Временные таблицы создавались запросами типа select ... into temp temptable Может таки select ... into temp temptable WITH NO LOG ? Alexey Ivanov Есть одна особенность: часть веб-приложения активно работает с блобами. С блобами именно во временных таблицах? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 12:03 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
zaietsoncheck -pe <temp dbspace> в прблемный момент что показывает? Во время переполнения спейса вываливается 244 ошибка ончек показывает (кусок): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 12:29 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
АнатоЛойAlexey Ivanov Временный спейс создавался с ключем -t т.е. без транзакций На всякий случай: лучше это проверять не по памяти, а по выводу onstat -d... Alexey Ivanov Временные таблицы создавались запросами типа select ... into temp temptable Может таки select ... into temp temptable WITH NO LOG ? Вот-вот. Абсолютно верно. Проверьте, все таки, фактическое состояние дел и непосредственно в приложении как написано. АнатоЛойAlexey Ivanov Есть одна особенность: часть веб-приложения активно работает с блобами. С блобами именно во временных таблицах? При работе с блобами, насколько я помню, темповые пространства используются очень интенсивно. Похоже, что основная причина именно в них. Нужно см. доку и приложение на предмет правильной работы с ними ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 12:29 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
АнатоЛой На всякий случай: лучше это проверять не по памяти, а по выводу onstat -d... Он действительно темповый АнатоЛой Может таки select ... into temp temptable WITH NO LOG ? Без with no log точно. АнатоЛой С блобами именно во временных таблицах? с ними в т.ч. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 12:35 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Зачем добавлять with no log если спейс темповый и не логируется? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 12:39 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey Ivanovzaietsoncheck -pe <temp dbspace> в прблемный момент что показывает? Во время переполнения спейса вываливается 244 ошибка ончек показывает (кусок): Код: plaintext 1. 2. 3.
The _temptable is an Internal temp table Если у вас все проостранство забито _temptable, то нужно искать запросы, которые приводят к этому и как-то с ними бороться. Если вы подозреваете на блобы, то соответственно нужно промоделировать ситуацию ипосмотреть какие именно операции приводят к подобной ситуации. Посмотреть планы запросов - если ли там автоиндексы и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 14:38 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey IvanovЗачем добавлять with no log если спейс темповый и не логируется? IDS 11.5 - Guide to SQL: Syntax Use the WITH NO LOG option to reduce the overhead of transaction logging. If you specify WITH NO LOG, operations on the temporary table are not included in the transaction-log operations. The WITH NO LOG option is required on all temporary tables that you create in temporary dbspaces. Если не указывать, то таблица участвует в транзакционном процессе, а значит и в общем процессе отката/доката транзакций на сервере, а значит должна сохранятся какое-то время, а не только на время коннекта пользователя. Кстати, если пользователь у вас один от сервера приложений (web), то временные таблицы, созданные разными реальными пользователями, будут сохранятся до завершения работы сервера приложений и закрытия БД (если все работают в рамках одного соединения). Правда, таблицы созданные без WITH NO LOG должны располагаться в другом, логируемом, спейсе, но входящем в список DBSPACETEMP. Если таких нет, то есть некий порядок выбора пространств. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 15:03 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
vasilisAlexey IvanovЗачем добавлять with no log если спейс темповый и не логируется? Правда, таблицы созданные без WITH NO LOG должны располагаться в другом, логируемом, спейсе, но входящем в список DBSPACETEMP. Если таких нет, то есть некий порядок выбора пространств. Иногда, такой подход может приводить к проблемам производительности. Как по мне лучше уж логгируемые таблицы создаются в пространстве, где создана БД. Сам в свое время еще на 9.21 прописывал обычное пространство в DBSPACETEMP. Но после ряда проблем производительности и ошибок связанных с работой временных таблиц отказался. Точных подробностей, к сожалению, не помню. Что-то связанное с тем, что временные объекты создавались не только во временном пространстве но и в простом + периодически были проблемв с созданием индексов для временных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 15:36 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
zaiets Сам в свое время еще на 9.21 прописывал обычное пространство в DBSPACETEMP. Мы боролись чуть по другому: выделяли обычное пространство именно под нужды временных логируемых таблиц (с ярким названием templog_dbs ), и прописывали его в DBSPACETEMP вместе с временными (нелогируемыми) пространствами... А уже потом устроили рефакторинг исходников (потому как производительность прижала): попрописывали практически везде WITH NO LOG... Параметр конфигурации сервера TEMPTAB_NOLOG (все временные создавать нелогируемыми, даже если разработчик не указал WITH NO LOG, вроде появился в 11.10) ситуацию не изменил: для той части разработчиков, которым нужна временная, но таки логируемая таблица, IBM клаузу WITH LOG не предложил :(. Посему и возникают вопросы: как это так у ТП получилось забавно - и без WITH NO LOG, и в нелогируемом пространстве... Баг? Хотя кто его знает, этот 9.3 да ещё и FC1.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 16:59 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey IvanovВывод по временным таблицам: th_tmprun_1ff81411 SORTTEMP informix tmpdbs 1 0 1 таких 44 строки _temptable journal www tmpdbs 1 0 0 таких около 43000 строк На момент запуска было 4 открытых сессии от пользователя www Хотелось бы все же увидеть картинку, о которой вы говорили вначале - т.е. после закрытия ВСЕХ сессий. Т.к. даже одна незавершенная сессия может давать огромное число временных таблиц и файлов. Кстати, при такой активной работе с темпами вам бы очень не помешало распараллелить эти операции. т.е. сделать два или три временных пространства. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 21:19 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
Alexey Ivanov Есть одна особенность: часть веб-приложения активно работает с блобами. Когда ее ввели в продуктив начались эти проблемы. Другие части приложения тоже используют временные таблицы, но раньше таких проблем не было. Потрусите девелоперов этого приложения - могут некорректно завершать соединения, оставлять курсоры незакрытыми, много тонокостей в работе с блобами - т.е. наехать на них и заставить их почитать доки и сделать рефакторинг. Можно просто попросить их сделать совсем простенькое тестовое приложение, использующее те же приемы работы, что и в продакшен, и проверить результат. Будут доказательства их криворукости. Как выход сейчас - сделать еще один стандартный темповый dbspace и добавить еще один с логированием. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 21:41 |
|
Очистка временного dbspace
|
|||
---|---|---|---|
#18+
АнатоЛой Мы боролись чуть по другому: выделяли обычное пространство именно под нужды временных логируемых таблиц (с ярким названием templog_dbs ), и прописывали его в DBSPACETEMP вместе с временными (нелогируемыми) пространствами... А уже потом устроили рефакторинг исходников (потому как производительность прижала): попрописывали практически везде WITH NO LOG... Хм, удивительно, что именно так я поступал еще лет 6-8 назад, вплоть до названия спейса :) После 2-3-х летней борьбы с девелоперами практически все научились писать WITH NO LOG в нужных местах и необходимость в таком пространстве отпала почти во всех прикладухах, тем не менее, во многих инструкциях у заказчика (или в их головах) это требование (создавать templog_dbs хотя бы небольшого размера) так и осталось, что я периодически и видел. Как правильно заметил zaiets, кроме положительных моментов были и небольшие проблемы с этим логируемым спейсом, о которых я тоже смутно помню, т.к. вылазили они только на одной системе, которая стояла в единичном экземпляре у заказчика. Но связано это было с тем, что сервер там часто падал, после рестарта сервер автоматически чистил темповые пространства, а откат/докат транзакций уже не мог нормально работать из-за отсутсвия некоторых логируемых таблиц....что-то такого плана. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 21:53 |
|
|
start [/forum/topic.php?fid=44&fpage=24&tid=1607614]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 150ms |
0 / 0 |