Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Разделяемая память БД в 9.7  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Из документации известно, что размер разделяемой памяти БД известный также как Database Global Memory определяется параметром database_memory и может управляться автоматически (с помощью STMM). Вопрос: при наличии только одной запущенной БД в одном экземпляре DB2 примерно каким значением будет ограничиваться максимально выделенная память для разделяемой памяти базы?
Очевидно что DB2 будет учитывать имеющийся объем оперативной памяти в ОС, но до какого % от этого объема сможет расти размер разделяемой памяти БД? Можно ли конфигурацией БД или DBM жестко ограничить это значение сверху, оставив при этом работающим STMM?
12 май 16, 22:50    [19166862]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
m&m
Guest
Andron,

DB2 for Linux UNIX and Windows 9.7.0>Database fundamentals>Configuring>Configuration parameters>Database manager configuration parameters>instance_memory - Instance memory

"If self-tuning of database_memory is enabled and instance_memory is set to a specific value, STMM updates the configuration to achieve optimal performance while maintaining sufficient free instance memory. This ensures that enough instance memory is available to satisfy volatile memory requirements. System memory is not monitored."
13 май 16, 08:54    [19167343]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Разделяемая память для базы находится внутри памяти инстанса и ограничивается памятью инстанса или нет?
13 май 16, 09:29    [19167444]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
m&m
Guest
Andron,

насколько я понял, не то чтобы "внутри", но ограничивается.
т.е. не будет database_memory >= instance_memory
13 май 16, 09:52    [19167529]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
Andron,

db2pd -dbptnmem

...
Database Member Memory Controller Statistics

Controller Automatic: Y
Memory Limit: 6706868 KB
Current usage: 749376 KB
HWM usage: 751296 KB
Cached memory: 215936 KB

Individual Memory Consumers:

Name Mem Used (KB) HWM Used (KB) Cached (KB)
========================================================
APPL-SAMPLE 160192 160192 156224
DBMS-DB2 150848 150848 15168
FMP_RESOURCES 22528 22528 0
PRIVATE 36544 38720 15488
DB-SAMPLE 378880 378880 29056
LCL-p8120 128 128 0
LCL-p7304 128 128 0
LCL-p7304 128 128 0

instance_memory - всё потребление разделом db2
DB-<DBNAME> - database_memory базы <DBNAME>
APPL-<DBNAME> - appl_memory базы <DBNAME>
DBMS-<INSTNAME> - для нужд самого раздела db2 (не путать с instance_memory)

Database manager shared memory
13 май 16, 10:25    [19167672]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Тут видимо вопрос несколько шире, точнее их даже несколько. (речь про AIX и Linux).
Разделяемая память БД находится в своем сегменте ОС. Если STMM потребуется увеличить эту память - он добавит новый сегмент или увеличит существующий?
Непонятно - instance_memory - это размер памяти для инстанса. Внутри него свои структуры. database_memory - располагается отдельно от инстанса или внутри instance_memory?

вот насчет

т.е. не будет database_memory >= instance_memory

позвольте усомниться: db2mtrk показывает что инстанс занимает значительно меньше памяти, чем база.
13 май 16, 11:05    [19167890]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
m&m
Guest
Andron,

насколько я понял, определенное значение в instance_memory есть предел,
которым ограничены все "потребители" памяти данного инстанса.
включая как нужды собственно инстанса (например mon_heap), так и нужды каждой его БД.

P.S. можете проверить, задав на тестовой среде instance_memory = 200000 (условно)
и попробовать активировать единственную БД с database_memory>= instance_memory
13 май 16, 11:18    [19167960]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
m&m,

В документации ссылку на которую дал Mark Barinstein память инстанса и базы это разные области памяти. Т.е. память бд выделяется не в области памяти инстанса. Проверить на практике пока не могу - нет в руках тестового экземпляра, а продуктивные как раз подтверждают мной сказанное - разделяемая память БД может быть больше разделяемой памяти экземпляра.
13 май 16, 23:10    [19171393]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4850
Andron,

Ещё раз: instance_memory - общее потребление памяти. Туда входят все потребители: и те, которые использует сам экземпляр (про которые db2mtrk пишет, что это instance memory), и разделяемая память базы, и приватная, и куча приложений, и т.д.
Если интересно, как эта память выделяется в системе - смотреть на вывод
db2pd -alldbs -inst -memsets
И искать id сегментов в выводе a svmon/pmap.
13 май 16, 23:46    [19171504]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Mark Barinstein,

Проверил на продуктивной БД - действительно instance_memory который показывает get dbm cfg больше чем database memory из db cfg. Запутал вывод db2mtrk -i который вроде бы показывает instance memory, но как оказалось только часть.
14 май 16, 00:23    [19171631]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
Andron
Member

Откуда: Cherepovets
Сообщений: 1816
Mark Barinstein,

Вот смотрю в системе:

dbm cfg показывает что INSTANCE_MEMORY AUTOMATIC 27GB - это текущее потребление инстанс + базы?

В то же время db2pd -alldbs -inst -memsets в поле Used(Kb) если просуммировать все Memory Sets то будет не больше 12GB. Также и по полю HWM(Kb) не больше 17GB.

Как сопоставить тогда то что показывает dbm cfg для INSTANCE_MEMORY и вывод db2pd -alldbs -inst -memsets ?

ipcs -ma для db2 показывает по полю SEGSZ в сумме 22Gb.
16 май 16, 09:44    [19177363]     Ответить | Цитировать Сообщить модератору
 Re: Разделяемая память БД в 9.7  [new]
m&m
Guest
Andron,

при instance_memory=AUTOMATIC(nnn)
значение в database_memory м.б. больше, чем nnn, т.к. nnn в данном случае - не предел, а некое плавающее значение.
ограничение на database_memory сработает только при instance_memory=NNN (non-automatic)
16 май 16, 11:53    [19178008]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить