Table of Contents

Твики и настройки

Оперативная память

ksmtuned

Поставляется (?) в ISO-образе PVE, но отсутствует при установке по мануалу

  apt install ksmtuned

Конфиг:

  nano /etc/ksmtuned.conf

переменная:

  KSM_THRES_COEF=20 #дефолт
  KSM_THRES_COEF=80 #активировать при 80% свободной памяти, т.е. 20% занятой

Технология призвана экономить RAM на гипервизоре, неизвестно, насколько эффективно на самом деле - необходимо расширенное тестирование.

  systemctl restart ksmtuned
  systemctl enable ksmtuned

pvestatd ballooning

В скрипте сервиса

  /usr/share/perl5/PVE/Service/pvestatd.pm

строка в коде

  my $goal = int($hostmeminfo->{memtotal} * 0.8 - $hostmeminfo->{memused}); #дефолт
  my $goal = int($hostmeminfo->{memtotal} * 0.95 - $hostmeminfo->{memused}); # 95% занятой памяти

Задаёт, при каком проценте использованной памяти сервис pvestatd начинает заставлять гостей освобождать кешированную оперативную память

  sed -i 's/ 0.8 / 0.95 /g' /usr/share/perl5/PVE/Service/pvestatd.pm && systemctl restart pvestatd

memory overcommit

Выделять гостям оперативную память не всю сразу, а по мере заполнения:

  echo 1 > /proc/sys/vm/overcommit_memory && echo 'vm.overcommit_memory = 1' >> /etc/sysctl.d/tweaks.conf

Требуется остановка и запуск гостей для применения

Сеть

nat forwarding

Для разрешения форвардинга:

  echo 1> /proc/sys/net/ipv4/ip_forward

Для персистентной настройки:

  nano /etc/sysctl.conf
  net.ipv4.ip_forward = 1

iptables

Включение маскарадинга

  iptables -t nat -A POSTROUTING -s $subnet/24 -o $vmbr -j MASQUERADE

Сохранение настроек для персистенса

  #безопасные для выполнения автоматические команды
  iptables-save> /etc/iptables.conf
  grep -q 'pre-up iptables-restore' /etc/network/interfaces || echo 'pre-up iptables-restore </etc/iptables.conf'>> /etc/network/interfaces

Решение проблем с драйвером e1000e

Случаются подвисания сетевого интерфейса, вплоть до прерывания связи, из-за многолетнего бага в драйвере Intel e1000e Диагностика:

  dmesg -T
  [Sun Apr  4 19:48:37 2021] e1000e 0000:00:1f.6 enp0s31f6: Detected Hardware Unit Hang:

Лечение:

  nano /etc/network/interfaces
  #Указать в разделе физического интерфейса, заменить наименование интерфейса
  up /usr/sbin/ethtool -K $interface tso off gso off
  up /usr/sbin/ethtool -K $interface tx off rx off