Рекомендуемые параметры ядра
Изменения нужно вносить в файл «/etc/sysctl.conf«:
kernel.shmmax = 2473822720 kernel.shmall = 4097152000 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_default = 8388608 net.core.wmem_max = 16777216 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_keepalive_time = 10 net.ipv4.tcp_fin_timeout = 5
Затем выполнить команду для применения изменений:
sysctl -p
Дополнительные настройки ОС при очень большом количестве одновременных подключений
В файле /etc/security/limits.conf
необходимо прописать:
* soft nofile 16384 * hard nofile 16384
Рекомендуемый тип файловой системы и опции монтирования для хранилища HDD
Для обеспечения максимального быстродействия хранилища рекомендуется использовать XFS со следующими опциями:
mkfs.xfs -f -d su=512k -d sw=<sw> -l su=256k /dev/<device>
где:
sw
— количество дисков в RAID-массиве.device
— название устройства, например sdc1.
Опции монтирования в /etc/fstab
:
/dev/<device> <mountpoint> xfs async,noatime,nodiratime,attr2,nobarrier,logbufs=8,logbsize=256k,osyncisdsync 0 0
где:
device
— название устройства, например sdc1.mountpoint
— точка монтирования, например /opt/storage.
Для SSD хранилища необходимо также добавить опции discard,relatime.
Количество аппаратных очередей на сетевой карте
При большом объеме UDP-трафика необходимо использовать сетевые карты Enterprise-уровня, у которых есть аппаратные очереди пакетов. Однако даже в этом случае по умолчанию эти очереди могут быть не задействованы:
# ethtool -l enp3s0f1: Channel parameters for enp3s0f1: Pre-set maximums: RX: 0 TX: 0 Other: 1 Combined: 8 Current hardware settings: RX: 0 TX: 0 Other: 1 Combined: 1
В этом примере — всего доступно 8, но используется 1. Чтобы это поменять:
# ethtool -L enp4s0f1 combined 8 # ethtool -l enp4s0f1 Channel parameters for enp3s0f1: Pre-set maximums: RX: 0 TX: 0 Other: 1 Combined: 8 Current hardware settings: RX: 0 TX: 0 Other: 1 Combined: 8
Изменение режима работы процессоров
Для максимальной производительности CPU необходимо перевести все ядра в режим performance: https://ixnfo.com/izmenenie-cpu-scaling-governor-v-linux.html.
Увеличение txqueuelen
Значение по умолчанию 1000 может не хватать для очереди пакетов, стоит поставить 10000:
ifconfig eno1 ifconfig eno1 txqueuelen 10000