Модификации ввода/вывода DB2 в Solaris

Оценить
(0 голоса)

Производительность СУБД глубоко связана с эффективностью дисковых операций ввода/вывода. Соответственно для DB2 в Solaris было сделано несколько усовершенствований, гарантирующих, что дисковые операции ввода/вывода выполняются настолько эффективно, насколько это возможно. В число указанных усовершенствований входят следующие:

•             Одно из наиболее значительных изменений в DB2. сделанных для пользователей Solaris, была поддержка низкоуровневых журналов. Когда используются низкоуровневые устройства, небольшое количество больших файлов журналов предпочтительнее, чем множество маленьких файлов; максимальный размер журнала в версии 2.l.l DB2 был соответственно увеличен с 64 до 256 Мбайт.

•             Более эффективная форма асинхронного ввода/вывода, называемая КАЮ (Kernel Asynchronous I/O - асинхронный ввод/вывод ядра), автоматически включается в Solaris, когда асинхронные операции ввода/вывода выполняются в отношении низкоуровневых устройств. Однако DB2 версии 2 использовала только синхронный ввод/вывод (не путать с асинхронным поведением, как в очистителях страниц и механизмах предвыборки). Очистители страниц памяти были модифицированы таким образом, чтобы использовать асинхронный ввод/вывод. Это изменение приводит к существенному повышению производительности, когда табличные области размещаются на низкоуровневых устройствах (операции ввода/вывода которых работают с необработанными данными в виде битовых потоков).

•             Операционная система Solaris поддерживает системные вызовы pread(2) и pwrite(2), которые представляют собой более эффективные формы системных вызовов read(2) и write(2). Их преимущество заключатся в экономии одного системного вызова на каждую операцию чтения и записи. DB2 была модифицирована для использования преимуществ системных вызовов pread и pwrite.

•             В DB2 UDB 5.0 и более поздних версиях, как и в Solaris 2.6, была введена поддержка контейнеров табличных областей, размер которых превышает 2 Гбайт. Поскольку базы данных продолжают увеличиваться в размерах и одновременно растет емкость дисковых накопителей, контейнеры большего размера могут упростить системное администрирование.

Другие изменения, обеспечивающие повышение производительности:

•             Модификация количества операций записи, выполняемых очистителями страниц при каждом их вызове.

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

Другие модификации DB2 в Solaris. Приведенные далее примеры иллюстрируют некоторых из наиболее важных модификаций.

•             ISM (Intimate Shared Memory - единообразно объявленная память совместного использования, то есть, заказанная через единую для процессов таблицу, а не через отдельные таблицы, преобразования виртуальных адресов в физические) для трансляции адресов позволяет структурам ядра быть разделенными между процессами, соединяющимися с обычными доступными областями памяти совместного использования. ISM блокирует намять, чтобы устранить страничную подкачку, и значительно уменьшает системные сигналы (прерывания) во время переключения контекста (сохранение регистров процессора и загрузка их новым содержимым при переключение на другой процесс или при обработке прерывания). Это тривиальное изменение кода обеспечило мгновенное улучшения производительности DB2 в Solaris. ISM обсуждается более подробно в главе 3.

•             Как показано на рисунке, производительность по эталонному тесту ТРС-С на SPARCcenter 2000Е с 16 ЦП более чем вдвое увеличилась по сравнению с производительностью SPARCserver 1000Е с 8 ЦП. Такая масштабируемость была частично достигнута за счет удвоения количества страниц буфера БД. Удвоение BUFFPAGE стало возможным после того, как для DB2 был поднят предел памяти совместного использования с 2 до 4 Гбайт.

•             Цена защелок в СУБД (применяются для промежуточного хранения одного или более бит в асинхронных операциях) меняется от платформы к платформе. Эксперименты на системах фирмы Sun позволили предложить оптимальные значения, отличные от тех, которые применяются в операционной системе А1Х. Соответственно было модифицировано поведение DB2 в Solaris.

Многие другие функциональные возможности Solaris, дающие заметное повышение производительности СУБД, такие как поддержка больших страниц (размер страниц памяти операционной системы может быть увеличен до 4 Мбайт вместо заданного по умолчанию значения, равного 8 Кбайт) 1SM в Solaris версии 2.6 и более поздних выпусков, доступны для DB2 без необходимости внесения каких-либо модификаций.

Эта краткая история должна дать понимание технических взаимоотношений корпораций Sun и IBM и тех выгод, которые, в конечном счете, получают конечные пользователи. Подробности также иллюсгрируют те способы, которыми группа Performance and Availability Engineering фирмы Sun работает с партнерами.

Фирмы Sun и Oracle
Совместные работы
Разработки фирмы Sun
Фирмы Sun и Sybase
Фирмы Sun и Informix

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


Защитный код
Обновить