Прочие настраиваемые параметры

AIX позволяет настраивать несколько дополнительных параметров.

  1. AIX_TZCACHE
    Флаг Дескриптор
    Назначение: Применяется для хранения фиксированной копии переменной TZ во время выполнения процесса.
    Значения: По умолчанию: Нет

    Допустимые значения: ON (включает параметр)

    Просмотр: $AIX_TZCACHE
    Изменение: export AIX_TZCACHE=ON

    Изменения применяются для всех процессов, которые затем будут запускаться из этой оболочки. Указывает, что приложение должно всегда использовать начальное значение переменной TZ. Этот процесс повышает производительность, если приложение часто запрашивает часовой пояс. Например, если приложение часто проверяет локальное время. Однако, после запуска приложения любые изменения переменной TZ игнорируются.

    Рекомендации: Этот параметр не рекомендуется использовать в универсальной конфигурации системы в файле /etc/environment. Укажите этот параметр для приложений, которые не изменяют переменную TZ, но часто запрашивают часовой пояс.
    Настройка: нет
  2. EXTSHM
    Флаг Дескриптор
    Назначение: Включает опцию расширенной общей памяти.
    Значения: По умолчанию: Нет

    Допустимые значения: ON, 1SEG, MSEG

    Просмотр: echo $EXTSHM
    Изменение: export EXTSHM

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки. Для того чтобы сделать это изменение постоянным, добавьте команду EXTSHM=ON , EXTSHM=1SEG или EXTSHM=MSEG в файл /etc/environment.

    Рекомендации: нет
    Настройка: Установка значения ON, 1SEG или MSEG позволяет уменьшить размер выделяемых для процесса сегментов общей памяти до одного байта, округленного до размера целой страницы. Таким образом снимается ограничение в 11 пользовательских сегментов общей памяти. Для 32-разрядных процессов максимальный общий размер всех сегментов памяти составляет 2,75 ГБ.

    Значение переменной EXTSHM ON эквивалентно значению 1SEG. С любым из этих значений любой фрагмент общей памяти размером меньше 256 МБ создается в системе как сегмент mmap, и тем самым влияет на производительность аналогично mmap. Общая память с размером 256 МБ и больше представляется в виде рабочего сегмента.

    Если EXTSHM задана равной MSEG, то вся общая память создается в системе как сегмент mmap, что позволяет улучшить работу с памятью.

    Дополнительная информация: Расширенная общая память
  3. LDR_CNTRL
    Флаг Дескриптор
    Назначение: Разрешает настройку загрузчика ядра.
    Значения: По умолчанию: Нет

    Возможные значения: PREREAD_SHLIB, LOADPUBLIC, IGNOREUNLOAD, USERREGS, MAXDATA, MAXDATA32, MAXDATA64, DSA, PRIVSEG_LOADS, DATA_START_STAGGER, LARGE_PAGE_TEXT, LARGE_PAGE_DATA, HUGE_EXEC, NAMEDSHLIB, SHARED_SYMTAB и SED

    Просмотр: echo $LDR_CNTRL
    Изменение: LDR_CNTRL={PREREAD_SHLIB | LOADPUBLIC| ...}export LDR_CNTRL В данной оболочке изменения вступают в силу сразу после выполнения команды. Изменение действительно до выхода из оболочки. Для того чтобы сделать изменение постоянным, добавьте следующую команду в файл /etc/environment: LDR_CNTRL={PREREAD_SHLIB | LOADPUBLIC| ...}
    Рекомендации: нет
    Настройка: С помощью переменной среды LDR_CNTRL можно задать многие аспекты работы системного загрузчика ядра. В переменной LDR_CNTRL можно задать многие атрибуты. Атрибуты следует отделять друг от друга символом '@'. Например: LDR_CNTRL=PREREAD_SHLIB@LOADPUBLIC. Если задан атрибут PREREAD_SHLIB, то при обращении к библиотеке считывается все ее содержимое. Если в VMM настроен режим упреждающего чтения, библиотеку можно считать с диска и записать в кэш программы, обращающейся к ее страницам. Хотя в этом случае будет расходоваться больше памяти, применение такого подхода позволяет повысить скорость работы программ, обращающихся к большому числу страниц общих библиотек при условии, что применяется произвольный способ доступа к данным (например, Catia).

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

    Опция IGNOREUNLOAD позволяет запретить выгрузку библиотек. Благодаря этому можно предотвратить фрагментацию памяти и избавиться от лишней нагрузки, возникающей от постоянной загрузки и выгрузки библиотек. Если опция IGNOREUNLOAD не указана, может возникнуть ситуация, когда в память загружено два экземпляра модуля: один при запуске приложения, а второй по динамическому запросу.

    Если задана опция USERREGS, то система сохраняет содержимое пользовательских регистров общего назначения. Таким образом, эти регистры могут использоваться последующими системными вызовами, сделанными в рамках этого приложения. Эта опция может применяться в том случае, если приложение выполняет сбор мусора.

    Опция MAXDATA позволяет ограничить размер кучи и при необходимости переопределить значение, указанное в исполняемом файле. Значение MAXDATA задает начальное ограничение ресурсов процесса. В 32-разрядных программах, если значение MAXDATA больше нуля, то включается модель большого адресного пространства. См. Поддержка больших программ. Для выключения модели большого адресного пространства переменную MAXDATA необходимо обнулить: LDR_CNTRL=MAXDATA=0. В 64-разрядных программах MAXDATA задает гарантированный максимальный размер кучи данных программы. Часть адресного пространства, зарезервированная для кучи, недоступна процедурам shmat() и mmap() даже в том случае, если адрес указан явным образом. Можно указать произвольное значение, однако область данных не может выходить за пределы 0x06FFFFFFFFFFFFFF вне зависимости от значения maxdata.

     

    Два дополнительных параметра существуют для оптимизации отдельно для 32-разрядных и 64-разрядных процессов. Дополнительные параметры максимального размера переопределяют опцию MAXDATA в двух соответствующих объектных моделях. Опция MAXDATA32 выполняет роль MAXDATA в 32-разрядных процессах, а в 64-разрядных игнорируется. Аналогично, опция MAXDATA64 влияет только на 64-разрядные процессы.

    Опция PRIVSEG_LOADS указывает системному загрузчику, что динамически загружаемые личные модули процесса нужно помещать в личный процесс сегмента. Это может повысить коэффициент готовности памяти при работе объемных приложений, выполняющих динамическую загрузку личных модулей и сталкивающихся с нехваткой памяти в куче процесса. Если в личном сегменте процесса недостаточно места, опция PRIVSEG_LOADS не играет роли. Опция PRIVSEG_LOADS действует только для 32-разрядных приложений с ненулевым значением MAXDATA.

    Если будет указана опция DATA_START_STAGGER=Y, сегмент данных процесса будет начинаться со смещения, зависящего от MCM и определенного опцией data_stagger_interval команды vmo. У процесса с номером n, выполняемого в определенном MCM, раздел данных начинается по адресу (n * data_stagger_interval * PAGESIZE) % 16 МБ. Опция DATA_START_STAGGER=Y допустима только для 64-разрядных процессов в 64-разрядном ядре.

    Опция LARGE_PAGE_TEXT=Y указывает, что загрузчик должен пытаться разместить текстовый сегмент процесса в больших страницах памяти. Опция LARGE_PAGE_TEXT=Y допустима только для 64-разрядных процессов в 64-разрядном ядре.

     

    Если указана опция LARGE_PAGE_DATA=M, то большие страницы выделяются для сегмента данных только в пределах значения brk, тогда как без этой опции большие страницы выделяются для всего сегмента. Изменение значения brk может не сработать, если для нового значения brk будет недостаточно больших страниц памяти.

    Опция RESOLVEALL указывает, что загрузчик должен принудительно преобразовать все неопределенные символы, импортированные во время загрузки программы или динамических модулей. Преобразование символов выполняется в стандартной для AIX последовательности. Если вы укажете опцию LDR_CNTRL=RESOLVEALL и при этом импортированные символы будет невозможно преобразовать, то программа или динамический модуль не будут загружены.

    Опция HUGE_EXEC переменной среды позволяет пользователю управлять процесс расположением адресного пространства процессов сегментов, доступных только для чтения, для некоторых 32-разрядных исполняемых файлов. Дополнительная информация приведена в разделе Большие исполняемые файлы.

    Задание опции NAMEDSHLIB=имя,[атрибут-1],[атрибут-2]...[атрибут-N] запускает процесс доступа к области общей библиотеки или создания такой библиотеки с указанным именем. Для создания именованной области общей библиотеки можно использовать следующие способы:
    • Без атрибутов
    • С атрибутом doubletext32, который создает именованную область общей библиотеки, имеющую два сегмента, выделенных для текста общей библиотеки.
    Если для процесса требуется несуществующая именованная область общей библиотеки, такая область с указанным именем будет создана автоматически. Если указано недопустимое имя, параметр NAMEDSHLIB=имя,[атрибут-1],[атрибут-2]...[атрибут-N] проигнорируется. Допустимые имена имеют ненулевую длину и содержат только символы букв, цифр, подчеркивания и точки.

    Если указана опция SHARED_SYMTAB=Y, то для экспорта символов в 64-разрядных программах система создаст общую таблицу символов. Если параллельно выполняются несколько программ, общая таблица символов позволит уменьшить объем используемой системной памяти.

    Если указана опция SHARED_SYMTAB=N, общая таблица символов не создается. Эта опция переопределяет флаг AOUT_SHR_SYMTAB в необязательном заголовке XCOFF.

    Опция SED запрещает процессу использовать стек для выполнения кода и блокирует все опции SED, указанные в исполняемом файле. Опция может иметь одно из следующих значений:
    SED=system
    SED=request
    SED=exempt
  4. LDR_PRELOAD LDR_PRELOAD64
    Флаг Дескриптор
    Назначение: Включает предварительную загрузку общих библиотек. Опция LDR_PRELOAD предназначена для 32-разрядных процессоров, а LDR_PRELOAD64 - для 64-разрядных. Поиск имён функций начинается с библиотек, перечисленных в данных переменных, и, если он не дал результатов, выполняется обычный поиск. Замещение символов из предварительно загруженных библиотек работает как для компоновки AIX по умолчанию, так и для динамической компоновки. Поведение отложенной обработки имён не меняется.
    Значения: По умолчанию: Нет
    Допустимые значения: имена библиотек
    Прим.: несколько библиотек разделяются двоеточием (:). Библиотеки, входящие в состав архивов, указываются в скобках.
    Просмотр: echo $LDR_PRELOAD

    echo $LDR_PRELOAD64

    Изменение: $LDR_PRELOAD="libx.so:liby.a(shr.o)"

    Поиск имён функций выполняется сначала в libx.so, потом в объекте shr.o архива liby.a, а затем в библиотеках, от которых зависит процесс. Поиск динамически (с помощью dlopen() или load()) загружаемых модулей также будет выполняться сначала среди предварительно загруженных библиотек, указанных в переменной среды.

    Рекомендации: нет
  5. NODISCLAIM
    Флаг Дескриптор
    Назначение: Задает способ обработки вызовов free(). Если параметр PSALLOC равен early, то все вызовы free() обрабатываются с помощью системных вызовов disclaim(). Если параметр NODISCLAIM равен true, этого не происходит.
    Значения: По умолчанию: Нет

    Возможное значение: True

    Просмотр: echo $NODISCLAIM
    Изменение: NODISCLAIM=true export NODISCLAIM

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки. Для того чтобы сделать изменение постоянным, добавьте команду NODISCLAIM=true в файл /etc/environment.

    Рекомендации: Если число системных вызовов disclaim() велико, то рекомендуется включить эту опцию.
    Настройка: Если для переменной PSALLOC установлено значение early, то настройка данной переменной приведет к исключению вызовов disclaim() из функции free().
    Дополнительная информация: Статическое выделение пространства подкачки
  6. NSORDER
    Флаг Дескриптор
    Назначение: Переопределяет порядок поиска при преобразовании имени набора.
    Значения: По умолчанию: bind, nis, local

    Возможные значения: bind, local, nis, bind4, bind6, local4, local6, nis4 и nis6

    Просмотр: echo $NSORDER

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

    Изменение: NSORDER=значение,значение, ... export NSORDER

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки. Для того чтобы сделать это изменение постоянным, добавьте команду NSORDER=значение в файл /etc/environment.

    Рекомендации: нет
    Настройка: Переменная NSORDER имеет больший приоритет, чем файл /etc/netsvc.conf .
    Дополнительная информация: Настройка преобразования имен
  7. PSALLOC
    Флаг Дескриптор
    Назначение: Устанавливает значение переменной среды PSALLOC, задающей стратегию выделения пространства подкачки.
    Значения: По умолчанию: Нет

    Возможное значение: early

    Просмотр: echo $PSALLOC
    Изменение: PSALLOC=early export PSALLOC

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки.

    Рекомендации: нет
    Настройка: Малый объем пространства подкачки может привести к уничтожению процесса. Избежать этого позволяет стратегия предварительного выделения пространства подкачки для процесса. Однако при этом может возрасти объем неиспользуемого пространства подкачки. Вместе с данной переменной среды рекомендуется задать переменную среды NODISCLAIM.
    Дополнительная информация: Выделение и освобождение блоков пространства подкачки и Статическое выделение пространства подкачки
  8. RT_GRQ
    Флаг Дескриптор
    Назначение: Указывает, что нить должна быть помещена в глобальную очередь выполнения, а не в очередь выполнения конкретного CPU.
    Значения: По умолчанию: Нет

    Диапазон: ON, OFF

    Просмотр: echo $RT_GRQ
    Изменение: RT_GRQ={OFF/ONexport RT_GRQ

    Изменение вступает в силу немедленно и действует до следующей загрузки. Для внесения изменения на постоянной основе добавьте команду RT_GRQ={ON|OFF} в файл /etc/environment.

    Рекомендации: нет
    Настройка: Эту опцию можно включить в многопроцессорной системе. Если значение параметра равно ON, то нить будет помещена в глобальную очередь выполнения. В этом случае планировщик будет выбирать из глобальной очереди выполнения нить с минимальным приоритетом. В итоге нити с алгоритмом планирования SCHED_OTHER, для управления которыми применяются прерывания, будут быстрее передаваться на выполнение.
    Дополнительная информация: Очередь выполнения планировщика
  9. RT_MPC
    Флаг Дескриптор
    Назначение: Когда ядро работает в режиме реального времени (см. описание команды bosdebug), то другому процессору можно отправить прерывание MPC, для того чтобы немедленно запустить нить с более высоким приоритетом.
    Значения: По умолчанию: Нет

    Диапазон: ON

    Просмотр: echo $RT_MPC
    Изменение: RT_MPC=ON export RT_MPC

    Изменение вступает в силу немедленно и действует до следующей загрузки. Для того чтобы сделать изменение постоянным, добавьте строку RT_MPC=ON в файл /etc/environment.

    Рекомендации: нет
  10. TZ
    Флаг Дескриптор
    Назначение: Задает часовой пояс.
    Значения: По умолчанию: часовой пояс (из базы данных Олсона)

    Возможные значения: часовой пояс по Олсону или POSIX

    Просмотр: echo $TZ
    Изменение: TZ = значение-TZ

    В оболочке изменения вступают в силу немедленно. Изменения действуют до выхода из оболочки. Для того чтобы сделать изменение постоянным, добавьте команду TZ=значение в файле /etc/environment.

    Рекомендации: нет
    Настройка: Формат POSIX следует использовать в приложениях, в которых более критично быстродействие, а не точность значения часового пояса
  11. VMM_CNTRL
    Флаг Дескриптор
    Назначение: Разрешает настройку администратора виртуальной памяти.
    Значения: По умолчанию: Нет

    Возможные значения: vmm_fork_policy, ESID_ALLOCATOR, SHM_1TB_SHARED, SHM_1TB_UNSHARED

    Просмотр: echo $ VMM_CNTRL
    Изменение: VMM_CNTRL={vmm_fork_policy=… | ESID_ALLOCATOR=… | ...}export VMM_CNTRL

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки. Для того чтобы сделать изменение постоянным, добавьте переменную среды VMM_CNTRL= в файл /etc/environment.

    Рекомендации: нет
    Настройка: С помощью переменной среды VMM_CNTRL можно управлять администратором виртуальной памяти. С помощью переменной среды VMM_CNTRL можно указать несколько опций; в качестве разделителя применяется символ '@'. Пример указания нескольких опций:
    VMM_CNTRL=vmm_fork_policy=COW@SHM_1TB_SHARED=5

    При указании опции vmm_fork_policy=COW каждый раз при порождении процесса vmm использует стратегию дерева порождения с копированием по команде. Это поведение по умолчанию. Для того чтобы запретить vmm применение стратегии записи по команде, укажите опцию vmm_fork_policy=COR. Если указан параметр vmm_fork_policy, то глобальный параметр vmm_fork_policy игнорируется.

    Если опция ESID_ALLOCATOR указана, то она управляет распределителем из присвоений shmat и mmap без направления. Дополнительная информация приведена в разделе Использование псевдонимов для сегмента 1 ТБ.

    Параметры SHM_1TB_SHARED и SHM_1TB_UNSHARED управляют использованием областями общей памяти объемом 1 ТБ. Дополнительная информация приведена в разделе Использование псевдонимов для сегмента 1 ТБ.

  12. AIX_STDBUFSZ
    Флаг Дескриптор
    Назначение: Настраивает размер буфера ввода-вывода для вызовов чтения и записи, создаваемых командами cp,mv,cat, cpio. Также применимо для потоковой буферизации.
    Значения: По умолчанию: Нет.

    Возможные значения: целое число, указывающее размер буфера в байтах, килобайтах или мегабайтах.

    Просмотр: echo $ AIX_STDBUFSZ
    Изменение: AIX_STDBUFSZ=1024; export AIX_STDBUFSZ (Для настройки размера буфера 1024)

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки. Для того чтобы сделать изменение размера буфера постоянным, добавьте переменную среды AIX_STDBUFSZ в файл /etc/environment.

    Рекомендации: нет
    Настройка:
    Укажите значение следующими способами.
    • Укажите целое значение в формате export AIX_STDBUFSZ=1024
    • Укажите шестнадцатеричное значение в формате export AIX_STDBUFSZ=0x400
    • Ограничения: минимальное значение - 64 байт, максимальное значение - 127 МБ.
    • Недопустимые целые числа за пределами этих ограничений заменяются на ближайшее допустимое значение.
    • Если значение не кратно двум, то оно округляется до ближайшего четного числа в меньшую сторону.
    • Если значение параметра AIX_STDBUFSZ недопустимо, то оно игнорируется.
  13. AIX_LDSYM
    Флаг Дескриптор
    Назначение: Информация об исходной строке в файле Lightweight_core не отображается по умолчанию, если размер страницы текста равен 64 КБ. Если размер страницы текста равен 64 КБ, то информацию об исходной строке в файле Lightweight_core можно получить с помощью переменной среды AIX_LDSYM=ON.
    Значения: По умолчанию: Нет.

    Допустимые значения: ON.

    Просмотр: echo $ AIX_LDSYM
    Изменение: export AIX_LDSYM=ON

    В данной оболочке изменения вступают в силу немедленно. Изменение действительно до выхода из оболочки. Для того чтобы сделать изменение системы постоянным, добавьте переменную среды AIX_LDSYM=ON в файл /etc/environment.

    Рекомендации: нет
    Настройка:

    Этот параметр можно использовать для приложений с размером страницы текста 64 КБ с целью получения информации об исходной строке в файле Lighweight_core.