DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Настройка демона подкачки страниц Solaris

Настройка демона подкачки страниц Solaris


До появления Solaris 2.8 для достижения 

высокой производительности систем с 

управлением виртуальной памятью всегда должен был находиться в активизи­рованном состоянии алгоритм подкачки страниц. Дело в том, что запускаемый по умолчанию демон подкачки страниц не поддерживает усложнившихся по­требностей современных систем и имеет тенденцию становиться чрезмерно ак­тивным. Кроме того, неоптимально сконфигурированный демон может вызвать в системе ничем не обусловленную подкачку страниц, что приводит к деградации производительности. Алгоритм подкачки страниц на основании приоритетов (который по умолчанию отключен) можно включить, установив следующие параметры ядра:
set fastscan =131072 set  maxpgio=65536 set priority_paging=1
Эти установки особенно хорошо подходят для таких систем с высокой ин­тенсивностью OLTP, как широко распространенные системы SAP, Baan, PeopleSoft, Oracle Applications и т. п. Дополнительную информацию по этому вопросу можно найти в архивах SunWorldOnline и Sun Blueprints. Кроме того, полезно отметить, что у этого алгоритма подкачки страниц по приоритетам в Solaris 2.8 имеется новый и усовершенствованный преемник. Подробное об­суждение такой подкачки страниц выходит за рамки книги, и мы отсылаем вас к целому морю онлайновой информации на web-сайте Sun (http:// www.sun.com/).
В приведенной ниже таблице перечислены некоторые полезные команды
Sun Solaris. Для получения более полной информации о них можно воспользо­ваться справочным руководством.

Название        Полностью
команды        квалифицированное
имя
dmesg        /usr/sbin/dmesg

prtconf        /usr/sbin/prtconf
prtdiag        /Usr/platform/
<platfornwiame>/ sbin/prtdiag
psrinfo        /usr/sbin/psrinfo
mpstat        /bin/mpstat

sysdef        /usr/sbin/sysdef


swap        usr/sbin/swap
Описание
Хотя эта команда перечисляет сообщения, ее можно использовать для проверки числа ЦП, размеров памяти и получения другой информации об оборудовании.
Подробно перечисляет конфигурацию системы.
Отображает диагностическую информацию о системе, platform_name - это название реализации аппаратного обеспечения, которое можно узнать, выполнив команду uname -1.
Отображает информацию о процессорах. Отображает статистику использования каждого
процессора в табличной форме.
текущее определение системы, перечисляет все настраиваемые параметры устройств и ядра.
С опцией -I эта команда покажет список всех
областей свопинга.

Настройка AIX
Данный уникальный клон UNIX был изобретен корпорацией IBM. В боль­шинстве случаев при изменении каких-либо связанных с ОС параметров не тре­буется повторного построения ядра и перезагрузки. Это динамическое ядро. Нет семафоров и общих сегментов памяти, о которых необходимо постоянно заботиться. Максимальное значение размера сегмента общей памяти (SHMMAX) фиксировано. Ранее были проблемы с некоторыми версиями AIX, в которых размер SGAHe должен был превышать 2 Гбайт. Однако Oracle предло­жил патчи для решения проблемы. Свяжитесь со службой Oracle Support для уверенности, что при вашей версии Oracle на вашей версии можно исполь­зовать для SGA большие размеры.
Oracle применяет собственные драйверы пост-ожидания и устраняет необ­ходимость конфигурировать связанные с семафорами параметры или быть
обеспокоенным их        заданными предельными значениями.
Что же здесь можно настраивать? Прочтите.

Асинхронный ввод/вывод
поддерживает ввод/вывод для сырых устройств, а также для роваиных (journalized) файловых систем. К сожалению, не многие реализации готовы к такой возможности или применяют это впечатляющее решение для получения выигрыша в производительности.
Для использования данной особенности вместе с Oracle 7.3.x установите па­раметр инициализации USE_ASYNCH_IO на TRUE, a DB_WRITERS на 1: Нельзя задействовать много DB_WRITERS, если есть асинхронный ввод/вывод, поэто­му просто установите его равным
В OracleS и более поздних версиях этот параметр инициализации был пере­именован в DjSK_ASYNCH_IO и получил значение по умолчанию TRUE. Устано­вите DB WRITER PROCESSES равным 1 и не используйте DBWR_IO_SLAVES.
обрабатывает запросы асинхронного        при помощи отдель-
ного процесса, называемого 

aioscwcr 

(сервер асинхронного ввода/вывода). Он является процессом ядра 

крюс. 

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

minserven 

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

maxservers. 

Его значение по умолчанию равно 10. При запуске системы инициируется ровно 

minservers 

серверов асинхронного ввода/вывода. По мере роста запросов на
асинхронный ввод/вывод будут инициироваться дополнительные серверы
асинхронного        но таким образом, чтобы их общее количество не
превысило maxservers. Нужно отметить, что при уменьшении числа запросов на
асинхронный ввод/вывод эти серверы не будут завершаться. Установите пара­метры 

minservers 

и 

maxseruers, 

используя команду smit (smitty aio) или команду chdev:
О     chdev -1 aioO -a        =
Можно применить команду pstat, чтобы увидеть, сколько серверов асинх­ронного ввода/вывода было использовано с момента последней перезагрузки:
# pstat -a | grep aios |      -1
Возможно также использование команды ps -k для просмотра серверов асин­хронного ввода/вывода как процессов ядра kproc. Но вместе с ними будут пока­заны и все остальные процессы ядра, если они есть. Чтобы запускать команды chdev и pstat, необходимо иметь привилегии пользователя root.
IBM рекомендует задействовать 10 серверов асинхронного ввода/вывода на каждое независимое запоминающее устройство, к которому будут идти одновре­менные обращения в асинхронном режиме. Однако максимальное значение числа этих серверов не должно превышать десятикратного количества процес­соров в машине. Установите 

minservers равным maxservers/23атем 

можно органи­зовать мониторинг с целью определения, сколько дополнительных серверов асинхронного ввода/вывода было инициировано, и выяснить, требуется ли корректировка этого параметра.
Например, если имеется сервер с 20 независимыми запоминающими устрой-
ствами с асинхронным доступом к ним, следует установить        равным
200, a - ■■ 100. Однако, если на этой машине только четыре ЦП, достаточ-
но установить 

maxservers

равным 40, a 

minseruers- 

20. Использование более высо-
ких значений параметров 

maxservers 

и 

minserven 

будет обратнопропорционально
влиять на производительность. Они просто добавят в систему новые неисполь-
зуемые процессы.
Можно применять команду lsattr-E -1 aioO, чтобы увидеть конфигурацию сер­веров асинхронного ввода/вывода. Вот пример выходной информации такой команды:
oracle ibmrs601  [DBPR]:  Isattr -E -1 aioO
minservers      25        MINIMUM number of servers        True
maxservers    100        MAXIMUM number of servers        True
maxreqs        4096        Maximum number of REQUESTS        True
kprocprio      39        Server PRIORITY        True
autoconfig    available STATE to be configured at system restart        True
fastpatfi       enable      State of fast path        True
oracle ibmrs601   [DBPR]:
Параметр 

maxreqs 

ограничивает число одновременно выполняющихся асинх­ронных запросов ввода/вывода. Отображаемое значение представляет значе­ние по умолчанию. IBM рекомендует по крайней мере удвоить это значение при использовании асинхронного вывода с OracIe8i и файловыми системами JFS. Параметр 

kprocprio 

устанавливает приоритет по умолчанию для процессов асин­хронного ввода/вывода в ядре. Если объем запросов на асинхронный ввод/вы­вод высок, можно увеличить приоритет этих процессов.
Ко времени написания этой главы АГХ не предоставлял никаких возможно-
стей для измерения объема запросов на асинхронный ввод/вывод. Однако,
служба IBM Support может передать заинтересованным пользователям реализа-
цию неподдерживаемой команды - aiostat, показывающей число таких запро-
сов. Эта команда, если выполнять ее с интервалом квантования в несколько
секунд (скажем, как        будет продолжать показывать значение счетчика за-
просов до тех пор, пока мы не остановим ее. Ниже приводится пример выход­ных данных команды aiostat для случая, когда проверяются запросы на асинхронный ввод/вывод для удаления строк из таблицы. Замеры делаются че­рез одну секунду.
Q # aiostat 1
AI0 requestcount:        О
AIO requestcount:        О
АЮ requestcount:        22
АЮ
requestcount:
61

АЮ
requestcount:
52

АЮ
requestcount:
80

АЮ
requestcount:
64

АЮ
requestcount:
5

АЮ
requestcount:
О

Если применяется или планируется к использованию асинхронный ввод/вывод в среде AIX, мы рекомендуем приобрести команду aiostat в службе IBM Support. Она является полезным инструментом для мониторинга асинх­ронного ввода/вывода в системе. Однако для ее запуска нужны полномочия по­льзователя root. Мы уже несколько раз упоминали о необходимости тесного сотрудничества с системным администратором, когда дело доходит до монито­ринга и настройки ОС. Теперь вы знаете почему!
Асинхронный ввод/вывод является ускорителем производительности, ес­ли, конечно, он конфигурирован оптимально. Учитывая, что связанный с этим риск очень невелик, можно использовать его в базах данных, эксплуатируемых в среде
 









jAntivirus