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

При изменении этих параметров Deckhouse автоматически вернет их к значениям, перечисленным ниже.

Параметр Значение, которое устанавливает Deckhouse Описание
/sys/block/*/queue/nr_requests 256 Количество запросов в очереди для блочных устройств.
/sys/block/*/queue/read_ahead_kb 256 Объем дополнительных данных, которые ядро считывает с диска для ускорения чтения в дальнейшем.
/sys/kernel/mm/transparent_hugepage/enabled never Отключает Transparent HugePage.
/sys/kernel/mm/transparent_hugepage/defrag never Отключает дефрагментацию Transparent HugePage.
/sys/kernel/mm/transparent_hugepage/use_zero_page 0 Отключает использование нулевых huge-страниц.
/sys/kernel/mm/transparent_hugepage/khugepaged/defrag 0 Отключает дефрагментацию через khugepaged.
/proc/sys/net/ipv4/conf/*/rp_filter 0 Отключает «фильтрацию обратного пути» (reverse path filtering) для всех интерфейсов.
fs.file-max 1000000 Максимальное количество открытых файлов.
fs.inotify.max_user_instances 5120 Максимальное количество экземпляров inotify.
fs.inotify.max_user_watches 524288 Максимальное количество файлов, отслеживаемых одним экземпляром inotify.
fs.may_detach_mounts 1 Разрешает отмонтировать файловую систему в режиме lazy unmounting.
kernel.numa_balancing 0 Запрещает автоматическую балансировку памяти с архитектурой NUMA.
kernel.panic 10 (0, если включен fencing) Время в секундах, после которого произойдет перезагрузка узла при возникновении фатальной ошибки kernel panic. По умолчанию устанавливается значение 10. Если на узле включен режим fencing, устанавливается значение 0, тем самым предотвращая перезагрузку узла.
kernel.panic_on_oops 1 Разрешает системе активировать kernel panic при возникновении непредвиденной ошибки oops. Параметр необходим для корректной работы kubelet.
kernel.pid_max 2000000 Максимальное количество ID процессов (PID), которое можно назначить в системе.
net.bridge.bridge-nf-call-arptables 1 Разрешает фильтрацию трафика с помощью arptables. Параметр необходим для корректной работы kube-proxy.
net.bridge.bridge-nf-call-ip6tables 1 Разрешает фильтрацию трафика с помощью ip6tables. Параметр необходим для корректной работы kube-proxy.
net.bridge.bridge-nf-call-iptables 1 Разрешает фильтрацию трафика с помощью iptables. Параметр необходим для корректной работы kube-proxy.
net.core.netdev_max_backlog 5000 Максимальное количество пакетов в очереди на обработку.
net.core.rmem_max 16777216 Максимальный размер приемного буфера в байтах.
net.core.somaxconn 1000 Максимальное количество соединений в очереди.
net.core.wmem_max 16777216 Максимальный размер пересылочного буфера в байтах.
net.ipv4.conf.all.forwarding 1 Разрешает перенаправление IPv4-пакетов между сетевыми интерфейсами. Равнозначно параметру net.ipv4.ip_forward.
net.ipv4.ip_local_port_range "32768 61000" Диапазон портов для исходящих TCP- и UDP-соединений.
net.ipv4.neigh.default.gc_thresh1 16384 Нижний порог количества ARP-записей, после которого система начнет удалять старые записи.
net.ipv4.neigh.default.gc_thresh2 28672 Средний порог количества ARP-записей, после которого система запустит очистку памяти.
net.ipv4.neigh.default.gc_thresh3 32768 Предельно допустимое количество ARP-записей.
net.ipv4.tcp_max_syn_backlog 8096 Максимальное количество SYN-соединений в очереди.
net.ipv4.tcp_no_metrics_save 1 Запрещает сохранение TCP-метрик закрытых соединений и их повторное использование для новых соединений.
net.ipv4.tcp_rmem "4096 12582912 16777216" Размеры приемного буфера для входящих TCP-пакетов в байтах: "<минимальный> <по умолчанию> <максимальный>".
net.ipv4.tcp_slow_start_after_idle 0 Запрещает использование окна перезагрузки (congestion window, CWND) и алгоритма медленного старта для TCP-соединений.
net.ipv4.tcp_tw_reuse 1 Разрешает повторное использование исходящих TCP-соединений в состоянии TIME-WAIT.
net.ipv4.tcp_wmem "4096 12582912 16777216" Размеры пересылочного буфера для исходящих TCP-пакетов в байтах: "<минимальный> <по умолчанию> <максимальный>".
net.netfilter.nf_conntrack_max <кол-во ядер * 131072> или 524288 Максимальное количество отслеживаемых соединений в таблице conntrack. Рассчитывается по формуле: «количество выделенных CPU-ядер» * 131072, но не менее 524288.
net.nf_conntrack_max <кол-во ядер * 131072> или 524288 Максимальное количество отслеживаемых соединений в таблице conntrack для старых версий ядра. Рассчитывается по формуле: «количество выделенных CPU-ядер» * 131072, но не менее 524288.
vm.dirty_background_ratio 5 Доля системной памяти в процентах, которую допустимо занимать “грязными” страницами (dirty pages), прежде чем начнется запись на диск в асинхронном режиме.
vm.dirty_expire_centisecs 12000 Продолжительность периода в сотых долях секунды, пока “грязная” страница (dirty page) может оставаться в системной памяти, после чего она должна быть записана на диск.
vm.dirty_ratio 80 Доля системной памяти в процентах, которую допустимо занимать “грязными” страницами (dirty pages), прежде чем все процессы остановятся и будет выполнен сброс данных на диск.
vm.min_free_kbytes 131072 Минимальный объем свободной памяти в килобайтах, который резервируется ядром для выполнения критических операций.
vm.overcommit_memory 1 Разрешает избыточное выделение памяти (memory overcommitment).
vm.swappiness 0 Запрещает использование файла подкачки.