Разница в распределенной памяти в гостях xen с Linux 2.6.18 и 2.6.32
Может кто-нибудь объяснить мне, почему есть разница в доступной памяти на гостях с такой же конфигурацией:
Гипервизор:xen 4.2 64 бит
VM1: Centos 5.7 с 2.6.18-274.el5xen,
Назначенная память от xen точно такая же, как и у гостевой памяти 524288k (512м)
free -k
total used free shared buffers cached
Mem: 524288 445004 79284 0 18040 182652
-/+ buffers/cache: 244312 279976
Swap: 524280 0 524280
несмотря на показ
" Memory: 500984k/524288k available (2533k kernel code, 23212k reserved, 1746k data, 196k init) "
dmesg: http://pastebin.com/FmVRniLJ
Вопрос 1:
Вот почему free показал точную память, где dmesg clear показал 2.5mb для кода ядра и 23mb как зарезервированный.
VM2: redhat6.0 с 2.6.32
free -k
total used free shared buffers cached
502224 122064 380160 0 7636 32648
Для тех же ресурсов RHEl6.0 с pvopskernel показывает 502224k.
Вопрос 2:
Что может быть причиной такого поведения, может ли это быть как-то связано с ядром pvops (linux-kernel с поддержкой xen)
4 ответа
Q1: Вероятно, используется в аварийном ядре (?)
Q2: я не видел такого поведения на SLU11 SP2 DomU (также ядро Linux 3.0, без pvops).
Что я вижу в dmesg - это RAM-диск в Ubuntu - этот диск, вероятно, не будет освобожден позже?
Не уверен здесь, так как ваш dmesg
output просто показывает XEN-часть загрузочного процесса, а не следующий "нормальный" загрузочный процесс ОС.
Вопрос 1:
Почему free показал точную память, где dmesg clear показал 2.5mb для кода ядра и 23mb как зарезервированный.
Я не уверен, что ваша интерпретация верна. free
показывает вам всего 524288k и так dmesg
, dmesg
показывает, что во время загрузки ядро и связанные с ним резервирования занимают примерно 25 м, оставляя доступным 500984 тыс. Позже, когда вы бежите free
Есть и другие программы, поэтому доступно меньше памяти. Но оба сообщают об одном и том же общем количестве в VM1.
Вопрос 2:
Причиной такого поведения может быть то, что это как-то связано с ядром pvops (linux-kernel с поддержкой xen) или из-за каких-либо изменений в управлении памятью в Linux 3.0+.
Я думаю, вы спрашиваете, почему эти две виртуальные машины отличаются? Я собираюсь пойти с ответом: "недостаточно информации". Существует множество причин, по которым две виртуальные машины могут сообщать различную информацию, но ни одна из них не обязательно связана с тем фактом, что они являются DomU в Xen (я подозреваю, что у вас будут похожие различия на голом металле, на VMware и т. Д.):
- У них разное количество процессоров
- Они используют разные загрузочные строки (VM1 имеет
ro root=/dev/VolGroup00/LogVol00 console=xvc0 graphical utf8
и VM2 имеетroot=UUID=ef8a64ee-140d-46b5-8061-231d81e1c7a0 ro console=hvc0 quiet splash $vt_handoff
- Ядра могут быть скомпилированы с совершенно разными значениями по умолчанию (и, скорее всего, так и есть, поскольку VM1 основана на RedHat, а VM2 основана на Debian)
Я не знаю, если вы это сделали, но если вы не пытались проверить параметры vm mem и проверить это резервирование памяти для вашего vm с помощью "xl list"
http://xenbits.xen.org/docs/4.2-testing/man/xl.cfg.5.html
Спасибо
Да , как я уже догадался, это ограничение гостей xen с linux. Похоже, что используемое вами ядро может обнаружить только 32 ГБ памяти для dom0.