День добрый, господа.Есть такая связка Debian+Xen:
# dmidecode | grep 'Version.*CPU'
Intel(R) Xeon(R) CPU E3-1220 v3# uname -srvmo
Linux 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) x86_64 GNU/Linux# xl info | grep 'rel\|ver\|caps\|mem'
release : 4.9.0-3-amd64
version : #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06)
hw_caps : b7ebfbff:77faf3ff:2c100800:00000021:00000001:00002fbb:00000000:00000100
virt_caps : hvm hvm_directio
total_memory : 8152
free_memory : 7526
sharing_freed_memory : 0
sharing_used_memory : 0
xen_version : 4.8.1
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64На этом хосте живут несколько разных DomU - PV (Debian) и HVM (Win*). До вчерашнего дня жить было хорошо и жизнь была хороша.
После ребута хоста HVM-гости стали жутко тормозить. Одновременно хост начинает свопить. По показаниям top 'Swap: used' растет почти на столько, сколько потребил DomU. При этом free_memory в 'xl info' также уменьшается. Такое впечатление, что Xen выделяет всю память DomU из доступной для Dom0, т.е. фактически из свопа. При отключенном свопе виртуалка просто не стартует - Out of memory.
С PV-гостями проблем нет.
На другом железе (AMD Phenom II) поведение такое же.
Есть подозрение, что что-то сломали в последнем ядре, т.к. больше ничего не изменилось.Кто-нибудь сталкивался? Куда смотреть?
Провел эксперимент - дал Xen'у много памяти (dom0_mem=XXX). Нормально работает любое кол-во HVM до исчерпания XXX или xen.free_memory. Т.е. учет памяти ведется в xen.free_memory, а реально используется память из Dom0.
Откат на пол-шага назад (на ядро 4.9.30-2+deb9u2) положительного результата не дал.
> Провел эксперимент - дал Xen'у много памяти (dom0_mem=XXX). Нормально работает любое кол-во
> HVM до исчерпания XXX или xen.free_memory. Т.е. учет памяти ведется в
> xen.free_memory, а реально используется память из Dom0.
> Откат на пол-шага назад (на ядро 4.9.30-2+deb9u2) положительного результата не дал.вы уверены что dom0_mem= у вас правильно настраивается и передается ядру? посмотрите ваш grub.conf и xm list в студию
> вы уверены что dom0_mem= у вас правильно настраивается и передается ядру? посмотрите
> ваш grub.conf и xm list в студиюУверен.
# xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 4096 1 r----- 4384.3
FS-0 4 480 2 -b---- 192.7
Rat 7 256 2 -b---- 242.6
Win7 10 1023 2 -b---- 108.1
Scan 11 1023 2 -b---- 69.5Win7 и Scan - виндовые машинки. За ночь обе умерли, State = '------', на внешние раздражители не реагируют.
На хосте всего 8Г памяти, сейчас 4Г отдано в Dom0 и 4Г в Xen. Для Dom0 единственный vcpu прибит гвоздями (vcpu-pin).#xl info
...
total_memory : 8152
free_memory : 1137
...# ps axu
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...
root 5735 3.4 32.1 1809268 1290064 ? SLsl 08:36 0:28 /usr/bin/qemu-system-i386 -xen-domid 10 ...
root 5983 4.3 31.9 1801452 1281160 ? SLsl 08:36 0:35 /usr/bin/qemu-system-i386 -xen-domid 11 ...Видно, что DomU 10 и 11 умудрились отожрать память и там и там. Смущает, что они обе i386, хотя одна из них - Вин7 64 бит. Может в этом беда?
> # ps axu
> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
> ...
> root 5735 3.4 32.1 1809268 1290064 ? SLsl 08:36 0:28 /usr/bin/qemu-system-i386 -xen-domid 10 ...
> Видно, что DomU 10 и 11 умудрились отожрать память и там и там.И продолжают жрать!
root 5735 2.2 56.0 4059844 2249096 ? SLsl 08:36 1:53 /usr/bin/qemu-system-i386 -xen-domid 10 ...
/* Поговорю сам с собой. */
Виртуалки поедают память со скоростью чуть больше 1кБ/сек, до полного исчерпания свопа.
На графике у Zabbix это хорошо видно. Затем за дело берется oom_killer. Добивать и перезапускать виртуалки приходится уже руками.В "мировом разуме" находил несколько похожих проблем, но пока все мимо.
> Провел эксперимент - дал Xen'у много памяти (dom0_mem=XXX). Нормально работает любое кол-во
> HVM до исчерпания XXX или xen.free_memory. Т.е. учет памяти ведется в
> xen.free_memory, а реально используется память из Dom0.
> Откат на пол-шага назад (на ядро 4.9.30-2+deb9u2) положительного результата не дал.dom0_mem=1024M,max:1024M
> dom0_mem=1024M,max:1024MМаловато будет. См. мой ответ eRIC'у.
Лекарства не найдено. Будем переползать на XenServer.