Все параметры настройки TCP/IP расположены в каталоге /proc/sys/net/. Например, вот некоторые из наиболее важных параметров настройки с указанием их значений:
1. /proc/sys/net/core/rmem_max — Максимальный буфер приема данных TCP
2. /proc/sys/net/core/wmem_max — Максимальный буфер отправки данных TCP.
3. /proc/sys/net/ipv4/tcp_timestamps — метка времени добавляется к заголовку TCP на 12 байт (см. RFC 1323).
4. /proc/sys/net/ipv4/tcp_sack — выборочный ответ
5. /proc/sys/net/ipv4/tcp_window_scaling — поддерживает большие окна TCP. Если максимальное окно TCP превышает 65535 (64 КБ), это значение должно быть установлено равным 1.
6. rmem_default — размер окна приема по умолчанию.
7. rmem_max — максимальный размер окна приема
8. wmem_default — размер окна отправки по умолчанию.
9. wmem_max — максимальный размер окна отправки
Все содержимое каталога /proc является временным, поэтому любые изменения будут потеряны после перезапуска системы.
Рекомендуется автоматически изменять параметры TCP/IP при запуске системы:
Добавьте следующий код в файл /etc/rc.local и сохраните файл. Следующие параметры TCP/IP будут автоматически изменены при перезагрузке системы:
эхо 256960 > /proc/sys/net/core/rmem_default
эхо 256960 > /proc/sys/net/core/rmem_max
эхо 256960 > /proc/sys/net/core/wmem_default
эхо 256960 > /proc/sys/net/core/wmem_max
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
эхо 1 > /proc/sys/net/ipv4/tcp_sack
эхо 1 > /proc/sys/net/ipv4/tcp_window_scaling
Параметры TCP/IP говорят сами за себя, размер окна TCP установлен на 256960, метки времени TCP отключены (отмените добавление 12 байтов в каждый заголовок пакета), поддерживаются большие окна TCP и выборочные ответы TCP.
Вышеуказанные значения устанавливаются на основе подключения к Интернету и максимальной пропускной способности/коэффициента задержки.
Примечание. Значения в приведенном выше примере можно использовать на практике, но они включают только часть параметров.
Другой метод: используйте /etc/sysctl.conf для настройки параметров на значения, которые вы установили при запуске системы:
net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack =1
net.ipv4.tcp_window_scaling = 1
-------------------------------------------------- ---------------
/proc/sys/fs/супер-макс
Этот файл определяет максимальное количество обработчиков суперблока. Любая смонтированная файловая система требует использования суперблока, поэтому, если смонтировано большое количество файловых систем, обработчик суперблока может быть исчерпан.
Настройка по умолчанию: 256
/proc/sys/fs/супер-номер
Этот файл показывает текущее количество выделенных суперблоков. Этот файл доступен только для чтения и используется только для отображения информации.
/proc/sys/ядро
/proc/sys/ядро/аккт
Этот файл имеет три настраиваемых значения, которые контролируют начало учета процессов на основе объема свободного места (выраженного в процентах) в файловой системе, содержащей журнал:
Если свободное пространство упадет ниже этого процентного значения, остановите учет процесса.
Если свободное место превышает это процентное значение, запустите процесс учета.
Как часто (в секундах) проверяются два вышеуказанных значения
Чтобы изменить значение в этом файле, должна быть возвращена последовательность чисел, разделенная пробелами.
Настройка по умолчанию: 2 4 30
Эти значения приводят к остановке учета, если в файловой системе, содержащей журнал, меньше 2% свободного места, и возобновлению учета, если свободного места 4% и более. Проверки производятся каждые 30 секунд.
/proc/sys/kernel/ctrl-alt-del
Этот файл имеет двоичное значение, которое управляет реакцией системы на получение комбинации клавиш ctrl+alt+delete. Эти два значения представляют:
Значение ноль (0) означает, что сочетание клавиш Ctrl+Alt+Delete захватывается и отправляется в программу инициализации. Это позволит системе корректно завершить работу и перезапуститься, как если бы вы ввели команду выключения.
Значение единица (1) означает, что сочетание клавиш ctrl+alt+delete не фиксируется и будет выполнено нечистое завершение работы, как если бы питание было отключено напрямую.
Настройка по умолчанию: 0
/proc/sys/ядро/имя_домена
Этот файл позволяет вам настроить имя сетевого домена. У него нет значения по умолчанию. Доменное имя может быть установлено, а может и не быть.
/proc/sys/ядро/имя хоста
Этот файл позволяет вам настраивать имена сетевых хостов. У него нет значения по умолчанию, имя хоста может быть установлено, а может и не быть установлено.
/proc/ss/kernel/msgmax
Этот файл определяет максимальную длину сообщений, отправляемых от одного процесса к другому. Передача сообщений между процессами происходит в памяти ядра и не выгружается на диск, поэтому если вы увеличите это значение, вы увеличите объем памяти, используемой операционной системой.
Настройка по умолчанию: 8192.
/proc/sys/ядро/msgmnb
Этот файл определяет максимальное количество байтов в очереди сообщений.
Настройка по умолчанию: 16384.
/proc/sys/ядро/msgmni
Этот файл определяет максимальное количество идентификаторов очереди сообщений.
Настройка по умолчанию: 16
/proc/sys/ядро/паника
Этот файл указывает, как долго (в секундах) ядро ожидает перезагрузки в случае возникновения «паники ядра». Установка нуля (0) секунд отключит перезагрузку в случае паники ядра.
Настройка по умолчанию: 0
/proc/sys/ядро/printk
Этот файл имеет четыре числовых значения, которые определяют, куда отправляется сообщение журнала в зависимости от его важности. Для получения дополнительной информации о различных уровнях журнала прочитайте справочную страницу syslog(2). Четыре значения этого файла:
Уровень журнала консоли: сообщения с приоритетом выше этого значения будут выводиться на консоль.
Уровень регистрации сообщений по умолчанию: сообщения без приоритета будут печататься с этим приоритетом.
Минимальный уровень журнала консоли: минимальное значение, которое можно установить для уровня журнала консоли (наивысший приоритет).
Уровень журнала консоли по умолчанию: значение по умолчанию для уровня журнала консоли.
Настройка по умолчанию: 6 4 1 7
/proc/sys/ядро/shmall
Этот файл представляет собой общий объем общей памяти (в байтах), доступной в системе в любой момент времени.
Настройка по умолчанию: 2097152.
/proc/sys/ядро/shmax
Этот файл определяет максимальный размер (в байтах) сегментов общей памяти, разрешенный ядром.
Настройка по умолчанию: 33554432.
/proc/sys/kernel/shmmni
Этот файл представляет максимальное количество сегментов общей памяти, используемых всей системой.
Настройка по умолчанию: 4096.
/proc/sys/ядро/sysrq
Если значение, указанное в этом файле, не равно нулю, активируется ключ системного запроса.
Настройка по умолчанию: 0
/proc/sys/ядро/threads-max
Этот файл определяет максимальное количество потоков, которые может использовать ядро.
Настройка по умолчанию: 2048.
/proc/sys/net
/proc/sys/net/core/message_burst
Время (в 1/10 секунды), необходимое для записи нового предупреждающего сообщения, другие предупреждающие сообщения, полученные за это время, будут аннулированы. Это используется для предотвращения атак типа «отказ в обслуживании», используемых кем-то, кто пытается «наводнить» вашу систему сообщениями.
Настройка по умолчанию: 50 (5 секунд)
/proc/sys/net/core/message_cost
В этом файле хранится значение стоимости, связанное с каждым предупреждающим сообщением. Чем больше значение, тем больше вероятность того, что предупреждающее сообщение будет проигнорировано.
Настройка по умолчанию: 5
/proc/sys/net/core/netdev_max_backlog
Этот файл определяет максимальное количество пакетов, которые разрешено ставить в очередь, когда интерфейс получает пакеты быстрее, чем ядро может их обработать.
Настройка по умолчанию: 300
/proc/sys/net/core/optmem_max
Этот файл определяет максимальный размер буфера, разрешенный для каждого сокета.
/proc/sys/net/core/rmem_default
Этот файл определяет значение по умолчанию для размера буфера сокета приема в байтах.
/proc/sys/net/core/rmem_max
Этот файл определяет максимальный размер буфера сокета приема в байтах.
/proc/sys/net/core/wmem_default
Этот файл определяет значение по умолчанию для размера буфера сокета отправки в байтах.
/proc/sys/net/core/wmem_max
Этот файл определяет максимальный размер буфера сокета отправки в байтах.
/proc/sys/net/ipv4
Все параметры IPv4 и IPv6 описаны в документации исходного кода ядра. См. файл /usr/src/linux/Documentation/networking/ip-sysctl.txt.
/proc/sys/net/ipv6
То же, что и IPv4.
/proc/sys/VM
/proc/sys/VM/buffermem
Этот файл контролирует объем общей системной памяти, используемой для буферной памяти (выраженный в процентах). Он имеет три значения, которые устанавливаются путем записи в файл последовательности чисел, разделенных пробелами.
Минимальный процент памяти, используемый для буферов
Если возникает ситуация, когда системной памяти осталось мало и системная память уменьшается, система попытается сохранить объем буферной памяти.
Максимальный процент памяти, используемый для буферов
Настройка по умолчанию: 2 10 60
/proc/sys/VM/freepages
Этот файл управляет тем, как система реагирует на различные уровни доступной памяти. Он имеет три значения, которые устанавливаются путем записи в файл последовательности чисел, разделенных пробелами.
Ядру разрешено выделять некоторую память только в том случае, если количество доступных страниц в системе достигает минимального предела.
Если количество свободных страниц в системе упадет ниже этого предела, ядро начнет более агрессивную замену, чтобы освободить память и сохранить производительность системы.
Ядро попытается сохранить этот объем системной памяти доступным. Значения ниже этого активируют замену ядра.
Настройка по умолчанию: 512 768 1024.
/proc/sys/VM/kswapd
Этот файл управляет тем, как ядру разрешено обменивать память. Он имеет три значения, которые устанавливаются путем записи в файл последовательности чисел, разделенных пробелами:
Максимальное количество страниц, которые ядро пытается освободить одновременно. Если вы хотите увеличить пропускную способность во время подкачки памяти, вам необходимо увеличить это значение.
Минимальное количество попыток ядра освободить страницу за один своп.
Количество страниц, записанных ядром за один своп. Это оказывает наибольшее влияние на производительность системы. Чем больше это значение, тем больше данных обменивается и тем меньше времени тратится на поиск на диске. Однако слишком большое значение может отрицательно повлиять на производительность системы из-за «переполнения» очереди запросов.
Настройка по умолчанию: 512 32 8.
/proc/sys/VM/pagecache
Этот файл выполняет ту же работу, что и /proc/sys/vm/buffermem, но представляет собой карту памяти файла и общий кеш.
Сделать настройки ядра постоянными
Здесь представлена удобная утилита для изменения любого параметра ядра в каталоге /proc/sys. Он позволяет изменять работающее ядро (аналогично методам эха и перенаправления, использованным выше), но также имеет файл конфигурации, который выполняется при загрузке системы. Это позволяет вам вносить изменения в работающее ядро и добавлять эти изменения в файл конфигурации, чтобы они сохранялись при перезагрузке системы.
Эта утилита называется sysctl и полностью описана на странице руководства sysctl(8). Файл конфигурации sysctl — /etc/sysctl.conf, который можно редактировать и записывать в sysctl.conf(8). sysctl рассматривает файлы в каталоге /proc/sys как отдельные переменные, которые можно изменить. Таким образом, если взять в качестве примера файл /proc/sys/fs/file-max в /proc/sys, он представляет максимальное количество дескрипторов файлов, разрешенных в системе. Этот файл представлен как fs.file-max.
Этот пример раскрывает некоторые замечательные особенности нотации sysctl. Поскольку sysctl может изменять переменные только в каталоге /proc/sys, а люди всегда думают, что переменные находятся в этом каталоге, эта часть имени переменной (/proc/sys) опускается. Еще одно изменение, на которое следует обратить внимание, — это замена разделителя каталогов (косая черта /) на английскую точку (точку).
Существует два простых правила преобразования файлов /proc/sys в переменные sysctl:
Удалите переднюю часть /proc/sys.
Замените косую черту в именах файлов на точки.
Эти два правила позволяют конвертировать любое имя файла в /proc/sys в любое имя переменной в sysctl. Общее преобразование файла в переменную:
/proc/sys/dir/file --> файл_каталога
каталог1.каталог2.файл --> /proc/sys/каталог1/каталог2/файл
Вы можете использовать команду sysctl -a для просмотра всех переменных, которые можно изменить, и их текущих настроек.
Переменные также можно изменить с помощью sysctl, который делает то же самое, что и метод echo, использованный выше. Его представление:
sysctl -w каталог.файл="значение"
Снова используя file-max в качестве примера, используйте один из следующих двух методов, чтобы изменить значение на 16384.