Настройка демона подкачки страниц 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. Однако, если на этой машине только четыре ЦП, достаточ-
но установить
ких значений параметров
влиять на производительность. Они просто добавят в систему новые неисполь-
зуемые процессы.
ствами с асинхронным доступом к ним, следует установить равным
200, a - ■■ 100. Однако, если на этой машине только четыре ЦП, достаточ-
но установить
maxservers
равным 40, aminseruers-
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, показывающей число таких запро-
сов. Эта команда, если выполнять ее с интервалом квантования в несколько
секунд (скажем, как будет продолжать показывать значение счетчика за-
стей для измерения объема запросов на асинхронный ввод/вывод. Однако,
служба 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. Мы уже несколько раз упоминали о необходимости тесного сотрудничества с системным администратором, когда дело доходит до мониторинга и настройки ОС. Теперь вы знаете почему!
Асинхронный ввод/вывод является ускорителем производительности, если, конечно, он конфигурирован оптимально. Учитывая, что связанный с этим риск очень невелик, можно использовать его в базах данных, эксплуатируемых в среде
< Предыдущая | Следующая > |
---|