Управление страничным обменом в буферах. Избыточный страничный обмен значительно снижает производительность, что особенно важно для БД, созданных на файловой системе. В этом случае большому числу буферов SGA могут соответствовать аналогичные буфера файловой системы UFS, содержащие наиболее часто используемые данные. Сбрасывание измененных буферов на диск замедляет работу системы из-за высокой частоты этих сбросов и большого объема выполняемых операций, что является «узким» местом, снижающим пропускную способность всей системы.
Пример. В ОС Solaris параметры ядра системы TUNE_T_FSFLUSHR и AUTOUP управляют поведением процесса fsflushr, так называемого «демона». Через регулярные промежутки времени он просматривает часть страничных структур каждые TUNE_T_FSFLUSHR секунд и циклически обходит все страничные структуры через AUTOUP секунд. Если параметр TUNE_T_FSFLUSHR равен 60 и AUTOUP равен 180, то fsflushr будет просматривать 1/3 буфера каждые 60 с и проверять весь буфер через 180 с. Правильная настройка этих параметров позволяет повысить производительность до 15%.
Конфигурация свопа. Недостаточный размер области свопа приводит к зависаниям системы или медленной реакции. В ОС Solaris своп может быть динамически сконфигурирован на файлах UFS или областях непосредственного доступа. Его размер должен быть в 2–3 раза больше объема оперативной памяти.
Установка размера блоков БД. В ОС Solaris логический размер блока файловой системы обычно составляет 2 Кбайт, 4 Кбайт или 8 Кбайт. Для областей непосредственного доступа размер блока равен 512 байт. Параметр DB_BLOCK_SIZE в любом случае должен быть кратным размеру блока ОС.
Для приложений типа оперативной обработки транзакций рекомендуются небольшие размеры блоков БД – 2 Кбайт или 4 Кбайт, для систем поддержки принятия решений – 8 Кбайт.
|
Сокращение очереди к блокированным журнальным буферам. Уменьшить очередь к блокированным журнальным буферам можно за счет сокращения времени существования блокировок или увеличения их допустимого количества. Это достигается установкой параметров LOG_SMALL ENTRY_MAX_SIZE и LOG_SIMULTANEUOS_COPIES в файле init.ora.
Настройка буферов архиватора. Увеличение размера и числа этих буферов повышает скорость архивации журналов транзакций БД на 20% и более. Однако слишком большие значения параметров LOG_ARCHIVE BUFFER_SIZE и LOG_ARCHIVR_BUFFERS в файле init.ora могут снизить производительность системы в целом.
Использование разделяемой памяти. На платформах Sun с архитектурой Sun-4m и Sun-4d существует возможность для различных процессов, относящихся к одному адресу разделяемой памяти, совместно использовать одну страничную таблицу. Эта опция, называемая Intimate Shared Memory (ISM), повышает производительность СУБД. Она включена в ядро ОС и по умолчанию активизирована, однако ПП должна явно ее использовать. В Oracle использованием ISM управляет параметр USE_ISM=TRUE в файле init.ora.
Настройка размеров SGA. Максимальный размер сегмента разделяемой памяти ограничен типом данных, представляющих этот параметр (это целое), и поэтому сегмент не превосходит 2 Гбайт. Другим ограничением является размер виртуальной памяти, адресуемой на машине конкретной архитектуры. Для большого числа одновременно работающих пользователей рекомендуется большой размер SGA. Параметры файла init.ora DB_BLOCK_BUFFERS и SHARED_POOL_SIZE оказывают наибольшее влияние на размер SGA.
|
Настройка кэш-буфера Unix. Размер буфера ввода/вывода в Solaris определяется параметром bufhwm ядра, равным максимальному объему физической памяти в килобайтах, которая может использоваться для буферизации. По умолчанию используется 2 % памяти, но в случае необходимости может использоваться до 20 %. Показатель buffer hit ratio характеризует удачный поиск затребованных данных в буфере.
Контрольные вопросы
1. Охарактеризуйте проблему обеспечения высокой производительности в системах распределенной обработки данных.
2. Назовите рекомендации по уменьшению времени обслуживания заявок ресурсами системы.
3. Опишите процесс настройки СУБД в среде Solaris.
4. Как выполняется планирование заданий для режима реального времени в среде Solaris?
Список литературы
1. Алеев В. Настройка Oracle в среде Solaris // Мир «Oracle». M, 1996. № 2. С. 34–37.
2. Базы и банки данных и знаний / Г. И. Ревунков, Э.Н. Самохвалов, В.В. Чистов; Под ред. В.Н. Четверикова. М: Высшая школа, 1992.
3. Григорьев Ю.А., Плутенко А.Д. Жизненный цикл проектов распределенных баз данных. Благовещенск, АмГУ, 1999.
4. Дадли К. Хеширование в Oracle // Мир «Oracle». М., 1996. № 5/6. С. 36–39.
5. Дунаев С.С. Доступ к базам данных и техника работы в.сети. Практические приемы современного программирования. М.: Диалог–МИФИ, 1999,
6. Дж. Ульман, Дж. Уидом. Введение в системы баз данных: Пер. с англ. М.: «Лори», 2000.
7. МейерД. Теория реляционных баз данных: Пер. с англ. М.: Мир, 1987.
8. Фаронов В.В., Шумаков П.В. Delphi 5. Руководство разработчика баз данных. М.: «Нолидж», 2000.
9. Калиниченко Л.А., Когаловский М.Р. Стандарты OMG: Язык определения интерфейсов IDL в архитектуре CORBA // Системы управления базами данных. М., 1996. №2. С. 115–129.
10. Шолл Ф.В. Планирование нагрузки // Lan magazine/Русское издание. М., 1996. Т. 2, №8. С. 38–43.
Учебное пособие