powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / LOB (загрузка базы)
25 сообщений из 27, страница 1 из 2
LOB (загрузка базы)
    #38753761
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, комрады!
Начальник департамента, как бывший админ увидел постоянную нагрузку на винт (чтение из базы) файла на 19 МБ на серваке DB2 (9.7 Winwows 2008). Файл называется SQL00017.LB. По описанию понятно, что в нем содержится системная инфа в виде LOB, BLOB, CLOB я так понял о функциях (посмотрел через view- ер).
И то что обращается - я понимаю, наверное нужно. Но почему этот файл закешироваться в оперативку не может?
У нас оперативки предостаточно (вся база может в нее поместиться).
Как сделать так, чтобы этот файл кэшировался (соответсвенно снизится нагрузка на винт), спасибо!
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38753998
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed,
лобы не кэшируются в буферпуле (за исключением LOB inline, но там лимит в 32K вроде)
перенесите в отдельный таблспейс с FILE SYSTEM CACHING
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38754001
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

Добрый день.

Надо бы найти по пути, по которому вы файл нашли, табличное пространство, которому этот файл принадлежит.
Код: sql
1.
2.
3.
4.
select t.fs_caching, c.container_type, c.container_name, c.tbsp_name 
from table(MON_GET_CONTAINER(null, -1)) c
join table(MON_GET_TABLESPACE(null, -1)) t on t.tbsp_id=c.tbsp_id
order by c.tbsp_name


Среди результата найдите строку, где container_name - каталог, содержащий ваш файл.
Покажите fs_caching, tbsp_name для этой строки.
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38754290
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinmedoed,

Добрый день.

Надо бы найти по пути, по которому вы файл нашли, табличное пространство, которому этот файл принадлежит.
Код: sql
1.
2.
3.
4.
select t.fs_caching, c.container_type, c.container_name, c.tbsp_name 
from table(MON_GET_CONTAINER(null, -1)) c
join table(MON_GET_TABLESPACE(null, -1)) t on t.tbsp_id=c.tbsp_id
order by c.tbsp_name


Среди результата найдите строку, где container_name - каталог, содержащий ваш файл.
Покажите fs_caching, tbsp_name для этой строки.
Марк спасибо, что откликнулись!
Если я правильно понял вопрос, то файл находится в каталоге:
FS_CACHING CONTAINER_TYPE CONTAINER_NAME TBSP_NAME
0 PATH D:\DB2\NODE0000\SQL00008\SQLT0000.0 SYSCATSPACE
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38754305
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mitekmedoed,
перенесите в отдельный таблспейс с FILE SYSTEM CACHING
Спасибо!
Я не админ, можно тут поподробнее, как это сделать...
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38754465
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoed,

Добавлю:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT varchar(tbsp_name, 30) as tbsp_name, 
                  member, 
                  tbsp_type, 
                  pool_data_p_reads 
FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t 
ORDER BY pool_data_p_reads DESC



Файл лежит в этом tablespace, может у него тип с SMS на DMS поменять, полегчает винту?
TBSP_NAME MEMBER TBSP_TYPE POOL_DATA_P_READS
SYSCATSPACE 0 SMS 0
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38754788
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedЕсли я правильно понял вопрос, то файл находится в каталоге:
FS_CACHING CONTAINER_TYPE CONTAINER_NAME TBSP_NAME
0 PATH D:\DB2\NODE0000\SQL00008\SQLT0000.0 SYSCATSPACEЭто системный каталог с типом SMS. У него включено кэширование файловой системы, поэтому при работе со всеми файлами в этом каталоге оно должно использоваться.
Наверное, это можно как-то проверить средствами ОС - с какими именно флагами процесс работает с файлом, но я не знаю, как это сделать.
Какие там чтения - "логические" или "физические" показывает perfmon - я не знаю.
Всё, что вы можете сделать сдесь, это увеличить catalog cache для базы, если с ним проблемы.
Что выдает запрос:
Код: sql
1.
2.
3.
4.
5.
6.
select 
  cat_cache_lookups, cat_cache_inserts
, 100*(cat_cache_lookups-cat_cache_inserts)/nullif(cat_cache_lookups, 0) cat_cache_hr
, cat_cache_overflows, cat_cache_size_top/4096 cat_cache_size_top_4k_pages
, int((select value from sysibmadm.dbcfg where name = 'catalogcache_sz')) cat_cache_size
from sysibmadm.snapdb
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38754912
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Mark Barinstein]medoedВсё, что вы можете сделать сдесь, это увеличить catalog cache для базы, если с ним проблемы.
Что выдает запрос:
Код: sql
1.
2.
3.
4.
5.
6.
select 
  cat_cache_lookups, cat_cache_inserts
, 100*(cat_cache_lookups-cat_cache_inserts)/nullif(cat_cache_lookups, 0) cat_cache_hr
, cat_cache_overflows, cat_cache_size_top/4096 cat_cache_size_top_4k_pages
, int((select value from sysibmadm.dbcfg where name = 'catalogcache_sz')) cat_cache_size
from sysibmadm.snapdb


Марк, присылаю результат запроса картинкой:

Марк и хотел уточнить у Вас насчет параметра инстанса для DB2, как должно быть?:
Код: sql
1.
DB2NTNOCACHE=ON

или
Код: sql
1.
 DB2NTNOCACHE=OFF


для нашей СУБД (Db2 9.7 и Wondows 2008).
Спасибо!
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38755045
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedМарк, присылаю результат запроса картинкой:

Марк и хотел уточнить у Вас насчет параметра инстанса для DB2, как должно быть?:
Код: sql
1.
DB2NTNOCACHE=ON

или
Код: sql
1.
 DB2NTNOCACHE=OFF


для нашей СУБД (Db2 9.7 и Wondows 2008).Эту устаревшую переменную вообще использовать не надо.
Того же самого вы можете добиться по каждому пространству отдельно.
Проблем с кешем каталога у вас нет.
Файл должен кешироваться в ОС. Если этого не происходит, то это выглядит странно - так не должно быть...
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38842089
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перенесли самую тяжелую базу на другой сервер (он помощнее) и появился новый поток на этом сервере, рядом стоит такой же инстанс таких потоков нет.
У нас подозрения, что какие то настройки на инстансах влияют на сканирование этого файла с двоичными данными, прикрепляю картинку с доказательствами сканов:
Вся надежда на гуру...
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843058
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрели этот файл (который постоянно читается с винта), в нем функции описаны.
Гуру, особенно Марк и CawaSpb - может посоветуете чего?
Спасибо
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843227
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

Что выдает:
Код: sql
1.
2.
3.
select rtrim(tabschema)||'.'||tabname
from syscat.tables
where tbspaceid=0 and tableid=17
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843230
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

И это:
Код: sql
1.
2.
select fs_caching
from table(mon_get_tablespace('SYSCATSPACE', -1))
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843637
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinmedoed,

Что выдает:
Код: sql
1.
2.
3.
select rtrim(tabschema)||'.'||tabname
from syscat.tables
where tbspaceid=0 and tableid=17


Получаем:
Код: sql
1.
SYSIBM.SYSROUTINES






Код: sql
1.
2.
select fs_caching
from table(mon_get_tablespace('SYSCATSPACE', -1))

[/quot]

Получаем:
Код: sql
1.
FS_CASHING = 0
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843662
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

А это:
Код: sql
1.
2.
select CAT_CACHE_LOOKUPS, CAT_CACHE_INSERTS, 100*(CAT_CACHE_LOOKUPS-CAT_CACHE_INSERTS)/CAT_CACHE_LOOKUPS
from sysibmadm.snapdb
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843699
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,

CAT_CACHE_LOOKUPS CAT_CACHE_INSERTS 3
31483930 4576 99
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843700
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
medoedMark Barinstein,

CAT_CACHE_LOOKUPS CAT_CACHE_INSERTS 3
31483930 4576 99

31483930 4576 99
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843823
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoed,

Ну, все, что я могу вам сказать, это то, что у вас идет чтение LOB полей из SYSIBM.SYSROUTINES, судя по показаниям Resource Monitor.
Файловое кэширование табличного пространства SYSCATSPACE включено. Hit Ratio кэша каталога > 99%.
Поэтому всё это странно выглядит. Много физических чтений быть не должно - таблица эта небольшая должна быть.
Вы можете время от времени смотреть на скорость увеличения счетчика, чтоб смотреть со стороны db2:
Код: sql
1.
2.
select DIRECT_READS
from table(mon_get_tablespace('SYSCATSPACE', -1))



По поводу новых потоков.
Как вы определили, что они новые, и в старой системе их не было?
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38843838
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinmedoed,

Ну, все, что я могу вам сказать, это то, что у вас идет чтение LOB полей из SYSIBM.SYSROUTINES, судя по показаниям Resource Monitor.
Файловое кэширование табличного пространства SYSCATSPACE включено. Hit Ratio кэша каталога > 99%.
Поэтому всё это странно выглядит. Много физических чтений быть не должно - таблица эта небольшая должна быть.
Вы можете время от времени смотреть на скорость увеличения счетчика, чтоб смотреть со стороны db2:
Код: sql
1.
2.
select DIRECT_READS
from table(mon_get_tablespace('SYSCATSPACE', -1))



По поводу новых потоков.
Как вы определили, что они новые, и в старой системе их не было?
Спасибо, Марк! Да я понимаю, что странно. Дело в том что у нас два сервера (инстанса), на каждом из которых примерно по 5-ть баз. На 1-ом сервере такого чтения с винта нет, а вот на втором есть постоянный скан. Хотя они примерно такие же по параметрам.
Вот и не понятно, почему на 1-ом сервере скана нет, а на втором есть. Базы однородные и по строению и по объемам...
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38958491
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinmedoed,
Ну, все, что я могу вам сказать, это то, что у вас идет чтение LOB полей из SYSIBM.SYSROUTINES, судя по показаниям Resource Monitor. Файловое кэширование табличного пространства SYSCATSPACE включено. Hit Ratio кэша каталога > 99%.
Поэтому всё это странно выглядит.
Ларчик открывался просто Марк, помогла скрупулезность нач. депа (он в прошлом админ). Сравнили два сервера по настройкам DB2, оказалось что второй, который мигрировал с 7 на 9 версию имеет часть устаревших характеристик.
А посему снесли устаревшие на втором сервере эти настройки и постоянное чтение файла - SQL00017.LB. ушло (он стал кэшироваться) :
DB2_DIRECT_IO=YES
DB2_USE_ALTERNATE_PAGE_CLEANING=ON

Может кому поможет...
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38958716
A.Panskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedА посему снесли устаревшие на втором сервере эти настройки и постоянное чтение файла - SQL00017.LB. ушло (он стал кэшироваться) :
DB2_DIRECT_IO=YES
DB2_USE_ALTERNATE_PAGE_CLEANING=ON



второй параметр никак не мог повлиять.

Описание по поводу использования или нет кэширования ОС приведено в доке:

Database administration>Administration concepts>Databases>Table spaces>Table spaces for system, user and temporary data>Table spaces without file system caching

Где есть нота

The now-deprecated registry variable DB2_DIRECT_IO, introduced in Version 8.1 FixPak 4, enables no file system caching for all SMS containers except for long field data, large object data, and temporary table spaces on AIX JFS2. Setting this registry variable in Version 9.1 or later is equivalent to altering all table spaces, SMS and DMS, with the NO FILE SYSTEM CACHING clause. However, using DB2_DIRECT_IO is not recommended, and this variable will be removed in a later release. Instead, you should enable NO FILE SYSTEM CACHING at the table space level.

Andy
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38958736
A.Panskikh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще добавлю из копилки опыта - установкой на виндузячие сервера антивирусов может дать подобный эффект, если не исключить каталоги баз из области сканирования. Это будет видно на ресурс-мониторе, что процесс от антивируса лезет к файлам db2.

FYI: какие tbs кэшируются виндой видно по процессу system.

AP
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38958753
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A.PanskikhmedoedА посему снесли устаревшие на втором сервере эти настройки и постоянное чтение файла - SQL00017.LB. ушло (он стал кэшироваться) :
DB2_DIRECT_IO=YES
DB2_USE_ALTERNATE_PAGE_CLEANING=ON



второй параметр никак не мог повлиять.

Описание по поводу использования или нет кэширования ОС приведено в доке:

Database administration>Administration concepts>Databases>Table spaces>Table spaces for system, user and temporary data>Table spaces without file system caching

Где есть нота

The now-deprecated registry variable DB2_DIRECT_IO, introduced in Version 8.1 FixPak 4, enables no file system caching for all SMS containers except for long field data, large object data, and temporary table spaces on AIX JFS2. Setting this registry variable in Version 9.1 or later is equivalent to altering all table spaces, SMS and DMS, with the NO FILE SYSTEM CACHING clause. However, using DB2_DIRECT_IO is not recommended, and this variable will be removed in a later release. Instead, you should enable NO FILE SYSTEM CACHING at the table space level.

Andy
Дык поэтому в описании проблемы и выделил его жирным, в нем и была загвоздка!
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38958757
Фотография medoed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A.Panskikhеще добавлю из копилки опыта - установкой на виндузячие сервера антивирусов может дать подобный эффект, если не исключить каталоги баз из области сканирования. Это будет видно на ресурс-мониторе, что процесс от антивируса лезет к файлам db2.

FYI: какие tbs кэшируются виндой видно по процессу system.

AP
Спасибо за совет, это мы исключили сразу!
...
Рейтинг: 0 / 0
LOB (загрузка базы)
    #38958869
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
medoedА посему снесли устаревшие на втором сервере эти настройки и постоянное чтение файла - SQL00017.LB. ушло (он стал кэшироваться) :
DB2_DIRECT_IO=YES
DB2_USE_ALTERNATE_PAGE_CLEANING=ONDB2_USE_ALTERNATE_PAGE_CLEANING - настройка не устаревшая.

Эффект странный.
Все эти настройки с использованием кэша файловой системы не должны были снять проблему. Они всего лишь указывают DB2, использовать ли флаг FILE_FLAG_NO_BUFFERING при открытии файла или нет. Но они не должны были уменьшить число физических чтений LOB'ов, т.е. заставить DB2 кэшировать эти объекты - DB2 не кэширует не-inline LOB'ы в буферном пуле.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / LOB (загрузка базы)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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