Некоторые полезные sysctl MIBS


Это приложение представляет собой словарь полезных sysctl MIB, а также некоторые sysctl MIB, не столь полезные, но уже давно обсуждаемые на форумах FreeBSD. Инструменты для управления MIB обсуждаются в главе 5. Когда MIB подробно рассматривается в том или ином месте книги, приводится ссылка на соответствующую главу. Безусловно, в вашей системе намного больше sysctl, однако с представленными здесь параметрами я сталкиваюсь многократно.

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

Для каждого sysctl я представлю типичное значение из моей тестовой системы, чтобы показать, какими они должны быть.

В описании для каждого sysctl указывается, когда sysctl может быть изменен. Один sysctl можно изменить в любое время, другой — только при загрузке. Некоторые доступны только для чтения.

Для каждого sysctl указано, является он переменной, переключателем или настраиваемым параметром (tunable). Переменные имеют широкий диапазон значений. Переключатели имеют только два значения, 1 (описываемый сервис активизирован) и 0 (сервис отключен). Настраиваемые параметры устанавливаются загрузчиком. (Строго говоря, настраиваемый параметр отличается от sysctl, но, определяя значение настраиваемого параметра, вы тем самым определяете значение sysctl.)

kern.osrelease: 7.0-RELEASE
Только для чтения. Содержит номер версии FreeBSD, например 7.2-release, 8.0-current и т. д.

kern.maxvnodes: 100000
Переменная времени исполнения. Максимальное количество виртуальных файловых дескрипторов (vnodes, дескрипторов виртуальной файловой системы), которые могут быть одновременно открыты в системе.

kern.maxproc: 6164
Настраиваемый параметр времени загрузки. Максимальное количество процессов, которые система может запустить одновременно.

kern.maxfiles: 12328
Переменная времени исполнения и настраиваемый параметр времени загрузки. Максимальное количество файлов, которые система может открыть для чтения или записи одновременно.

kern.argmax: 262144
Только для чтения. Максимальное количество символов, которые можно использовать в одной командной строке. При необычных обстоятельствах этот предел может оказаться слишком маленьким. В подобных ситуациях используйте xargs(1).

kern.securelevel: -1
Переменная времени исполнения. Текущий уровень безопасности ядра. Подробности в главе 9.

kern.hostname: bewilderbeast.blackhelicopters.org
Настраиваемый параметр времени исполнения. Имя хоста, устанавливается в /etc/rc.conf.

kern.posix1version: 200112
Только для чтения. Версия POSIX, которой соответствует ядро. Если требуется изменить это значение, не стесняйтесь, предлагайте проекту свой код поддержки других версий POSIX.

kern.ngroups: 16
Только для чтения. Максимальное количество групп, к которым может принадлежать пользователь.

kern.boottime: {sec = 1187744126, usec = 946476} Tue Aug 21 20:55:26 2007
Только для чтения. Время загрузки системы, причем в двух форматах — в секундах от начала эпохи и в привычном для человека.

kern.domainname:
Переменная времени исполнения. Имя домена YP/NIS, а не имя домена TCP/IP. Если вы не используете YP/NIS, значение переменной будет пустым.

kern.osreldate: 700052
Только для чтения. Это версия FreeBSD, без фактической даты. Различные «порты» используют это значение для конфигурирования самих себя.

kern.bootfile: /boot/kernel/kernel
Только для чтения. Файл ядра, с которым загрузилась система. Формально вы можете изменить это значение, но не делайте это. Лучше выполните перезагрузку на новое ядро. Единственный случай, когда этот параметр изменяется в работающей системе, — это установка нового ядра и сохранение старого с именем /boot/kernel.old. Но это особый случай.

kern.maxfilesperproc: 11095
Переменная времени исполнения. Максимальное количество файлов, которые может открыть один процесс.

kern.maxprocperuid: 5547
Переменная времени исполнения. Максимальное количество процессов, которые одновременно может запустить один пользователь.

kern.ipc.somaxconn: 128
Переменная времени исполнения. Максимальное количество новых соединений, которые система может принять одновременно. На сильно нагруженном сервере значение этого параметра можно увеличить до 256 или даже до 512.

kern.ipc.maxpipekva: 16777216
Настраиваемый параметр времени загрузки. Максимальный объем памяти ядра, который может быть использован для программного канала.

kern.ipc.pipekva: 212992
Только для чтения. Текущий объем памяти, используемый каналами.

kern.ipc.shmmax: 33554432
Переменная времени исполнения. Максимальный размер сегмента разделяемой памяти System V. Возможно, вам придется настроить его для программ, использующих большие объемы разделяемой памяти, например для баз данных.

kern.ipc.shmseg: 128
Настраиваемый параметр времени загрузки. Максимальное число сегментов разделяемой памяти System V, которое может открыть один процесс.

kern.ipc.shmall: 8192
Переменная времени исполнения. Максимальное число страниц, доступных для разделяемой памяти System V.

kern.ipc.shm_use_phys: 0
Переключатель времени исполнения, настраиваемый параметр времени загрузки. Позволяет запретить свопинг сегментов разделяемой памяти. Это может повысить производительность при использовании больших объемов разделяемой памяти System V, но это исключит возможность пейджинга разделяемой памяти, что может привести к снижению производительности других программ в вашей системе.

kern.ipc.numopensockets: 70
Только для чтения. Число открытых сокетов всех видов, включая сетевые и локальные сокеты.

kern.ipc.maxsockets: 12328
Переменная времени исполнения, настраиваемый параметр времени загрузки. Общее количество сокетов, доступных в системе. Включает в себя сокеты домена UNIX, а также сетевые сокеты.

kern.logsigexit: 1
Переключатель времени исполнения. При аварийном завершении программа обычно посылает сигнал. Если установлен этот переключатель, имя программы и сигнал завершения будут протоколироваться в /var/log/messages.

kern.init_path: /sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init:/
/stand/sysinstall

Только для чтения. init(8) — это программа, запускающая систему. Если вы повредили систему (например, в результате неудачного обновления), с помощью этого sysctl можно указать серию резервных каталогов, где система может попытаться отыскать копию программы init(8). Этот sysctl также доступен в загрузчике как init_path.

kern.init_shutdown_timeout: 120
Переменная времени исполнения. Число секунд, в течение которых пользовательские процессы должны завершиться самостоятельно во время процедуры останова системы. По истечении этого времени ядро прекращает работу независимо от того, какие процессы остались запущенными.

kern.randompid: 0
Переменная времени исполнения. При установке в 0 каждый следующий запущенный процесс получает идентификатор на единицу больше предыдущего. При установке большего значения значение следующего PID выбирается случайным образом. С ростом значения этого sysctl увеличивается и случайность следующего PID.

kern.openfiles: 246
Только для чтения. Количество файлов, открытых в системе на данный момент.

kern.module_path: /boot/kernel;/boot/modules
Переменная времени исполнения. Список каталогов, в которых kldload(8) проверяет наличие модулей ядра.

kern.maxusers: 384
Настраиваемый параметр времени загрузки. В течение многих лет параметр kern.maxusers позволял системному администратору в BSD и FreeBSD определить, сколько памяти выделить для выполнения некоторых системных задач. Современные системы FreeBSD автоматически выбирают значение kern.maxusers. Любая документация, предлагающая изменить kern.maxusers, почти наверняка устарела.

kern.sync_on_panic: 0
Переключатель времени исполнения. В случае паники FreeBSD (глава 21) размонтирует все диски без синхронизации, что приводит к образованию грязных дисков, о чем говорилось в главе 8. Если установить этот sysctl в значение 1, FreeBSD попытатется синхронизировать диски перед остановкой. Это крайне опасно, поскольку нет никакой возможности узнать состояние запаниковавшей системы. В некоторых случаях попытка синхронизации дисков после паники может повредить данные или файловую систему, в результате запаникует не только система, но и системный администратор.

kern.coredump: 1
Переключатель времени исполнения. По умолчанию при аварийном завершении программы FreeBSD записывает дамп памяти. Если установлено значение 0, дамп памяти не создается. Это весьма полезно на встроенных и бездисковых системах.

kern.nodump_coredump: 0
Переключатель времени исполнения. Позволяет автоматически устанавливать флаг nodump для файлов core. Подробности в главе 4.

kern.timecounter.choice: TSC(-100) i8254(0) dummy(-1OOOOOO)
Только для чтения. Список аппаратных часов, доступных в системе. Большинство современных аппаратных средств имеют четыре общих варианта, в порядке убывания предпочтительности: ACPI, i8254, TCK и dummy. Числа дают относительную точность различных часов.

kern.timecounter.hardware: i8254
Переменная времени исполнения. Изменяя эту переменную, вы можете использовать различные аппаратные часы. Выбранный вариант записывается в параметр sysctl kern.timecounter.choice. По умолчанию FreeBSD использует наиболее предпочтительные часы из имеющихся.

kern.timecounter.smp_tsc: 0
Настраиваемый параметр времени загрузки. Значение 0 предотвращает использование аппаратных часов TSC. Эти часы неправильно работают в большинстве многопроцессорных систем.

kern.sched.name: 4BSD
Только для чтения. Имя планировщика в запущенном ядре.

kern.sched.quantum: 100000
Переменная времени исполнения. Максимальное количество микросекунд для выполнения процесса, когда другие процессы ожидают предоставления времени процессора при использовании планировщика 4BSD. Если вы предполагаете изменить это значение, то почти наверняка делаете что-то не так. Планировщик ULE не использует этот параметр sysctl.

kern.sched.preemption: 1
Только для чтения. Показывает, разрешена ли возможность вытеснения процессов в ядре. Возможность вытеснения позволяет более срочному потоку ядра прерывать работу менее срочного.

kern.log_console_output: 1
Переключатель времени исполнения, настраиваемый параметр времени загрузки. По умолчанию все сообщения, которые FreeBSD выводит на консоль, одновременно передаются демону syslogd. (Эти сообщения не предполагают ввод ответов с консоли, а просто уведомляют о том, что кто-то вошел в систему или вышел из нее.) Установка параметра в значение 0 отключает эту функцию.

kern.smp.disabled: 0
Переключатель времени загрузки. Чтобы отключить поддержку SMP в /boot/loader.conf, установите значение kern.smp.disabled в 1.

kern.smp.cpus: 2
Только для чтения. Количество процессоров, работающих в системе.

kern.filedelay: 30
Переменная времени исполнения. Определяет, как часто система синхронизирует файловые данные между буферным кэшем виртуальных дескрипторов и диском. Увеличение частоты синхронизации увеличивает нагрузку на диск, в то же время уменьшение частоты синхронизации увеличивает риск потери данных. Это значение могут изменять только те системные администраторы, которые хорошо разбираются в буферизации.

kern.dirdelay: 29
Переменная времени исполнения. Определяет, как часто система синхронизирует данные о каталогах, хранящиеся в буферном кэше и на диске. Значение этого параметра должно быть несколько меньше, чем kern.filedelay. Опять же, только очень опытные системные администраторы могут изменять это значение.

kern.metadelay: 28
Переменная времени исполнения. Определяет, как часто система синхронизирует метаданные файловой системы между буферным кэшем и диском. Значение этого параметра должно быть несколько меньше, чем kern.dirdelay. Опять же, этот параметр предназначен только для очень опытных системных администраторов! Эксперименты с синхронизацией — прекрасный способ получить богатый опыт потери данных.

vm.v_free_min: 3258
Переменная времени исполнения. Максимальное количество страниц кэша и свободной памяти, которые должны быть доступны, прежде чем процесс, ожидающий памяти, будет разбужен или запущен.

vm.v_free_target: 13745
Переменная времени исполнения. Минимальное количество страниц свободной памяти и кэша, которое пытается обеспечить или превысить менеджер виртуальной памяти.

vm.v_free_reserved: 713
Переменная времени исполнения. Если количество страниц свободной памяти станет меньше этого значения, менеджер виртуальной памяти начнет выполнять свопинг процессов.

vm.v_inactive_target: 20617
Переменная времени исполнения. FreeBSD старается обеспечить это количество страниц неактивной памяти, делая активные страницы неактивными.

vm.v_cache_min: 13745
vm.v_cache_max: 27490

Переменные времени исполнения. Минимальный и максимальный желаемый размер очереди кэша виртуальной памяти.

vm.swap_enabled: 1
Переключатель времени исполнения. Управляет использованием пространства свопинга. Если параметр имеет значение 0, система не будет выполнять свопинг. Это очень полезно для бездисковых систем.

Комментарии запрещены.