Описание переменных sysctl: различия между версиями
Строка 1: | Строка 1: | ||
− | |||
== Описание переменных sysctl == | == Описание переменных sysctl == | ||
− | Данная статья | + | Данная статья 100 % копипаст с [http://www.openbsd.ru www.openbsd.ru] |
− | Значения некоторых параметров ядра, влияющих на работу его подсистем, можно изменять из контекста суперпользователя во время работы системы. Механизмом, реализующим доступ к переменным ядра в OpenBSD, является [http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&apropos=0&sektion=3&manpath=OpenBSD+Current&arch=i386 sysctl(3)]. Команда непосредственного | + | Значения некоторых параметров ядра, влияющих на работу его подсистем, можно изменять из контекста суперпользователя во время работы системы. Механизмом, реализующим доступ к переменным ядра в OpenBSD, является [http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&apropos=0&sektion=3&manpath=OpenBSD+Current&arch=i386 sysctl(3)]. Команда непосредственного управления — [http://www.openbsd.org/cgi-bin/man.cgi?query=sysctl&apropos=0&sektion=8&manpath=OpenBSD+Current&arch=i386&format=html sysctl(8)]. Она способна как распечатывать текущие значения параметров, так и выставлять их. |
== Работа с sysctl(8) == | == Работа с sysctl(8) == | ||
Строка 21: | Строка 20: | ||
== Лимиты на системные ресурсы == | == Лимиты на системные ресурсы == | ||
− | *kern.maxfiles | + | * kern.maxfiles |
Переменная kern.maxfiles определяет максимальное число дескрипторов файлов. Каждый открытый файл, сокет или буфер использует дескриптор файла. Нагруженному серверу может понадобиться много тысяч дескрипторов файлов, в зависимости от количества программ, одновременно выполняемых на сервере. Количество дескрипторов, используемых в данный момент, содержится в переменной kern.nfiles. | Переменная kern.maxfiles определяет максимальное число дескрипторов файлов. Каждый открытый файл, сокет или буфер использует дескриптор файла. Нагруженному серверу может понадобиться много тысяч дескрипторов файлов, в зависимости от количества программ, одновременно выполняемых на сервере. Количество дескрипторов, используемых в данный момент, содержится в переменной kern.nfiles. | ||
− | *kern.maxvnodes | + | * kern.maxvnodes |
− | Максимальное число vnode, аллоцируемых для дисковых операций. Следует увеличить если kern.numvnodes превышает значение kern.maxvnodes в два раза. Поскольку система использует механизм повторного использования vnode, изменять это значение следует только в том случае, когда система испытывает нехватку ресурса (случается паника ядра | + | Максимальное число vnode, аллоцируемых для дисковых операций. Следует увеличить если kern.numvnodes превышает значение kern.maxvnodes в два раза. Поскольку система использует механизм повторного использования vnode, изменять это значение следует только в том случае, когда система испытывает нехватку ресурса (случается паника ядра и т. п.) |
− | *kern.maxproc | + | * kern.maxproc |
− | Максимально допустимое число одновременно запущенных процессов. Текущее количество запущенных процессов можно узнать через kern.nprocs. | + | Максимально допустимое число одновременно запущенных процессов. Текущее количество запущенных процессов можно узнать через kern.nprocs. |
== Параметры стека TCP/IP и другие сетевые настройки == | == Параметры стека TCP/IP и другие сетевые настройки == | ||
− | *kern.maxclusters | + | * kern.maxclusters |
Ограничивает количество доступных системе mbuf кластеров (буферов памяти, используемых сетевой подсистемой ядра). Посмотреть количество сетевых кластеров можно с помощью команды: | Ограничивает количество доступных системе mbuf кластеров (буферов памяти, используемых сетевой подсистемой ядра). Посмотреть количество сетевых кластеров можно с помощью команды: | ||
Строка 43: | Строка 42: | ||
Если пиковое значение близко к максимальному, его стоит увеличить. | Если пиковое значение близко к максимальному, его стоит увеличить. | ||
− | *net.inet.ip.ifq.maxlen | + | * net.inet.ip.ifq.maxlen |
Параметр задает значение максимальной длины очереди пакетов, принятых из устройства и ожидающих обработки IP стеком. Имеет смысл увеличить значение (до ~1000) если значение net.inet.ip.ifq.drops увеличивается. | Параметр задает значение максимальной длины очереди пакетов, принятых из устройства и ожидающих обработки IP стеком. Имеет смысл увеличить значение (до ~1000) если значение net.inet.ip.ifq.drops увеличивается. | ||
− | *net.inet.ip.forwarding | + | * net.inet.ip.forwarding |
Если необходимо выполнять перенаправление IPv4-пакетов между сетевыми интерфейсами, установите значение, равным 1. Применяйте только в том случае, когда система должна выступать в качестве маршрутизатора. | Если необходимо выполнять перенаправление IPv4-пакетов между сетевыми интерфейсами, установите значение, равным 1. Применяйте только в том случае, когда система должна выступать в качестве маршрутизатора. | ||
− | *net.inet.ip.maxqueue | + | * net.inet.ip.maxqueue |
− | Устанавливает размер очереди, используемой для хранения фрагментированных IP пакетов. Количество отброшенных фрагментов отражается параметром | + | Устанавливает размер очереди, используемой для хранения фрагментированных IP пакетов. Количество отброшенных фрагментов отражается параметром «fragment floods» в выводе команды netstat -s -p ip. |
− | *net.inet.tcp.baddynamic | + | * net.inet.tcp.baddynamic |
Список зарезервированных TCP портов. Порты с этими номерами не будут использованы ядром в качестве портов для исходящих соединений. Это может быть полезно, если используются непривилегированные процессы, прослушивающие определенные порты с номерами выше 1024. Для того, чтобы добавить номер порта в список, необходимо выполнить команду: | Список зарезервированных TCP портов. Порты с этими номерами не будут использованы ядром в качестве портов для исходящих соединений. Это может быть полезно, если используются непривилегированные процессы, прослушивающие определенные порты с номерами выше 1024. Для того, чтобы добавить номер порта в список, необходимо выполнить команду: | ||
Строка 69: | Строка 68: | ||
Посмотреть информацию о используемых средствах System V IPC можно с помощью программы ipcs(1). | Посмотреть информацию о используемых средствах System V IPC можно с помощью программы ipcs(1). | ||
− | *kern.shminfo | + | * kern.shminfo |
Иерархия переменных, относящихся к разделяемой памяти. | Иерархия переменных, относящихся к разделяемой памяти. | ||
Строка 86: | Строка 85: | ||
*: kern.shminfo.shmall | *: kern.shminfo.shmall | ||
− | Общее количество разделяемой памяти, которое может быть использовано (в страницах оперативной памяти). | + | Общее количество разделяемой памяти, которое может быть использовано (в страницах оперативной памяти). |
Настройки разделяемой памяти стоит изменять только в случае работы с прокси сервером Squid, который использует по одной области разделяемой памяти для каждой cachedir. Значение ''kern.shminfo.shmmni'' должно быть равно или больше значения cachedir, ''kern.shminfo.shmmax'' больше либо равно размеру cachedir и ''kern.shminfo.shmall'' должно быть не меньше ''kern.shminfo.shmmni'', умноженной на ''kern.shminfo.shmmax''. | Настройки разделяемой памяти стоит изменять только в случае работы с прокси сервером Squid, который использует по одной области разделяемой памяти для каждой cachedir. Значение ''kern.shminfo.shmmni'' должно быть равно или больше значения cachedir, ''kern.shminfo.shmmax'' больше либо равно размеру cachedir и ''kern.shminfo.shmall'' должно быть не меньше ''kern.shminfo.shmmni'', умноженной на ''kern.shminfo.shmmax''. | ||
− | *kern.seminfo | + | * kern.seminfo |
Иерархия переменных, относящихся к семафорам. | Иерархия переменных, относящихся к семафорам. |
Версия 07:02, 26 мая 2013
Описание переменных sysctl
Данная статья 100 % копипаст с www.openbsd.ru
Значения некоторых параметров ядра, влияющих на работу его подсистем, можно изменять из контекста суперпользователя во время работы системы. Механизмом, реализующим доступ к переменным ядра в OpenBSD, является sysctl(3). Команда непосредственного управления — sysctl(8). Она способна как распечатывать текущие значения параметров, так и выставлять их.
Работа с sysctl(8)
Вывод на экран всех доступных переменных с их текущими значениями:
# sysctl -a
Чтобы узнать значение конкретной переменной:
# sysctl переменная
Для изменения значения переменной:
# sysctl переменная=значение
Типы значений переменных sysctl могут быть числовыми и строковыми. Изменять значения требуемых переменных следует в файле /etc/sysctl.conf, чтение которого происходит при загрузке системы.
Лимиты на системные ресурсы
- kern.maxfiles
Переменная kern.maxfiles определяет максимальное число дескрипторов файлов. Каждый открытый файл, сокет или буфер использует дескриптор файла. Нагруженному серверу может понадобиться много тысяч дескрипторов файлов, в зависимости от количества программ, одновременно выполняемых на сервере. Количество дескрипторов, используемых в данный момент, содержится в переменной kern.nfiles.
- kern.maxvnodes
Максимальное число vnode, аллоцируемых для дисковых операций. Следует увеличить если kern.numvnodes превышает значение kern.maxvnodes в два раза. Поскольку система использует механизм повторного использования vnode, изменять это значение следует только в том случае, когда система испытывает нехватку ресурса (случается паника ядра и т. п.)
- kern.maxproc
Максимально допустимое число одновременно запущенных процессов. Текущее количество запущенных процессов можно узнать через kern.nprocs.
Параметры стека TCP/IP и другие сетевые настройки
- kern.maxclusters
Ограничивает количество доступных системе mbuf кластеров (буферов памяти, используемых сетевой подсистемой ядра). Посмотреть количество сетевых кластеров можно с помощью команды:
# netstat -m
Если пиковое значение близко к максимальному, его стоит увеличить.
- net.inet.ip.ifq.maxlen
Параметр задает значение максимальной длины очереди пакетов, принятых из устройства и ожидающих обработки IP стеком. Имеет смысл увеличить значение (до ~1000) если значение net.inet.ip.ifq.drops увеличивается.
- net.inet.ip.forwarding
Если необходимо выполнять перенаправление IPv4-пакетов между сетевыми интерфейсами, установите значение, равным 1. Применяйте только в том случае, когда система должна выступать в качестве маршрутизатора.
- net.inet.ip.maxqueue
Устанавливает размер очереди, используемой для хранения фрагментированных IP пакетов. Количество отброшенных фрагментов отражается параметром «fragment floods» в выводе команды netstat -s -p ip.
- net.inet.tcp.baddynamic
Список зарезервированных TCP портов. Порты с этими номерами не будут использованы ядром в качестве портов для исходящих соединений. Это может быть полезно, если используются непривилегированные процессы, прослушивающие определенные порты с номерами выше 1024. Для того, чтобы добавить номер порта в список, необходимо выполнить команду:
# sysctl net.inet.tcp.baddynamic=+52000
А чтобы удалить:
# sysctl net.inet.tcp.baddynamic=-52000
Лимиты средств межпроцессного взаимодействия в стиле UNIX System V
Посмотреть информацию о используемых средствах System V IPC можно с помощью программы ipcs(1).
- kern.shminfo
Иерархия переменных, относящихся к разделяемой памяти.
- kern.shminfo.shmmax
Наибольший допустимый размер сегмента разделяемой памяти (в байтах).
- kern.shminfo.shmmni
Максимальное количество сегментов разделяемой памяти для системы.
- kern.shminfo.shmseg
Максимальное количество сегментов разделяемой памяти на процесс.
- kern.shminfo.shmall
Общее количество разделяемой памяти, которое может быть использовано (в страницах оперативной памяти).
Настройки разделяемой памяти стоит изменять только в случае работы с прокси сервером Squid, который использует по одной области разделяемой памяти для каждой cachedir. Значение kern.shminfo.shmmni должно быть равно или больше значения cachedir, kern.shminfo.shmmax больше либо равно размеру cachedir и kern.shminfo.shmall должно быть не меньше kern.shminfo.shmmni, умноженной на kern.shminfo.shmmax.
- kern.seminfo
Иерархия переменных, относящихся к семафорам.
- kern.seminfo.semmni
Число идентификаторов семафоров в системе. Определяет максимальное число семафоров.
- kern.seminfo.semmns
Число семафоров в системе. Каждый серверный процесс требует один семафор.
- kern.seminfo.semmnu
Число undo-структур, которые используются для восстановления структур данных семафоров при фатальном завершении процесса.
Выставляется в максимальное число одновременных процессов в статусе runnable в системе.
- kern.seminfo.semmsl
Максимальное число семафоров, разрешенное системой в пределах одного набора семафоров.