DeepEdit!

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

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

Блокировка (закрепление) SGA Oracle в памяти


Для большинства платформ ОС Oracle поддерживает параметр инициализа-
ции LOCKSGA или MLOCKSGA или некоторые их вариации (в Sun Solaris они
называются USEISM или _USE_ISM). Если установить его на TRUE, SGA будет
постоянно оставаться в памяти. При установке параметра MLOCK_SGA или
LOCK_SGA вероятность того, что ОС выгрузит одну либо несколько частей
SGA, существенно снижается. Однако следует отметить, что в экстремальной
ситуации, когда запросы на память особенно        а пул допустимой памяти,
напротив, невелик, один или несколько компонентов блокированной SGA мо­гут быть выгружены на диск. Очевидно, что это не та ситуация, какой вы желае­те для своей системы. Проверьте, доступна ли для используемой платформы эта характеристика, и применяйте ее только в том случае, если справились с домаш­ним заданием относительно требований к памяти настраиваемой системы.
Настраиваем ядро UNIX
Двумя важными ресурсами ядра UNIX, которые необходимы при настройке
поддержки базы данных Oracle и всех связанных с ней процессов пользователя,
являются общие сегменты памяти и семафоры. Oracle использует их для связи
между процессами. Как следует из названия, общие сегменты памяти содержат
структуры данных, которые совместно        различными процессами.
Некоторые процессы просто читают то, что находится в этой области, а некото­рые изменяют ее содержимое. Кроме того, может возникнуть ситуация, когда не­сколько процессов пожелают обратиться именно к одному и тому же фрагменту информации. Для синхронизации таких конкурирующих процессов, обращаю­щихся к коллективной области памяти, UNIX использует семафоры. Слово "сема­фор" происходит от греческих слов 

semа - 

знак или метка 

ирттге - 

перенос.
Поэтому можно считать, что семафор - это метод посылки сообщений с ис­пользованием знаков или сигналов. Эти сигналы включаются и выключаются, указывая другим процессам, доступен им или нет какой-то конкретный ресурс. Семафор может также сигнализировать, когда процесс должен ожидать, а когда он имеет возможность продолжить обработку. Он аналогичен регулировщику в зоне строительньгх работ на шоссе, где для трафика в обоих направлениях вы­нужденно используется одна общая полоса движения.
Регулировщик контролирует открытую полосу движения (коллективно испо­льзуемый ресурс) и своими сигналами показывает, кто должен остановиться, а
кто может проезжать. Семафоры - это регулировщики (или регулировщицы) в мире UNIX, координирующие взаимоисключающий доступ к совместно исполь­зуемым ресурсам. Oracle применяет семафоры для предоставления взаимно иск­лючающего доступа к определенным структурам, которые он использует в
своем собственном ядре и в операционной системе.
Каждый процесс Oracle задействует семафоры, потому что он. обращается к
коллективно используемому ресурсу, а именно к SGA. Однако реализация этой
особенности зависит от операционной системы. Некоторые ОС поддерживают
несколько типов семафоров. Но большинство систем UNIX используют семафо­ры System V (пятой версии системы UNIX. - 

Прим. пер). 

Они реализованы как структуры данных, размещающиеся в области памяти ядра. Однако в случае АГХ - операционной системы IBM - функциональные возможности взаимоиск­лючающего доступа реализуются с применением псевдодрайвера устройства, который называется драйвером пост-ожидания (post-wait driver), а структуры данных семафоров не являются непосредственно управляемыми.
В зависимости от архитектуры оборудования такая реализация может быть
более масштабируемой, так как сокращается количество переключений контек­стов. Переключение контекста - это метод назначения ресурса процессу или его отключения от процесса. Оно происходит, когда процессу требуется ресурс, в данный момент задействованный другим процессом (например, ожидание ввода/вывода). Если для настраиваемой системы Oracle поддерживает драйвер пост-ожидания, необходимо обратиться к документации для этой платформы, чтобы научиться правильно конфигурировать и использовать данный параметр.
В приводимой ниже таблице перечисляются связанные с семафорами и кол-
лективной памятью параметры ядра.        о которых упоминается в ICG
Oracle, могут не всегда подходить для среды. (Например, при поддержке систем
планирования ресурсов предприятия enterprise resource planning) часто
требуются более высокие значения). Некоторые из них следует увеличить, если
приходится поддерживать на одном сервере несколько экземпляров Oracle, или
в случае, когда другие процессы используют межпроцессную связь, общие сег-
менты памяти и семафоры.

Тип
Общая память

Семафор
Параметр
SHMMAX

SHMMIN

SHMMNI

SHMSEG

SEMMNS
Описание

Устанавливает максимальный размер в байтах единого совместно используемого сегмента памяти. Oracle вначале пытается приобрести сегмент совместно используемой памяти, достаточным для размещения в нем SGA. Если это не удается, он задействует для компонентов SGA несколько совместно используемых сегментов памяти, но ему необходимо найти достаточно большой непрерывный сегмент общей памяти, чтобы разместить в нем самый большой коллективный пул.
Устанавливает минимальный размер в байтах для одного сегмента общей памяти. Его можно проигнорировать.
Устанавливает общесистемный максимум для числа сегментов общей
памяти. Обычно значение по умолчанию является приемлемым.
Устанавливает общесистемный максимум для числа сегментов общей
памяти, которое может подключить процесс.
Устанавливает общесистемный предел для максимального числа семафоров. Сконфигурируйте его для поддержки максимального числа процессов, которые можно подключить к SGA всех экземпляров Oracle для сервера. Если необходимо, чтобы база данных поддерживала 1 тысячу пользователей, Oracle потребуется 1 тысяча семафоров только для поддержки этих пользователей, не считая необходимых фоновых процессов. Данный параметр нужно конфигурировать равным удвоенному числу процессов в системе для уверенности, что всегда будет достаточное число доступных семафоров. Oracle получит количество семафоров, равное сумме числа процессов, определенных для всех экземпляров на сервере, вне зависимости от того, смогут эти многочисленные процессы когда-нибудь присоединится к соответствующим SGA или нет.

Тип        Параметр     Описание
SEMMNI       Устанавливает общесистемный максимум для числа наборов семафоров. UNIX выделяет семафоры наборами. Число семафоров в наборе колеблется от единицы до значения, определяемого параметром SEMMSL
Устанавливает общесистемный максимум для числа семафоров в наборе.
В добавление к этим параметрам ядра есть и другие, которые влияют на то, как конфигурируются ресурсы ОС. Нам может понадобиться просмотреть и скорректировать некоторые из них. В следующей таблице перечислены такие параметры. Имейте в виду, что в различных клонах UNIX для этих параметров могут использоваться несколько другие названия при тех же самых функциона­льных возможностях. В некоторых клонах UNIX изменение одного такого пара­метра влияет на значения других, так как можно использовать формулу для получения других параметров.
Параметр       Описание
maxusers        Максимальное число сеансов пользователей на уровне ОС. Влияет на такие
параметры, как nproc, nfile и maxuprc. Если значение по умолчанию не подходит, возможно увеличение значения данного параметра. Даже если пользователи не регистрируются на сервере на уровне UNIX, может оказаться необходимым повысить этот параметр для того, чтобы увеличить значения других параметров.
пргос        Общесистемный максимум для числа процессов, поддержанных ядром. К ним
относятся процессы пользователя и фоновые процессы Oracle. Если этот максимум достигается, не может быть запущен ни один новый процесс. Данный параметр должен быть установлен большим, чем значение параметра ядра SEMMNS.
nfile        Общесистемный максимум для числа открытых файлов, поддерживаемых ядром. Он
устанавливает верхний предел числа файлов, которые могут быть открыты одновременно. Внутренняя установка данного параметра равна числу слотов в таблице дескрипторов файлов. При его установке можно не ограничиваться, так как требования к памяти невелики.
maxuprc        Максимальное число процессов для одного пользователя. Этот параметр
устанавливает верхний предел числа процессов, которые может инициировать один пользователь. В большинстве случаев все связанные с Oracle процессы, а также фоновые и теневые процессы инициируются пользователем oracle. Если в системе имеется некоторое число экземпляров с довольно большим числом выделенных процессов пользователей, необходимо скорректировать значение этого параметра.
Теперь, когда мы разобрались с некоторыми общими вопросами UNIX, пе­рейдем к обсуждению настроек, зависящих от ОС. Мы поделимся с вами секре­тами настройки ОС для тех систем, с которыми вы работаете. Обсудим настройку применительно к операционным системам Sun Solaris, АГХ IBM, HP-UX и Windows NT. Некоторые из представленных здесь концепций и идей применимы и к другим ОС.

 









jAntivirus