|
|
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 01:47:39 -- 1334720 Kbytes Windows 2000 Server Реальной оперативки 4 Гига. Дык никак я не разберусь с параметрами в онконфиге. При указанных ниже параметрах (взятых в общем-то с потолка) информикс отводит 1334720 Kb (Ну сами видите). Далее при интенсивной загрузке (около 130 юзеров) он начинает подгружать новые сегменты (Dynamically allocated new virtual shared memory segment (size 32768KB)). И так до около 2-х Гиг, а дальше начинает ругаться, что памяти ему мало. 20:05:07 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM). 20:05:07 out of virtual shared memory 20:05:08 Assert Failed: Condition Failed (Ignoring free of pool 'arc_21062' (0x2811020) in use by blkpool), In (mt_shm_free_pool) 20:05:08 IBM Informix Dynamic Server Version 9.40.TC7 20:05:08 Who: Session(21062, work@microsoft.com, 1952, 00000000) Thread(65565, ontape, 0, 1) File: mtshpool.c Line: 3127 20:05:08 Action: Please notify IBM Informix Technical Support. 20:05:08 stack trace for pid 836 written to C:\Informix\tmp\af.4052554 20:05:08 See Also: C:\Informix\tmp\af.4052554, shmem.4052554.0 20:05:10 Releasing server from system block 20:10:37 Condition Failed (Ignoring free of pool 'arc_21062' (0x2811020) in use by blkpool), In (mt_shm_free_pool) 20:10:54 Checkpoint Completed: duration was 12 seconds. 20:10:54 Checkpoint loguniq 4967, logpos 0x49c018, timestamp: 0xf0debf6e Перестарт информикса спасает дело. Всё опять возвращается на 1,3 Гига и пару недель память медленно растёт до 2Гиг и потом опять ругается. Мне непонятно одно. У меня реально 4 Гига, а информикс выше 2-х Гиг брать не хочет. Что мне делать с параметрами, а то никак не могу в них разобраться? ONCONFIG: ----------- RESIDENT 1 # Forced residency flag (Yes = 1, No = 0) LOCKS 100000 # Maximum number of locks BUFFERS 200000 # Maximum number of shared buffers NUMAIOVPS # Number of IO vps PHYSBUFF 32 # Physical log buffer size (Kbytes) LOGBUFF 32 # Logical log buffer size (Kbytes) CLEANERS 2 # Number of buffer cleaner processes SHMBASE 0xC000000L # Shared memory base address SHMVIRTSIZE 500000 # initial virtual shared memory segment size SHMADD 32768 # Size of new shared memory segments (Kbytes) EXTSHMADD 32768 # Size of new extension shared memory segments (Kbytes) SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited CKPTINTVL 300 # Check point interval (in sec) LRUS 8 # Number of LRU queues LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit TXTIMEOUT 300 # Transaction timeout (in sec) STACKSIZE 64 # Stack size (Kbytes) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 12:59 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Хочется добавить. Пытался я поднять параметр BUFFERS 300000 # Maximum number of shared buffers В результате облом: 12:22:55 IBM Informix Dynamic Server Started. 12:22:58 Segment locked: addr=0xc000000, size=1279590400 12:22:58 Requested shared memory segment size rounded from 500000KB to 500032KB 12:22:58 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM). 12:22:58 mt_shm_init: can't create virtual segment Если ставлю параметр SHMBASE 0x50000000 # Shared memory base address то IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 00:00:28 -- 1749760 Kbytes Но тут я стремаюсь. Куда я залезу с таким параметром? Как регулировать параметр SHMBASE, чтобы ненапартачить с памятью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 13:27 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata EstorskiyIBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 01:47:39 -- 1334720 Kbytes Windows 2000 Server тут несколько аспектов и проблем. Первая связана с ограничениями платформы и информикса. Снечала нужно дать возможность самой Винде оперировать большим объемом (кстати, играет значение версия Windows 2000). Для этого в в файле boot.ini нужна строка типа этой: multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server" /fastdetect /3GB Затем нужно Информиксу дать большие значения, которые уже зависят от того, куда больше нужна память - на буферный пул или на виртуальный сегмент для пользователей (см. ниже мои рекомендации). И, наконец, у вас явно присутствет "утечка памяти", благодаря которой у вас и не освобождается память и с течением времени потребность в ней возрастает. Этому легко помочь - просто периодически (например в планировщике заданий установи ночное (или периодическре) выполнение onmode -F Rumata Estorskiy BUFFERS 200000 # Maximum number of shared buffers CLEANERS 2 # Number of buffer cleaner processes SHMVIRTSIZE 500000 # initial virtual shared memory segment size SHMADD 32768 # Size of new shared memory segments (Kbytes) EXTSHMADD 32768 # Size of new extension shared memory segments LRUS 8 # Number of LRU queues LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit BUFFERS 400000 # Maximum number of shared buffers Если есть необходимость, то сразу можно хапнуть 1,6Г для кэширования (максимум 512000) CLEANERS 2 # Number of buffer cleaner processes Не вижу других данных, но для 130 пользователей, как мне кажется, двух очистителей маловато. Можно установить 4-6, но лучше показать onstat -u после пары часов интенсивной нагрузки. SHMVIRTSIZE 500000 # initial virtual shared memory segment size SHMADD 32768 # Size of new shared memory segments (Kbytes) Если допсегменты выделяются часто, то необходимо увеличить это размер, хотя бы до 128000 LRUS 8 # Number of LRU queues Даже для существующего кол-ва буферов это значение по уумолчанию никуда не годится - срочно увеличить до максимума 127 LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit Эти значения тоже , скорее всего, нужно регулировать, но для этого нужно посмотреть на длительности контрольных точек в период нагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 13:49 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Вообще-то 32-битный информикс не сможет взять 4 Гб. Почитайте /topic/195829 И если вам не хватает виртуального раздела, не надо увеличивать буфера. Лучше проверьте, куда память расходуется, нет ли утечек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 13:53 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy12:22:58 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM). 12:22:58 mt_shm_init: can't create virtual segment смотри выше о настройке самой Винды Rumata Estorskiy Если ставлю параметр SHMBASE 0x50000000 # Shared memory base address IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 00:00:28 -- 1749760 Kbytes Но тут я стремаюсь. Куда я залезу с таким параметром? Как регулировать параметр SHMBASE, чтобы ненапартачить с памятью? Как минимум, знать, что и куда (по каким адресам) грузится в твоей ОС (можно промониторить спецутилитами). И еще: Q. LARGE MEMORY CONFIGURATIONS ----------------------------------- As part of the support for encrypted data replication in 9.40, a new DLL called libea32.dll is loaded at address 0x68000000. Large memory configurations that were previously making use of the maximum possible shared memory size of approximately 1.5 GB (assuming a default SHMBASE setting of 0xC000000 and an upper limit determined by the System DLLs which load at 0x70000000) might find that the maximum possible shared memory size has been reduced by 128 Mb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 13:53 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 01:47:39 -- 1334720 Kbytes Windows 2000 Server Реальной оперативки 4 Гига. Дык никак я не разберусь с параметрами в онконфиге. При указанных ниже параметрах (взятых в общем-то с потолка) информикс отводит 1334720 Kb (Ну сами видите). Далее при интенсивной загрузке (около 130 юзеров) он начинает подгружать новые сегменты (Dynamically allocated new virtual shared memory segment (size 32768KB)). И так до около 2-х Гиг, а дальше начинает ругаться, что памяти ему мало. 20:05:07 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM). 20:05:07 out of virtual shared memory 20:05:08 Assert Failed: Condition Failed (Ignoring free of pool 'arc_21062' (0x2811020) in use by blkpool), In (mt_shm_free_pool) 20:05:08 IBM Informix Dynamic Server Version 9.40.TC7 20:05:08 Who: Session(21062, work@microsoft.com, 1952, 00000000) Thread(65565, ontape, 0, 1) File: mtshpool.c Line: 3127 20:05:08 Action: Please notify IBM Informix Technical Support. 20:05:08 stack trace for pid 836 written to C:\Informix\tmp\af.4052554 20:05:08 See Also: C:\Informix\tmp\af.4052554, shmem.4052554.0 20:05:10 Releasing server from system block 20:10:37 Condition Failed (Ignoring free of pool 'arc_21062' (0x2811020) in use by blkpool), In (mt_shm_free_pool) 20:10:54 Checkpoint Completed: duration was 12 seconds. 20:10:54 Checkpoint loguniq 4967, logpos 0x49c018, timestamp: 0xf0debf6e Перестарт информикса спасает дело. Всё опять возвращается на 1,3 Гига и пару недель память медленно растёт до 2Гиг и потом опять ругается. Мне непонятно одно. У меня реально 4 Гига, а информикс выше 2-х Гиг брать не хочет. Что мне делать с параметрами, а то никак не могу в них разобраться? ONCONFIG: ----------- RESIDENT 1 # Forced residency flag (Yes = 1, No = 0) LOCKS 100000 # Maximum number of locks BUFFERS 200000 # Maximum number of shared buffers NUMAIOVPS # Number of IO vps PHYSBUFF 32 # Physical log buffer size (Kbytes) LOGBUFF 32 # Logical log buffer size (Kbytes) CLEANERS 2 # Number of buffer cleaner processes SHMBASE 0xC000000L # Shared memory base address SHMVIRTSIZE 500000 # initial virtual shared memory segment size SHMADD 32768 # Size of new shared memory segments (Kbytes) EXTSHMADD 32768 # Size of new extension shared memory segments (Kbytes) SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited CKPTINTVL 300 # Check point interval (in sec) LRUS 8 # Number of LRU queues LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit TXTIMEOUT 300 # Transaction timeout (in sec) STACKSIZE 64 # Stack size (Kbytes) 1. Ограничение в 2 ГБ адресного пространства есть ограничение на разрадность signed long в 32 разрадной операционной системе. Теоретически адресное пространство процесса можно увеличить до unsigned long (4 ГБ), погуглите на предмет "PAE" "windows" "infomrmix". Я не знаю насколько informix дружит с PAE. 2. Вам может помочь переодический запуск onmode -F. Более действенным будет если в момент вызова onmode -F У вас не будут выполняться сессий которые используют сортировки больших обьемов или полные сканирования таблиц. 3. В случае если у Вас DSS, посмотрите на вывод onstat -P, если индексных страниц в буферах базы данных меньше 30 % можете смело уменьшать параметер BUFFERS и на этот обьем увеличить SHMVIRTSIZE. Это оттянет появление эффекта без потери производительности, если правильно подобрать соотношение индексных и страниц с данными в буферах базы данных. Если же у Вас OLTP ищите запросы которые не попадают по индексам. 4. Попробуйте поставить pdqpriority в значение меньше 5 в плоть до 0. Это тоже может помочь если у Вас большое количество фрагментов таблиц. Зато может существенно снизить производительность. Если все это не помогает, а ситуация сильно напрягает, ищите возможность переходя на 64 разрядную версию informix. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 14:55 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
onstat-... Если все это не помогает, а ситуация сильно напрягает, ищите возможность переходя на 64 разрядную версию informix.На 4-х гигах бессмысленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 14:59 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
vasilis 12:22:58 mt_shm_init: can't create virtual segment смотри выше о настройке самой Винды Добавил я в boot.ini 3GB - ничего не изменилось. :-( vasilis Как минимум, знать, что и куда (по каким адресам) грузится в твоей ОС (можно промониторить спецутилитами). Какими? vasilis И еще: Q. LARGE MEMORY CONFIGURATIONS ----------------------------------- As part of the support for encrypted data replication in 9.40, a new DLL called libea32.dll is loaded at address 0x68000000. Large memory configurations that were previously making use of the maximum possible shared memory size of approximately 1.5 GB (assuming a default SHMBASE setting of 0xC000000 and an upper limit determined by the System DLLs which load at 0x70000000) might find that the maximum possible shared memory size has been reduced by 128 Mb. Читал я об этом в релизах. Если этому верить, то предел 1,5 Гига. Но игры с SHMBASE вроде позволяют повысить этот предел. Главное не улететь в занятую область. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 15:38 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
onstat- 1. Ограничение в 2 ГБ адресного пространства есть ограничение на разрадность signed long в 32 разрадной операционной системе. Теоретически адресное пространство процесса можно увеличить до unsigned long (4 ГБ), погуглите на предмет "PAE" "windows" "infomrmix". Я не знаю насколько informix дружит с PAE. Что такое PAE? То бишь получается, что стоит на серваке 2 Гига или 4 Гига памяти никаких различий? (учитывая то, что кроме информикса и винды на сервере больше ничего нету)? onstat- 3. В случае если у Вас DSS, посмотрите на вывод onstat -P, если индексных страниц в буферах базы данных меньше 30 % можете смело уменьшать параметер BUFFERS и на этот обьем увеличить SHMVIRTSIZE. Это оттянет появление эффекта без потери производительности, если правильно подобрать соотношение индексных и страниц с данными в буферах базы данных. Если же у Вас OLTP ищите запросы которые не попадают по индексам. Может это поможет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. onstat- Если все это не помогает, а ситуация сильно напрягает, ищите возможность переходя на 64 разрядную версию informix. Да в общем-то меня это сильно не напрягает. Перезагрузка раз в 2-3 недели не особо проблематична. Просто хочется разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 15:50 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy Что такое PAE? То бишь получается, что стоит на серваке 2 Гига или 4 Гига памяти никаких различий? (учитывая то, что кроме информикса и винды на сервере больше ничего нету)? PAE - возможность использовать больше чем 4G озу в 32-х разрядном режиме, по моему информикс не умеет, по крайней мере никогда я не видел параметров -- например размера окна. Rumata Estorskiy Может это поможет?возможно дело в мемориликах при добавлении сегмента, постарайся поставить такой шмвиртсайз чтобы он уже никогда не добавлял сегменты. А ты уверен что тебе надо такую кучу памяти для такого кол-ва пользователей?? Уменьши буферсы раза в два, увелич шмвиртсайз, и не парься с /3G. (кстати оно в 2000-м не в boot.ini, а в свойствах системы (загрузка и восстановление) выставляется ??? или я глююючуууу и это одно и тоже?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 16:00 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис А ты уверен что тебе надо такую кучу памяти для такого кол-ва пользователей?? Уменьши буферсы раза в два, увелич шмвиртсайз, и не парься с /3G. Так я всю эту бодягу для того и затеял чтобы выяснить что мне всё-таки нужно. Буфера или виртуальная память? Каковы их влияния на работу системы? Как я уже догадался они работают в паре. Т.е. 1,5 Гига это предел для их суммы, а не для каждой в отдельности. Т.е. убираю буфера - можно добавить виртуальной и наоборот. Только как их при данных параметрах системы выставить оптимально? И меня опять-таки очень смущает параметр SHMBASE. Какова же его идеологическая суть? Типа как США выразила озабоченность в связи с продажей Россией ракет Ирану. Вот я типа выражаю озабоченность. Журавлев Денис (кстати оно в 2000-м не в boot.ini, а в свойствах системы (загрузка и восстановление) выставляется ??? или я глююючуууу и это одно и тоже?) Одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 16:31 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy onstat- 1. Ограничение в 2 ГБ адресного пространства есть ограничение на разрадность signed long в 32 разрадной операционной системе. Теоретически адресное пространство процесса можно увеличить до unsigned long (4 ГБ), погуглите на предмет "PAE" "windows" "infomrmix". Я не знаю насколько informix дружит с PAE. Что такое PAE? То бишь получается, что стоит на серваке 2 Гига или 4 Гига памяти никаких различий? (учитывая то, что кроме информикса и винды на сервере больше ничего нету)? Описание здесь. http://support.microsoft.com/kb/283037 Если связка ОС и Informix не дружит с PAE или AWE, то использавать память в вашем случае будет некому кроме ОС для своих нужд. Rumata Estorskiy onstat- 3. В случае если у Вас DSS, посмотрите на вывод onstat -P, если индексных страниц в буферах базы данных меньше 30 % можете смело уменьшать параметер BUFFERS и на этот обьем увеличить SHMVIRTSIZE. Это оттянет появление эффекта без потери производительности, если правильно подобрать соотношение индексных и страниц с данными в буферах базы данных. Если же у Вас OLTP ищите запросы которые не попадают по индексам. Может это поможет? Я просил onstat -P (Upper Case). И не извесно в каком режиме работает база(OLTP, DSS). Частично может помочь это commit 6768 rollbk 1067 16 % не много ли откатов транзакций? Вы не задавались вопросом почему? seqscans 928183 ixda-RA idx-RA da-RA RA-pgsused 1212829 31674 398916 1639193 Если проанализировать то основная масса запросов у вас идет с использованием полного сканирования таблиц находящихся в буферах базы данных. Если это не маленькие таблицы справочники то пересмотрите политику индексирования, мне кажется, что там можно хорошо поднять производительность и попутно решить вашу проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 16:56 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
onstat- Я просил onstat -P (Upper Case). По этой команде на пол метра вывод идёт. Вот начало: IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 20:56:56 -- 1539584 Kbytes partnum total btree data other dirty 0 100 7 0 93 3 1048578 49 27 21 1 0 1048579 9 5 4 0 0 1048580 14 6 8 0 0 Вот конец: 17825818 2 1 1 0 0 17825838 2 1 1 0 0 17825839 3 3 0 0 0 17825850 1 0 0 1 0 Totals: 250000 112003 135628 2369 11406 Percentages: Data 54.25 Btree 44.80 Other 0.95 onstat- И не извесно в каком режиме работает база(OLTP, DSS). И мне не известно.:( onstat- Частично может помочь это commit 6768 rollbk 1067 Это что? onstat- 16 % не много ли откатов транзакций? Вы не задавались вопросом почему? seqscans 928183 ixda-RA idx-RA da-RA RA-pgsused 1212829 31674 398916 1639193 Если проанализировать то основная масса запросов у вас идет с использованием полного сканирования таблиц находящихся в буферах базы данных. Если это не маленькие таблицы справочники то пересмотрите политику индексирования, мне кажется, что там можно хорошо поднять производительность и попутно решить вашу проблему. К сожалению это невозможно, т.к. программа не наша. А ковыряться в нескольких десятках баз, в каждой из которых несколько сотен таблиц - нереально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 17:20 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy Добавил я в boot.ini 3GB - ничего не изменилось. :-( Напомню еще раз (выделено) vasilis Снечала нужно дать возможность самой Винде оперировать большим объемом (кстати, играет значение версия Windows 2000 ). Для этого в в файле boot.ini нужна строка типа этой: multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server " /fastdetect /3GB У тебя Advanced ? Тогда еще раз - на стандартной версии Windows 2000 Server данная фича не работает. Полный список таких ОС: Windows XP Professional Windows Server 2003 Windows Server 2003, Enterprise Edition Windows Server 2003, Datacenter Edition Windows 2000 Advanced Server Windows 2000 Datacenter Server Windows NT Server 4.0, Enterprise Edition Рекомендую почитать также Memory Support and Windows Operating Systems http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx и Operating Systems and PAE Support http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 17:20 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy Так я всю эту бодягу для того и затеял чтобы выяснить что мне всё-таки нужно. Буфера или виртуальная память? Уменьшай буфера и смотри: %cached %cached 99.58 99.42 Пока оно ~99 -- все нормально. Только по утрам onstat -z делай, что бы не портить картину %cached всякими updatestatistics. Rumata Estorskiyсмущает параметр SHMBASE.И как сильно смущает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 17:38 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy Так я всю эту бодягу для того и затеял чтобы выяснить что мне всё-таки нужно. Буфера или виртуальная память? Каковы их влияния на работу системы? Как я уже догадался они работают в паре. Т.е. 1,5 Гига это предел для их суммы, а не для каждой в отдельности. Т.е. убираю буфера - можно добавить виртуальной и наоборот. Только как их при данных параметрах системы выставить оптимально? И меня опять-таки очень смущает параметр SHMBASE. Какова же его идеологическая суть? Буфера с виртуальной памятью не пересекаются. Сколько выделено буферов при старте, столько и используется. Влияет их количество исключительно на производительность (меньше - хуже). У вас постоянно добавляются сегменты к ВИРТУАЛЬНОМУ разделу. Т.е. не хватает именно там. В этом сегменте лежат в основном данные пользовательских сессий, ну и много еще всего, это лучше в книжке почитать. Вам бы для начала посмотреть, сколько памяти каждая сессия пользовательская берет. А параметр SHMBASE вам не поможет, и его вообще трогать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 17:43 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
vasilis У тебя Advanced ? Нет. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 18:19 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Вот что-то похожее http://www.sql.ru/forum/actualthread.aspx?tid=93996 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 18:21 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata Estorskiy onstat- Я просил onstat -P (Upper Case). По этой команде на пол метра вывод идёт. Вот начало: 17825818 2 1 1 0 0 17825838 2 1 1 0 0 17825839 3 3 0 0 0 17825850 1 0 0 1 0 Totals: 250000 112003 135628 2369 11406 Percentages: Data 54.25 Btree 44.80 Other 0.95 onstat- И не извесно в каком режиме работает база(OLTP, DSS). И мне не известно.:( А нам тем более. Уменьшайте BUFFERS на 5 - 10 % и эту памаять отдавайте в SHMVIRTSIZE Посмотрите документацию в каких единицах измеряются эти параметры!!!! Если производительность не упадет, можете попробовать больше. Это продлит uptime вашей системы. Rumata Estorskiy onstat- Частично может помочь это commit 6768 rollbk 1067 Это что? Это часть результата вашего onstat -p, и это значит что 16 % попыток пользователей не приводят к реальному изменению базы данных и ресурсы потраченные системой на эти действия расходуются в пустую. А в особо тяжких случаях( на DSS операциях) в двойне(то есть до 32 %). Как вариант это может быть причиной ваших проблем когда сессия после отката транзакции не отпускает ранее запрошенную память. Может это баг, а может и фича. В любом случае после завершения этой сессии память должна вернуться для использования другими сессиями. А операционке все лишнее можно отдать через onmode -F. Rumata Estorskiy К сожалению это невозможно, т.к. программа не наша. А ковыряться в нескольких десятках баз, в каждой из которых несколько сотен таблиц - нереально. Разработчиков можно и нужно конструктивно строить, хоть им это не всегда приятно слышать но на пользу делу это идет всегда. Я надеюсь вы уже задали вопрос этого топика разработчикам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 18:27 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Rumata EstorskiyData 54.25 Btree 44.80 Предположу что optcompind=2. Это значит хешджойн, это значит жрем память в виртуальном сегменте. Может рискнуть optcompind=0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 21:26 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Вы неправильно представляете себе сущность SHMBASE. ------ SHMBASE specifies the base address where shared memory is attached to the memory space of a virtual processor. Do not change the value of SHMBASE. ------ Переводя на русский - это адрес в виртуальном пространстве процесса(ов) oninit, с которого начинается ихняя общая память. Никакого отношения к реальному физическому адресу, по которому будет выделена память, он не имеет. Windows позволяет выделить до 2GB под адресное пространство процесса, остальное забрано под системные адреса, кроме случаев /3GB в boot.ini на версии, понимающей этот флаг (Windows NT Enterprise Edition, Windows 2000 Advanced Server и дп.) . насколько я понимаю, вы этот флаг не взводили, соответственно больше 2GB Informix использовать не может. А реальная причина падений - утечка памяти в сервере, которую надо искать (или хоия бы позвонить в саппорт и спросить - может ее уже пофиксили) В таком вот аксепте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 02:04 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Выбегалло ------ SHMBASE specifies the base address where shared memory is attached to the memory space of a virtual processor. Do not change the value of SHMBASE. ------ Переводя на русский - это адрес в виртуальном пространстве процесса(ов) oninit, с которого начинается ихняя общая память. Никакого отношения к реальному физическому адресу, по которому будет выделена память, он не имеет. Мне кажется, что ты немного неправ. SHMBASE - это адрес в виртуальном пространстве ОС, а не процесса oninit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 13:56 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
vasilis Выбегалло ------ SHMBASE specifies the base address where shared memory is attached to the memory space of a virtual processor. Do not change the value of SHMBASE. ------ Переводя на русский - это адрес в виртуальном пространстве процесса(ов) oninit, с которого начинается ихняя общая память. Никакого отношения к реальному физическому адресу, по которому будет выделена память, он не имеет. Мне кажется, что ты немного неправ. SHMBASE - это адрес в виртуальном пространстве ОС, а не процесса oninit. Это адрес в виртуальном пространстве процесса. 1. При выделении разделяемой памяти( shmget) ее фактический адрес выделяется в виртуальном пространстве ОС, затем эта память подключается(shmat) к адресному пространству процесса по адресу SHMBASE. 2. Если бы это был адрес в пространстве ОС , то для каждого SERVERNUM нужно было бы указывать свой SHMBASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 14:51 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
onstat-2. Если бы это был адрес в пространстве ОС , то для каждого SERVERNUM нужно было бы указывать свой SHMBASE. SHMBASE - условный, а не реальный адрес и именно в совокупности с SERVERNUM и определяет уникальный адрес, так что никакого противоречия, IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 21:57 |
|
||
|
Что-то с ПАМЯТЬЮ моей стало
|
|||
|---|---|---|---|
|
#18+
Vasilis, вы не правы, прав onstat-. заведите сервера на одной машине и отметьте выделяемые им физические адреса - они будут разными в зависимости от очередности старта серверов. Если бы они зависели от servernum, то а) они были бы каждый раз одинаковыми б) вы не смогли бы всунуть 2 и более серверов в виртуальную память OS. Кстати, какой практический смысл в информации о реальном физическом адресе сегмента ? В таком вот аксепте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 22:16 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33477201&tid=1608782]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 368ms |

| 0 / 0 |
