|
|
|
Принудительная чистка памяти
|
|||
|---|---|---|---|
|
#18+
Windows Server 2003 Enterprise IBM Informix Dynamic Server Version 9.40.TC6 Пользователей много, работают плотно. -------------------------------------------- При работе пользователя по мере работы для сессии выделяется память, и не очень правильно, на мой взгляд, очищается. ситуация моделировалась таким образом: 1) Пользователь №1 входит и дает запрос select * from tab (в таблице 30 строк) По данным команды onstat -g ses общая память Informix-a 38144Kb у сессии пользователя 40960b использовано 39032b (дальше я буду эти объемы приводить в такой последовательности) 2) Пользователь №1 дает запрос select * from tab union select * from tab - и эта строчка повторяется 10 раз, такой вот длинный запрос. Память при этом 62720Kb 12951552b 10277392b 3) Пользователь №1 дает запрос select * from tab - т.е. запрос снова маленький, ну по объему возвращаемых данных Память при этом 62720Kb 3555328b 899304b 4) Пользователь №2 входит и дает запрос select * from tab Память при этом 62720Kb 40960b 39032b - параметры 2 и 3 для его сессии у пользователя №1 все без изменений. --------------------------------------------- А теперь вопросы: Почему сессия пользователя №1 занимает памяти больше чем ей требуется. Можно ли настроить очистку памяти как пользовательских сессий, так и общей памяти Informix(она не уменьшается когда пользователи выходят) Можно ли организовать принудительную очистку(ну кроме перезагрузки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 11:00 |
|
||
|
Принудительная чистка памяти
|
|||
|---|---|---|---|
|
#18+
AntElefant А теперь вопросы: 1. Почему сессия пользователя №1 занимает памяти больше чем ей требуется. 2. Можно ли настроить очистку памяти как пользовательских сессий, так и общей памяти Informix(она не уменьшается когда пользователи выходят) 3. Можно ли организовать принудительную очистку(ну кроме перезагрузки). 1. Под что именно занята память можно узнать, выполнив onstat -g ses #, где # - идентификатор сеанса пользователя №1. Там все с точностью до байта расписано (см. также документацию и http://oninit.com). Если выполнить в сеансе пользователя №1 следующий запрос, объем используемой им памяти (по результатам onstat -g ses или onstat -g mem) может заметно уменьшиться... А простой ответ - так получилось. Что мы можем с этим сделать? Разве что, принудительно прекратить работу сеанса пользователя :) 2. Так и было задумано. Общая память Informix (виртуальная часть) сама по себе только увеличивается, но не освобождается (не отдается ОС). Это разумно, потому что вместо отключившегося пользователя тут же подключится другой, и ему снова нужна будет память - а вот она уже и есть... 3. Можно. Это делается командой onmode -F (память будет освобождаться только целыми сегментами, см. onstat -g seg, и только если Informix сочтет это возможным). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 11:16 |
|
||
|
Принудительная чистка памяти
|
|||
|---|---|---|---|
|
#18+
На одной из машин (простая рабочая станция где informix стоит для тренировки) команда onmode -F высвобождает память а на другой (настройки разные конечно) нет. А интересует то в принципе именно вторая. Пробовал даже когда все пользаватели вышли, был только информикс - и ничего. Где в настройках это отключено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 20:05 |
|
||
|
Принудительная чистка памяти
|
|||
|---|---|---|---|
|
#18+
На одной из машин (простая рабочая станция где informix стоит для тренировки) команда onmode -F высвобождает память а на другой (настройки разные конечно) нет. А интересует то в принципе именно вторая. Пробовал даже когда все пользаватели вышли, был только информикс - и ничего. Где в настройках это отключено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 20:07 |
|
||
|
Принудительная чистка памяти
|
|||
|---|---|---|---|
|
#18+
AntElefantНа одной из машин (простая рабочая станция где informix стоит для тренировки) команда onmode -F высвобождает память а на другой (настройки разные конечно) нет. А интересует то в принципе именно вторая. Пробовал даже когда все пользаватели вышли, был только информикс - и ничего. Где в настройках это отключено? Если у вас нет пользовательских сессий в системе память должна освобождаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 20:21 |
|
||
|
Принудительная чистка памяти
|
|||
|---|---|---|---|
|
#18+
Похоже на трудночинимый баг. Ситуация может быть как с tablespace tablespace , когда в какой-то момент создается много таблиц, tablespace захватывает след. экстенд в другом dbspace - после чего даже при удаленных таблицах этот dbspace невозможно дропнуть, поскольку он технически не пустой. Возможно, какие-то структуры в памяти сохраняются в новых сегментах и не чистятся даже после выхода всех пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 23:27 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33081568&tid=1609031]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 317ms |

| 0 / 0 |
