Администрирование ОС Solaris

       

Некоторые настраиваемые параметры ядра


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

Основным параметром является maxusers, который влияет на значения параметров max_nprocs и maxuprc.

Параметр maxusers в прошлом определял максимальное разрешенное количество одновременно работающих в системе пользователей. Размер многих таблиц в ядре вычислялся с использованием этого параметра. В настоящее время старое значение этого параметра утратило смысл, но некоторые параметры ядра продолжают базироваться на maxusers. Это максимально допустимое количество процессов в системе, размер структур квотирования в системе и размер кэша имен каталогов (directory name lookup cache - DNLC). По умолчанию maxusers равно меньшему из двух чисел - объему памяти системы в мегабайтах или 2048. Может принимать любое значение от 1 до 2048, при явной установке в /etc/system - от 1 до 4096, но следует указывать разумные значения. Значение maxusers явно мало, если система выдает сообщения

out of processes

Значение maxusers по умолчанию скорее всего будет велико для систем с малым количеством запущенных процессов и большим объемом памяти - серверов баз данных, вычислительных серверов и т.п.

Еще одним важным параметром является max_nprocs: он ограничивает максимальное количество процессов, которые можно одновременно запустить в системе. Влияет на вычисление значения maxuprc. Кроме того, значение max_nprocs влияет на:

  • вычисление размеров кэша имен каталогов (DNLC);
  • резервирование структур, обеспечивающих квотирование дискового пространства (если не указано явно значение ndquot);
  • проверку того, что объем памяти, занятый под семафоры, не превышает системных ограничений;
  • настройку подсистемы Hardware Address Translation для систем x86 и sun4m.
  • Значение max_nprocs по умолчанию - 10 + (16 x maxusers), диапазон значений - от 266 до максимально возможного идентификатора процесса (maxpid). Изменение этого параметра понадобится, если потребуется запускать более 30 000 процессов одновременно.


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

    По умолчанию этот параметр равен разности max_nprocs и reserved_procs, где reserved_procs - это параметр, отвечающий за резервирование некоторого количества идентификаторов процессов для пользователя root (даже если вся таблица процессов заполнена процессами пользователей, для процессов root оставляется резерв строк в этой таблице). По умолчанию reserved_procs устанавливается равным 5.

    Количество процессов, которое имеет право запустить один пользователь, можно только уменьшить - сделать его большим, чем max_nprocs - reserved_procs, нельзя.

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

    out of per-user processes for uid N

    Для более детального изучения параметров ядра, доступных для настройки, имеет смысл ознакомиться с Solaris Tunable Reference Manual, размещенным на http://docs.sun.com/.


    Содержание раздела