Вход в личный кабинет:

Забыли пароль? | Регистрация

Адреса компании:

Санкт-Петербург

196158, Санкт-Петербург,
Пулковское шоссе, д. 30,
корп. 4, Лит. А, офис 203

Тел: +7 812 414 95 41

Москва

129085, г. Москва, проезд Ольминского, д. 3а, стр. 3, офис 706

Тел: +7 495 616 00 53

Блог

26.08.2015

Progress OpenEdge: промышленные средства репликации данных в Oracle и MS-SQL

Progress OpenEdge Pro2 Replication

Читать далее →




Десять причин перехода на новые версии OpenEdge (Progress)


Управление буферным кэшем помимо -B

Вернуться к списку постов

29.08.2012

В мире баз данных производительность и надежность являются первостепенными. Конкуренция за общие ресурсы и дисковый ввод-вывод – самые большие препятствия, мешающие оптимальному выполнению хорошо написанных приложений. Одной из многих вещей, которые база данных OpenEdge делает для уменьшения дискового ввода-вывода, является обеспечение кэширования блоков базы данных в общей памяти. Каждый знает, что доступ к данным в памяти быстрее, чем доступ к данным на диске; однако память это конечный ресурс, и сегодня большинство корпоративных баз данных не помещается в доступной физической памяти. К счастью, большинство приложений часто обращаются только к части данных, хранящихся в базе.

При правильном размере буферного кэша, база данных OpenEdge делает очень хорошую работу по прогнозированию потребности приложения в данных, используя механизмы управления буферным кэшем. Хотя эти механизмы работают очень хорошо по умолчанию, есть несколько моментов, которые можно реализовать для дальнейшего улучшения этих механизмов и достижения еще более высокой пропускной способности.

Выполнение больших однократных сканирований данных, осуществляющих доступ к данным вне обычного рабочего набора приложения, может сбить механизм замены буферов по умолчанию, заполнив буферный кэш менее часто используемыми данными. Примерами таких действий являются выполнение dbanalys в онлайн, или запрос, который выполняет сканирование большой таблицы. Управлять тем, какие данных исключаются из буферного кэша, чтобы освободить место для новых данных, можно с помощью частных (private) буферов. Количеством частных буферов для конкретного подключения можно управлять с помощью параметра запуска -Bp или, во время выполнения, через поле _MyConn-NumSeqBuffer виртуальной системной таблицы (VST) _myConnection. Использование частных буферов ограничивает исключение существующих в буферном кэше данных только теми данными, которые управляются в рамках частных буферов, выделеных для текущего подключения. В этих обстоятельствах использование частных буферов может повысить общую пропускную способность системы за счет лучшего управления рабочим набором данных приложения в буферном кэше.

Механизм замещения буферного кэша по умолчанию может быть изменен для отдельных объектов путем использования альтернативного буферного пула. Конкретным таблицам, индексам или большим объектам (LOB) может назначаться альтернативный буферный пул, который определяется параметром запуска базы данных -B2. Политика замещения является независимой для основного и альтернативного буферных пулов. Если ресурсы распределения альтернативного буферного пула не исчерпаны, не требуется страничный обмен и накладные расходы на механизм управления замещением, что еще более повышает производительность. Кроме того, размер основного и альтернативного буферного пула можно увеличить в online с помощью параметра increaseto утилиты proutil.

В OpenEdge 10.2b06 и OpenEdge 11.1 появились параметры запуска -lruskips и -lru2skips, которые обеспечивают возможность изменять самое сердце механизма замещения буферного кэша. Механизм замены кэша по умолчанию использует алгоритм «наиболее давно использовавшийся» (LRU) для формирования рабочего набора данных выполняемого приложения. Хотя этот механизм достаточно хорош для предсказания, он страдает от высоких накладных расходов и создает конфликт, связанный с доступом процессов к конкретному буферному кэшу. Параметр -lruskips вводит частоту доступа в существующий механизм замещения LRU, резко снижая накладные расходы, улучшая параллелизм доступа к данным, оставаясь при этом еще очень хорошим в предсказании рабочего набора данных выполняемого приложения. Значение параметра может быть изменено во время выполнения через promon или путем изменения поля _Startup-LRU-Skips в VST как для основного, так и для альтернативного буферного пула. Использование -lruskips не требует настройки на уровне объектов, что требуется при использовании альтернативного буферного пула, но не имеет возможности убедиться, что объект является резидентом в буферном кэше.

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

Более подробная информация по этим механизмам может быть найдена в руководстве «OpenEdge Data Management: Database Administration».

Автор:   Richard Banville


Добавить свой комментарий

Ваше имя*:
Ваш E-mail*:
Ваш комментарий*:

Компьютерные системы для бизнеса
© 2010 - 2017 Все права на материалы, находящиеся на этом сайте, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах. При любом использовании материалов сайта ссылка на источник обязательна.