Часть 2. Построение инфраструктуры на ALT Linux 11. Расширенный тюнинг гипервизора.
Дополнительный тюнинг ОС:
Тюнинг параметров ядра:
mcedit /etc/sysctl.d/99-sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.core.rmem_max = 1073741824
net.core.wmem_max = 1073741824
net.ipv4.tcp_rmem = 1048576 16777216 1073741824
net.ipv4.tcp_wmem = 1048576 16777216 1073741824
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_reordering = 20
net.ipv4.tcp_mem = 1048576 16770216 1073741824
kernel.sched_autogroup_enabled = 0
kernel.sched_migration_cost_ns = 50000000
kernel.sched_nr_migrate = 2
kernel.sched_min_granularity_ns = 100000000
kernel.sched_wakeup_granularity_ns = 10000000
vm.swappiness = 5
Тюнинг сетевых интерфейсов:
ethtool -g eno1
ethtool -g eno2
mcedit /root/scripts/startup.sh
#!/bin/bash
/usr/sbin/ethtool -G eno1 rx СвоёЗначение tx СвоёЗначение
/usr/sbin/ethtool -G eno2 rx СвоёЗначение tx СвоёЗначение
chmod +x /root/scripts/startup.sh
crontab -e
@reboot /root/scripts/startup.sh
Тюнинг загрузчика:
mcedit /etc/default/grub
intel_idle.max_cstate=0 mitigations=off
update-grub
reboot
Проверка параметров ЦПУ:
lscpu
NUMA:
Если не отображает ноды NUMA:
mcedit /etc/default/grub
numa=on
mcedit /etc/sysctl.d/99-sysctl.conf
kernel.numa_balancing = 1
Дедупликация ОЗУ:
mcedit /etc/ksmtuned.conf
Настраиваем один из:
KSM_THRES_COEF - Проценты свободного объёма ОЗУ при которых запускаться KSM
KSM_THRES_CONST - Объём ОЗУ (МБ) при которых запускаться KSM
systemctl enable --now ksm.service ksmtuned.service
Результаты работы KSM в файлах /sys/kernel/mm/ksm/
pages_to_scan - количество страниц в очереди на сканирование
sleep_millisecs - время ожидания до следующего сканирования
pages_shared - количество используемых объединенных страниц
pages_sharing - количество дедуплицированных страниц
pages_unshared - количество уникальных страниц, выявленных при сканировании
pages_volatile - количество быстро изменяющихся страниц, непопадающих в дерево
full_scans - количество выполненных полных сканирований
merge_across_nodes - параметр, указывающий могут ли страницы из разных узлов NUMA быть объединены
При наличии NUMA необходимо добавить в /root/scripts/startup.sh
echo 0 > /sys/kernel/mm/ksm/merge_across_nodes
I/O планировщик:
cat /sys/block/sda/queue/scheduler
Добавить в /root/scripts/startup.sh
На хосте: mq-deadline
echo mq-deadline > /sys/block/sda/queue/scheduler
На гостях: none
echo none > /sys/block/vda/queue/scheduler
Редактор по умолчанию:
echo 'export EDITOR=mcedit' > /etc/profile.d/editor.sh
chmod +x /etc/profile.d/editor.sh
Статьи:
https://documentation.suse.com/sles/15-SP6/html/SLES-all/article-virtualization-best-practices.html
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/virtualization_tuning_and_optimization_guide/
https://www.credativ.de/en/blog/credativ-inside/evaluate-ksm-and-ballooning-features-in-proxmox-ve/
альт виртуализация
linux tuning
proxmox tuning
linux proxmox
alt linux