Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 Переполнение shared memory  [new]
AntElefant
Member

Откуда:
Сообщений: 23
Всем доброе время суток. Ситуация следующая:
----Система---
Fujitsu-Siemens; 4-ох процессорный Intel Xeon 2.5GHz; 8Gb RAM
Windows Server 2003 Enterprise
IBM Informix Dynamic Server Version 9.40.TC6

После того как обновили версию с 9.40.TC3 на 9.40.TC6 в процессе работы происходит хаотичное выделение дополнительной памяти
09:37:15 Dynamically allocated new virtual shared memory segment (size 65536KB)
09:41:25 Dynamically allocated new virtual shared memory segment (size 65536KB)
09:47:12 Dynamically allocated new virtual shared memory segment (size 65536KB)
в результате чего размер выделенной памяти достигает
Up 12:59:53 -- 2725376 Kbytes
или около того. Новые пользователи в системы войти не могут, а у тех, кто вошел раньше, программа зависает. При этом в лог-файле пишется:
-------------------------------------------------------------------
10:13:59 create_tcb: cannot allocate memory
10:13:59 (1071) connection rejected - too many users, or invalid user name
10:14:02 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).
10:14:02 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).
10:14:03 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).
10:14:03 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).
10:14:03 create_tcb: cannot allocate memory
10:14:04 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).
10:14:04 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).
10:14:19 Fuzzy Checkpoint Completed: duration was 6 seconds, 312 buffers not flushed,
timestamp: 0xc873e2f8.
10:14:19 Checkpoint loguniq 17119, logpos 0xe931c0, timestamp: 0xc873e2fa10:14:20 Assert Warning: No memory available for page cleaners
10:14:20 IBM Informix Dynamic Server Version 9.40.TC6
10:14:20 Who: Thread(10, flush_sub(0), 0, 4)
File: rsflush.c Line: 2092
10:14:20 Results: Checkpoints may take longer until more memory is made available
10:14:20 Action: Make more virtual memory available to Dynamic Server
10:14:20 stack trace for pid 420 written to C:\tmp\af.3f23ccb
10:14:21 See Also: C:\tmp\af.3f23ccb
10:14:23 Releasing server from system block
10:14:48 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).

10:14:48 out of virtual shared memory
10:19:18 No memory available for page cleaners
10:19:19 No memory available for page cleaners
10:19:21 Shutdown Mode
---------------------------------------------------------------------------
и Informix перезагружается.
Выделенная память не освобождается при выходе пользователей из программы или принудительном удалении администратором. Люди, если кто с подобным сталкивался – подскажите.
ONCONFIG прилогается.

К сообщению приложен файл (ONCONFIG.informixnew - 10Kb) cкачать
19 май 05, 12:37    [1554838]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
onstat
Guest
AntElefant
Всем доброе время суток. Ситуация следующая:
----Система---

и Informix перезагружается.
Выделенная память не освобождается при выходе пользователей из программы или принудительном удалении администратором. Люди, если кто с подобным сталкивался – подскажите.
ONCONFIG прилогается.


Для начала
onstat -g seg
onstat -g mgm
вырезать из af файла во время падения.

Попробуйте уменьшить значение DS_TOTAL_MEMORY.
Но без анализа onstat -g gmg это однозначно утверждать нельзя.

Зачем вам сколько DS_TOTAL_MEMORY?
19 май 05, 13:42    [1555289]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
AntElefant
Member

Откуда:
Сообщений: 23
Вот то, что просил уважаемый Guest
===========------------- - - - - - -
C:\Informix\bin\onstat -g seg:

IBM Informix Dynamic Server Version 9.40.TC3 -- Fast Recovery -- Up 00:00:14 -- 1284288 Kbytes

Segment Summary:
id key addr size ovhd class blkused blkfree
1381386241 1381386241 c000000 1063452672 247792 R* 259597 35
1381386242 1381386242 4b630000 251658240 8320 V 4477 56963
Total: - - 1315110912 - - 264074 56998

(* segment locked in memory)
===========------------- - - - - - -
C:\Informix\bin\onstat -g mgm:

IBM Informix Dynamic Server Version 9.40.TC3 -- Fast Recovery -- Up 00:00:14 -- 1284288 Kbytes

Memory Grant Manager (MGM)
--------------------------

MAX_PDQPRIORITY: 100
DS_MAX_QUERIES: 7
DS_MAX_SCANS: 32
DS_TOTAL_MEMORY: 221184 KB

Queries: Active Ready Maximum
0 0 7

Memory: Total Free Quantum
(KB) 221184 221184 31592

Scans: Total Free Quantum
32 32 1

Load Control: (Memory) (Scans) (Priority) (Max Queries) (Reinit)
Gate 1 Gate 2 Gate 3 Gate 4 Gate 5
(Queue Length) 0 0 0 0 0

Active Queries: None

Ready Queries: None

Free Resource Average # Minimum #
-------------- --------------- ---------
Memory 0.0 +- 0.0 27648
Scans 0.0 +- 0.0 32

Queries Average # Maximum # Total #
-------------- --------------- --------- -------
Active 0.0 +- 0.0 0 0
Ready 0.0 +- 0.0 0 0

Resource/Lock Cycle Prevention count: 0
===========------------- - - - - - -
19 май 05, 14:21    [1555531]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
vasilis
Member

Откуда: Украина, Киев
Сообщений: 2205
AntElefant
Вот то, что просил уважаемый Guest
===========------------- - - - - - -
C:\Informix\bin\onstat -g seg:
IBM Informix Dynamic Server Version 9.40.TC3 -- Fast Recovery -- Up 00:00:14 -- 1284288 Kbytes

Вообще то, это не то, что он просил :)
Говорили ведь о версии TC6, а данные даются для TC3.
Говорили о сегментах памяти на момент падения, а приведены на момент старта сервера :(
Говорилось ведь, где и что нужно взять ("вырезать из af файла во время падения"), т.е. из файла C:\tmp\af.3f23ccb найти информацию, соответствующую onstat -g seg, так же , как и onstat -g mgm.
19 май 05, 14:53    [1555709]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
AntElefant
Member

Откуда:
Сообщений: 23
===========------------- - - - - - -
C:\Informix\bin\onstat -g seg:

IBM Informix Dynamic Server Version 9.40.TC6 -- On-Line -- Up 19:36:39 -- 2725376 Kbytes

Segment Summary:
id key addr size ovhd class blkused blkfree
1381386263 1381386263 2160000 67108864 2688 V 16054 330
1381386264 1381386264 6160000 67108864 2688 V 15614 770
1381386241 1381386241 c000000 1062731776 247768 R* 259431 25
1381386242 1381386242 4b580000 251658240 8320 V 60378 1062
1381386243 1381386243 5cd00000 67108864 2688 V 15203 1181
1381386244 1381386244 60d00000 67108864 2688 V 13721 2663
1381386245 1381386245 64d00000 67108864 2688 V 14620 1764
1381386246 1381386246 68d00000 67108864 2688 V 14628 1756
1381386247 1381386247 78000000 67108864 2688 V 14490 1894
1381386248 1381386248 7fff0000 67108864 2688 V 14301 2083
1381386249 1381386249 83ff0000 67108864 2688 V 14021 2363
1381386250 1381386250 87ff0000 67108864 2688 V 14143 2241
1381386251 1381386251 8bff0000 67108864 2688 V 14317 2067
1381386252 1381386252 8fff0000 67108864 2688 V 13304 3080
1381386253 1381386253 93ff0000 67108864 2688 V 13302 3082
1381386254 1381386254 97ff0000 67108864 2688 V 12754 3630
1381386255 1381386255 9bff0000 67108864 2688 V 12746 3638
1381386256 1381386256 9fff0000 67108864 2688 V 12754 3630
1381386257 1381386257 a3ff0000 67108864 2688 V 11255 5129
1381386258 1381386258 a7ff0000 67108864 2688 V 11435 4949
1381386259 1381386259 abff0000 67108864 2688 V 11698 4686
1381386260 1381386260 afff0000 67108864 2688 V 12288 4096
1381386261 1381386261 b3ff0000 67108864 2688 V 12940 3444
1381386262 1381386262 b7ff0000 67108864 2688 V 12503 3881
Total: - - 2790785024 - - 617900 63444

(* segment locked in memory)
===========------------- - - - - - -
C:\Informix\bin\onstat -g mgm:

IBM Informix Dynamic Server Version 9.40.TC6 -- On-Line -- Up 19:36:39 -- 2725376 Kbytes

Memory Grant Manager (MGM)
--------------------------

MAX_PDQPRIORITY: 100
DS_MAX_QUERIES: 7
DS_MAX_SCANS: 32
DS_TOTAL_MEMORY: 221184 KB

Queries: Active Ready Maximum
1 0 7

Memory: Total Free Quantum
(KB) 221184 63224 31592

Scans: Total Free Quantum
32 26 1

Load Control: (Memory) (Scans) (Priority) (Max Queries) (Reinit)
Gate 1 Gate 2 Gate 3 Gate 4 Gate 5
(Queue Length) 0 0 0 0 0

Active Queries:
---------------
Session Query Priority Thread Memory Scans Gate
994 655a3780 80 2ecb178 0/19745 0/6 -

Ready Queries: None

Free Resource Average # Minimum #
-------------- --------------- ---------
Memory 17889.4 +- 12219.7 -27
Scans 30.3 +- 1.6 20

Queries Average # Maximum # Total #
-------------- --------------- --------- -------
Active 1.1 +- 0.3 2 2980
Ready 5.7 +- 3.3 11 15

Resource/Lock Cycle Prevention count: 0
19 май 05, 15:22    [1555870]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
onstat
Guest
А что делала сессия 994 во время падения?
в af файле должна быть информация по этому поводу.
onstat -g ses 994
Сколько сесий работало на момент падения?
Что делали они?
Эта информация есть в том же af файле.

Для закрытия дыры уменьшите DS_TOTAL_MEMORY хотябы на половину.
Думаю производительность это не уменьшит.

Если памяти все так же не будет хватать
Вам необходимо будет перераспределить память забрать у BUFFERS
и отдать SHMVIRTSIZE.
Отдать серверу памяти больше у вас врядли получится
вы подошли к пределу для 32 разрядной архитектуры.
Обратитесь в support и к разработчикам они вам посоветуют как быть с памятью ,
а также меня настораживает
слишком малое количество блокировок и суммарый обьем логических журналов для вашей DSS конфиругации
(при условии кочено, что база у вас в logging mode).

а какого обьема база если не секрет?
19 май 05, 16:23    [1556249]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
AntElefant
Member

Откуда:
Сообщений: 23
Сессий 276.
Конкретной информацию по 994 не нашел - может не там искал.(Informix осваиваю 3-й день - раньше работал с СУБД по проще)
База ОООООООООООООООчень большая.
Обычно люди даже не сразу вЪезжают.
Пользователей около 100. Первичных данных должно ложиться примерно 1,5-2 мл. записей а потом их еще нужно переварить. Просто с админом у нас туго вот и приходится ...
19 май 05, 17:00    [1556484]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
onstat
Guest
AntElefant
Сессий 276.
Конкретной информацию по 994 не нашел - может не там искал.(Informix осваиваю 3-й день - раньше работал с СУБД по проще)


Хоть информикс по части сесий не такой прожорливый как oracle,
но то что у вас остается SHMVIRTSIZE - DS_TOTAL_MEMORY
очень мало для такого количества пользователей.
Эта разница должна быть как минимум maxusers*256K.
А Для DSS систем это значение может быть выше на порядки.
onstat -g ses покажет кто и сколько памяти использует.

AntElefant

База ОООООООООООООООчень большая.


Не нужно утверждать так категорично,
всегда найдется кто то у кого база больше :)
А почему Вы не купили 64 разрядный RISK сервер, для
такого количества букв "О"? :)


AntElefant


Обычно люди даже не сразу вЪезжают.
Пользователей около 100. Первичных данных должно ложиться примерно 1,5-2 мл. записей а потом их еще нужно переварить. Просто с админом у нас туго вот и приходится ...


Для вашего железа это не обьем.
19 май 05, 17:38    [1556625]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
AntElefant
Member

Откуда:
Сообщений: 23
Ну я конечно попробую настроить сыстему согласно вашим замечаниям. Посмотрим что будет. В любом случае огромное человеческое спасибо за то что уделили внимание моему не слишком профессиональному запросу.

А по поводу:"Почему не купили ..." - наверно тот кто покупал понимает в этом больше чем мы с вами ;)))

P.S. Может дадите свою ICQ, ну чтобы проще было общаться.
19 май 05, 18:03    [1556746]     Ответить | Цитировать Сообщить модератору
 Re: Переполнение shared memory  [new]
vybegallo
Guest
Похоже на 1) утечку памяти где-то в Информиксе (менее вероятно) или 2) изменение планов запроса и соответственно выделение больше памяти под какие-то сессии из-за миграции. Если есть саппорт, рекомендую позвонить.
Если нет - то интересует размер памяти, выделенный под каждую сессию (интересуют сессии с большими размерами) - какие запросы они в этот момент выполняют. Все, естественно, не на момент загрузки :-) а из af файла.
Кстати, оптимизатор сам по себе может изрядные куски отхватывать в случае очень сложных запросов и SET OPTIMIZATION HIGH
19 май 05, 23:14    [1557190]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить