powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как определить сколько оперативной памяти занимает DB2?
16 сообщений из 16, страница 1 из 1
Как определить сколько оперативной памяти занимает DB2?
    #39311266
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и насколько еще можно увеличивать буферные пулы?

На данный момент на сервере 32 гиг оперативки
под один из буфер пулов отдал immediate size 4000000
размер страницы 4k

4000000*4096/1024^3=примерно 15гиг под этот один пул, если не ошибся в рассчетах

Вопрос, насколько еще можно наращивать этот пул с точки зрения доступной памяти (не с точки зрения целесообразности исходя из его hitrate)

В DB2 сложное управление памятью

Смотрю по htop, вроде как вообще почти вся оперативка свободная:
http://picpaste.com/pics/3NAsS9OH.1474281771.jpg

db2pd:
http://picpaste.com/pics/2NpgIyIE.1474281824.jpg

db2top:
http://picpaste.com/pics/8bXAZHHn.1474281875.jpg

как то бы посмотреть, что всего в целом со всеми буферпулами, кучами и т.п. DB2 занимает столько-то,
тогда зная, что для оси надо хотя бы пару гиг, можно вычислить насколько еще можно расширять большой буферный пул, чтобы не превысить доступный предел оперативки железки
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311298
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnick,

Я бы сказал, что это не совсем правильная точка приложения силы.
Когда памяти более-менее хватает, и вы не имеете чёткого представления, зачем вам буфферпул именно такого размера, то чаще всего мы будем наблюдать совершенно замечательный hitratio (98-99%), но будет это за счёт крайне неэффективных запросов с очень большим соотношением ROWS_READ / ROWS_RETURNED.
Отсутствие того или иного индекса, плохо сформулированный предикат, ещё чего-то приводят к необоснованным table scan'ам. В каком-нибудь join'е всё это умножается на кардинальность второй таблицы, как результат получаем миллиарды прочитанных строк при требующемся десятке/другом тысяч.

Большие буфферпулы часто скрадывают/маскируют эту катастрофическую ситуацию, так что начните лучше с отлова таких запросов или _уменьшения_ буффрпулов с последующим разбором, как оно на hitratio влияет.
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311455
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

У одной из таблиц этого буфер пула около 100 млн записей, в других таблицах тоже миллионы записей.

Разработкой приложения занимается крупная компания.

Я не хочу вносить какие-либо изменения в структуру базы данных, даже если это улучшит ее работу
потому что это лишняя ответственность, вдруг такое изменение временно что-то улучшить, а потом после очередной версии ухудшит.

Мне кажется, пытаться вносить свои изменения в базу с более тысячи таблиц не очень хорошая идея, разработчики могли бы нанять узкоспециализированного спеца по оптимизации индексов и сделать все правильно самостоятельно.

Во время работы этот буфер пул показывает хорошие результаты, но во время реорганизации его hitratio частенько около нуля, вот я и подумал заняться наращиванием этого буфер пула, увеличив его в 2.5 раза заметил небольшое увеличение hitrate от нескольких процентов до почти 100% во время реорганизации, замеры по времени еще не делал, стала ли реорганизация от этого быстрее.
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311459
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на форуме встречал сообщение примерно такого содержания:

авторСнял задачу, добавил ОЗУ, увеличил instance_memory до 64Гб. Реорганизация прошла за 20 минут. Видимо, всё таки, какой-то параметр в db или dbm, который стоит в автомате.

Вот и подумал, нельзя ли мне тоже чего-нибудь с оперативкой наколдовать, чтобы у меня реорганизация стала быстрее проходить.

Да еще не пойму, в скрипте от разработчиков зачем то:

1) runstats on table XXX ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND SAMPLED DETAILED INDEXES ALL
2) reorg table XXX
3) reorg indexes all for table XXX
4) runstats on table XXX ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND SAMPLED DETAILED INDEXES ALL

нельзя ли это сократить до:
1) reorg table XXX
2) runstats on table XXX ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND SAMPLED DETAILED INDEXES ALL

?

Наверно, при текущем темпе роста объема базы через несколько лет придется ждать поставок СХД стоимостью как из чистого золота, чтобы обеспечить работу такой реорганизации?
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311463
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и все таки хотелось бы увидеть ответ и непосредственно по теме ветки, пусть даже он послужил бы не самой эффективной оптимизации с точки зрения имеющихся программно-аппаратных ресурсов, но зато эффективным с точки зрения затрат времени
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311533
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbtwoshnickи все таки хотелось бы увидеть ответ и непосредственно по теме ветки
Со стороны Linux - pmap на db2sysc.
Со стороны db2: db2pd -dbptnmem
Найдите в интернете статью в pdf по подстроке "db2 luw memory management", там более подробно.
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311534
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbtwoshnick
нельзя ли это сократить до:
1) reorg table XXX
2) runstats on table XXX ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND SAMPLED DETAILED INDEXES ALL
?Можно и нужно.
Классический реорг перестраивает индексы в конце. Зачем собирать статистику перед реорг тоже непонятно.
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311598
Мысль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinКлассический реорг перестраивает индексы в конце. Зачем собирать статистику перед реорг тоже непонятно.

тем дороже оборудование нужно, предлагаю запускать все это в цикле, чтобы было еще дольше
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311765
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МысльMark BarinsteinКлассический реорг перестраивает индексы в конце. Зачем собирать статистику перед реорг тоже непонятно.

тем дороже оборудование нужно, предлагаю запускать все это в цикле, чтобы было еще дольше
Не надо усложнять. Где денег спереть кто надо и так найдёт, без помощи горе-девелоперов.
Всё обычно проще - "пусть лошадь думает, у неё голова большая".

dbtwoshnickЯ не хочу вносить какие-либо изменения в структуру базы данных, даже если это улучшит ее работу
потому что это лишняя ответственность, вдруг такое изменение временно что-то улучшить, а потом после очередной версии ухудшит.

Мне кажется, пытаться вносить свои изменения в базу с более тысячи таблиц не очень хорошая идея, разработчики могли бы нанять узкоспециализированного спеца по оптимизации индексов и сделать все правильно самостоятельно.
Ни одна разработка не сможет у себя полноценно смоделировать продуктивную нагрузку. Фидбэк от "эксплутационщиков" всегда очень важен.
Заявляйте неоправданно тяжёлые запросы (если таковые есть, а они, уверяю, есть) как дефекты, и будет всем счастье.

Это _ваша_ организация платит за железо и DB2'шные лицензии. Чего ж зря мощности раздувать.
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39311903
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnickкак то бы посмотреть, что всего в целом со всеми буферпулами, кучами и т.п. DB2 занимает столько-то,


Код: sql
1.
select SUM(MEMORY_POOL_USED)/1024 as TOT_MEMORY_USED_MB from table(MON_GET_MEMORY_POOL(null,null,-1)) as t with ur


dbtwoshnickтогда зная, что для оси надо хотя бы пару гиг, можно вычислить насколько еще можно расширять большой буферный пул, чтобы не превысить доступный предел оперативки железки
бест-практики рассказывают нам, что если база на хосте одна и других приложений потребляющих память нет, то 5-10% под ОС, из оставшегося 75% под буферпулы для OLTP БД и 50% под OLAP БД.
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39313647
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mitek,

но ведь это только оперативка для буферных пулов?

а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ?
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39313915
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbtwoshnickmitek,

но ведь это только оперативка для буферных пулов?

а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ?

это олл-инклюзив
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39314612
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mitekdbtwoshnickmitek,

но ведь это только оперативка для буферных пулов?

а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ?

это олл-инклюзив

судя по:
http://www.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0059464.html

и по результатам:
select * from table(MON_GET_MEMORY_POOL(null,null,-1)) as t with ur

действительно походит на то, тогда большое спасибо за совет!

а что за member?
авторAn input argument of type INTEGER that specifies from which member the data is returned. Specify -1 for the current database member, or -2 for all active members. If the NULL value is specified, -1 is set implicitly.

это instance для однонодного сервера DB2?
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39322740
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mitekdbtwoshnickmitek,

но ведь это только оперативка для буферных пулов?

а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ?

это олл-инклюзив

TOT_MEMORY_USED_MB
18491968

Вроде бы итого не совпадают, или в ваш запрос не включены applications?
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39322971
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbtwoshnick,

Вы в high water mark смотрите (Maximum Size), а не в текущее использование (Current Size).
Код: sql
1.
2.
3.
4.
select 
  sum(memory_pool_used)/1024 memory_pool_used_mb 
, sum(memory_pool_used_hwm)/1024 memory_pool_used_hwm_mb 
from table(MON_GET_MEMORY_POOL(null,null,-1))
...
Рейтинг: 0 / 0
Как определить сколько оперативной памяти занимает DB2?
    #39322986
dbtwoshnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein,

этот скриншот с watermarks было уже после уменьшения PCKCACHESZ после переактивации базы

бывшие разработчики другой чудо системы, у которых, как мне кажется, относительно мало опыта работы с DB2, сделали утилиту выгрузки на динамических запросах, в результате потребление PCKCACHESZ зашкалило текущие лимиты, выгрузка шла очень медленно

пришлось увеличить PCKCACHESZ в 100 раз до значения 1000000 (было 10000)

через полчаса запрос TOT_MEMORY_USED_MB выдал около 22GB по сравнению с 18GB ранее

физически 32GB оперативки, получается примерно = как раз значению TOT_MEMORY_USED_MB + 9GB applications?

когда значение TOT_MEMORY_USED_MB подросло еще немного, то

пользователи сообщили, что многие режимы работы приложения перестали работать

а у меня при запуске скрипта создания снэпшотов было сообщение о нехватке shared memory
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как определить сколько оперативной памяти занимает DB2?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]