[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Настройка пороговых значений для пространства подкачки

Когда в пространстве подкачки остается мало свободного места, операционная система освобождает часть пространства подкачки. Для этого процессам отправляется предупреждение о том, что нужно освободить пространство подкачки. Если после этого свободной памяти в пространстве подкачки будет по-прежнему недостаточно для выполнения текущих процессов, операционная система уничтожит некоторые процессы.

Выбор значений npswarn и npskill

Пороговые значения npswarn и npskill указывают, когда следует рассылать процессам предупреждения и когда нужно уничтожать некоторые процессы.

Эти пороговые значения можно изменить с помощью команды vmtune:

npswarn (-w)
Задает число свободных страниц в пространстве подкачки, при достижении которого операционная система начинает отправлять сигнал SIGDANGER процессам. Получив этот сигнал при достижении порога npswarn, процесс может проигнорировать его или выполнить какие-либо действия по своему усмотрению, например, освободить занимаемую память с помощью функции disclaim() или завершить работу. В AIX версии 4 значение по умолчанию для этого параметра вычисляется по следующей формуле:
npswarn = maximum (512, 4*npskill)

Значение npswarn должно быть больше нуля и меньше общего числа страниц в пространстве подкачки. Его можно изменить с помощью команды vmtune -w.

npskill (-k)
Задает число свободных страниц в пространстве подкачки, при достижении которого система начинает убивать процессы. При достижении порогового значения npskill недавно запущенным процессам отправляется сигнал SIGKILL. Система не убивает процессы, обрабатывающие сигнал SIGDANGER, и процессы, применяющие алгоритм статического выделения пространства подкачки (в этом алгоритме пространство подкачки выделяется при получении запроса на расширение памяти). Значение по умолчанию для параметра npskill вычисляется по следующей формуле:
npskill = maximum
(64, число-страниц-в-пространстве-подкачки/128)

Значение npskill должно быть больше нуля и меньше общего числа страниц в пространстве подкачки. Его можно изменить с помощью команды vmtune -k.

nokillroot и nokilluid (-n)
Если опции nokillroot будет присвоено значение 1 с помощью команды vmtune -n 1, то процессы пользователя root не будут уничтожаться при достижении порогового значения npskill. Эта опция доступна только в AIX 4.3.3 и 4.3.3.1.

Если опции nokilluid будет присвоено ненулевое значение с помощью команды vmtune -n, то процессы пользователей, идентификаторы которых меньше указанного значения, не будут уничтожаться в случае нехватки пространства подкачки. Эта опция доступна только в AIX версии 4.3.3.2 и выше.

Настройка интервала между повторными вызовами fork() с помощью команды schedtune

Если процесс не удалось породить из-за нехватки пространства подкачки, планировщик повторит попытку еще пять раз. По умолчанию интервал между повторными попытками составляет 10 тактов.

С помощью параметра -f команды schedtune можно изменить число тактов, по истечении которых система может повторить вызов fork(), который в предыдущий раз не был выполнен. Например, если вызов fork() не был выполнен из-за того, что в системе не хватило памяти для создания нового процесса, то система повторит вызов по истечении указанного числа тактов. Значение по умолчанию равно 10 тактам. Поскольку один такт равен 10 мс, то система повторит вызов fork() через 100 мс.

Если нехватка пространства подкачки связана с кратковременным пиком активности, то увеличение интервала между повторными вызовами (например, с помощью приведенной ниже команды) позволяет дождаться, пока память будет освобождена:

# /usr/samples/kernel/schedtune -f 15

В этом случае повторный вызов fork() с большой вероятностью будет выполнен успешно, поскольку за указанный интервал некоторые процессы могли завершить работу и, следовательно, освободить страницы, занимаемые в пространстве подкачки.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]