Назад | Перейти на главную страницу

Разница в выделенной памяти в гостевых системах 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,5 МБ для кода ядра и 23 МБ как зарезервированные.

ВМ2: 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 с поддержкой xen)

Вопрос 1:

Почему free показал точную память, где dmesg clear показал 2,5 МБ для кода ядра и 23 МБ как зарезервированные.

Я не уверен, что ваша интерпретация верна. free показывает вам 524288 тыс. dmesg. dmesg показывает, что во время загрузки ядро ​​и связанные с ним резервирования используют примерно 25 мб, в результате чего остается 500984 кб. Позже, когда ты бежишь free, работают другие программы, поэтому доступной памяти меньше. Но оба сообщают одинаковое количество в VM1.

Вопрос 2:

Что может быть причиной такого поведения, может это иметь какое-то отношение к ядру pvops (ядро Linux с поддержкой xen) или это из-за каких-либо изменений в управлении памятью Linux 3.0+.

я считать ты спрашиваешь Почему эти две виртуальные машины разные? Я собираюсь ответить: «недостаточно информации». Есть много причин, по которым две виртуальные машины могут сообщать разную информацию, ни одна из них не обязательно связана с тем, что они являются DomU в Xen (я подозреваю, что у вас будут аналогичные различия на голом железе или VMware и т.

  1. У них разное количество процессоров
  2. Они используют разные загрузочные строки (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
  3. Ядра могут быть скомпилированы с совершенно разными значениями по умолчанию (и они, вероятно, таковы, поскольку VM1 основана на RedHat, а VM2 основана на Debian)

Q1: Возможно, используется аварийным ядром (?)

Q2: Я не видел такого поведения на SLES11 SP2 DomU (также ядро ​​Linux 3.0, без pvops).

То, что я вижу из dmesg, - это RAM-диск в Ubuntu - вероятно, этот диск не был освобожден позже?

Не уверен здесь, так как ваш dmesg вывод просто показывает XEN-часть процесса загрузки, а не следующий «нормальный» процесс загрузки ОС.

Не знаю, делали ли вы, но если вы не пытались проверить параметры вашей виртуальной машины, и проверить это резервирование памяти для вашей виртуальной машины с помощью «xl list»

http://xenbits.xen.org/docs/4.2-testing/man/xl.cfg.5.html

Спасибо

да, как я догадался, это ограничение гостей xen с linux. Похоже, что используемое вами ядро ​​может определять только 32 ГБ памяти для dom0.