|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
и насколько еще можно увеличивать буферные пулы? На данный момент на сервере 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 занимает столько-то, тогда зная, что для оси надо хотя бы пару гиг, можно вычислить насколько еще можно расширять большой буферный пул, чтобы не превысить доступный предел оперативки железки ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 13:47 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
dbtwoshnick, Я бы сказал, что это не совсем правильная точка приложения силы. Когда памяти более-менее хватает, и вы не имеете чёткого представления, зачем вам буфферпул именно такого размера, то чаще всего мы будем наблюдать совершенно замечательный hitratio (98-99%), но будет это за счёт крайне неэффективных запросов с очень большим соотношением ROWS_READ / ROWS_RETURNED. Отсутствие того или иного индекса, плохо сформулированный предикат, ещё чего-то приводят к необоснованным table scan'ам. В каком-нибудь join'е всё это умножается на кардинальность второй таблицы, как результат получаем миллиарды прочитанных строк при требующемся десятке/другом тысяч. Большие буфферпулы часто скрадывают/маскируют эту катастрофическую ситуацию, так что начните лучше с отлова таких запросов или _уменьшения_ буффрпулов с последующим разбором, как оно на hitratio влияет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 14:57 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
CawaSPb, У одной из таблиц этого буфер пула около 100 млн записей, в других таблицах тоже миллионы записей. Разработкой приложения занимается крупная компания. Я не хочу вносить какие-либо изменения в структуру базы данных, даже если это улучшит ее работу потому что это лишняя ответственность, вдруг такое изменение временно что-то улучшить, а потом после очередной версии ухудшит. Мне кажется, пытаться вносить свои изменения в базу с более тысячи таблиц не очень хорошая идея, разработчики могли бы нанять узкоспециализированного спеца по оптимизации индексов и сделать все правильно самостоятельно. Во время работы этот буфер пул показывает хорошие результаты, но во время реорганизации его hitratio частенько около нуля, вот я и подумал заняться наращиванием этого буфер пула, увеличив его в 2.5 раза заметил небольшое увеличение hitrate от нескольких процентов до почти 100% во время реорганизации, замеры по времени еще не делал, стала ли реорганизация от этого быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 18:05 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
на форуме встречал сообщение примерно такого содержания: авторСнял задачу, добавил ОЗУ, увеличил 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 ? Наверно, при текущем темпе роста объема базы через несколько лет придется ждать поставок СХД стоимостью как из чистого золота, чтобы обеспечить работу такой реорганизации? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 18:12 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
и все таки хотелось бы увидеть ответ и непосредственно по теме ветки, пусть даже он послужил бы не самой эффективной оптимизации с точки зрения имеющихся программно-аппаратных ресурсов, но зато эффективным с точки зрения затрат времени ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 18:36 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
dbtwoshnickи все таки хотелось бы увидеть ответ и непосредственно по теме ветки Со стороны Linux - pmap на db2sysc. Со стороны db2: db2pd -dbptnmem Найдите в интернете статью в pdf по подстроке "db2 luw memory management", там более подробно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 21:17 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
dbtwoshnick нельзя ли это сократить до: 1) reorg table XXX 2) runstats on table XXX ON ALL COLUMNS WITH DISTRIBUTION ON ALL COLUMNS AND SAMPLED DETAILED INDEXES ALL ?Можно и нужно. Классический реорг перестраивает индексы в конце. Зачем собирать статистику перед реорг тоже непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2016, 21:21 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
Mark BarinsteinКлассический реорг перестраивает индексы в конце. Зачем собирать статистику перед реорг тоже непонятно. тем дороже оборудование нужно, предлагаю запускать все это в цикле, чтобы было еще дольше ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 04:26 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
МысльMark BarinsteinКлассический реорг перестраивает индексы в конце. Зачем собирать статистику перед реорг тоже непонятно. тем дороже оборудование нужно, предлагаю запускать все это в цикле, чтобы было еще дольше Не надо усложнять. Где денег спереть кто надо и так найдёт, без помощи горе-девелоперов. Всё обычно проще - "пусть лошадь думает, у неё голова большая". dbtwoshnickЯ не хочу вносить какие-либо изменения в структуру базы данных, даже если это улучшит ее работу потому что это лишняя ответственность, вдруг такое изменение временно что-то улучшить, а потом после очередной версии ухудшит. Мне кажется, пытаться вносить свои изменения в базу с более тысячи таблиц не очень хорошая идея, разработчики могли бы нанять узкоспециализированного спеца по оптимизации индексов и сделать все правильно самостоятельно. Ни одна разработка не сможет у себя полноценно смоделировать продуктивную нагрузку. Фидбэк от "эксплутационщиков" всегда очень важен. Заявляйте неоправданно тяжёлые запросы (если таковые есть, а они, уверяю, есть) как дефекты, и будет всем счастье. Это _ваша_ организация платит за железо и DB2'шные лицензии. Чего ж зря мощности раздувать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 11:10 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
dbtwoshnickкак то бы посмотреть, что всего в целом со всеми буферпулами, кучами и т.п. DB2 занимает столько-то, Код: sql 1.
dbtwoshnickтогда зная, что для оси надо хотя бы пару гиг, можно вычислить насколько еще можно расширять большой буферный пул, чтобы не превысить доступный предел оперативки железки бест-практики рассказывают нам, что если база на хосте одна и других приложений потребляющих память нет, то 5-10% под ОС, из оставшегося 75% под буферпулы для OLTP БД и 50% под OLAP БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2016, 12:56 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
mitek, но ведь это только оперативка для буферных пулов? а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2016, 17:11 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
dbtwoshnickmitek, но ведь это только оперативка для буферных пулов? а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ? это олл-инклюзив ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 09:38 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
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? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2016, 19:00 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
mitekdbtwoshnickmitek, но ведь это только оперативка для буферных пулов? а как сосчитать всю полностью? POOL + SORTS + LOCKLIST + многое другое ..... ? это олл-инклюзив TOT_MEMORY_USED_MB 18491968 Вроде бы итого не совпадают, или в ваш запрос не включены applications? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 13:18 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
dbtwoshnick, Вы в high water mark смотрите (Maximum Size), а не в текущее использование (Current Size). Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 17:17 |
|
Как определить сколько оперативной памяти занимает DB2?
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 17:52 |
|
|
start [/forum/topic.php?fid=43&fpage=12&tid=1600529]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 153ms |
0 / 0 |