Страницы

Сохранить статью у себя в соцсети:

четверг, 5 июля 2012 г.

§ Transparent Hugepages: Practice.

Как быстро начать использовать KVM c HugePages.

В первой и второй части я писал что такое HugePages и какая есть польза от использования больших страниц. Теперь опишу сам процесс настройки HugePages и запуск виртуальной машины с их использованием.
Проверяем наличие опций в ядре:
# zgrep HUGETLB /proc/config.gz 
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y

При наличии опции выполняем установку пакета (его нет в официальном репозитории, но можно взять тут)
# cave resolve libhugetlbfs -x

Определяем группу члены которой могут использовать HugePages. 
# hugeadm --set-shm-group 197

Следующий шаг является необходимым в случае если в системе нет раздела подкачки.
# hugeadm --add-ramdisk-swap

Определяем минимальное (64МB) и максимальное (2GB) количество страниц в пуле. Расчет нужно проводить с учетом того сколько памяти мы хотим выделить виртуальным машинам. Максимальную границу пула лучше взять чуть чуть больше чем объем памяти занимаемый всеми машинами.
# hugeadm --pool-pages-min 2M:64M
# hugeadm --pool-pages-max 2M:2048M

Проверяем все ли создалось как положено. 
# hugeadm --pool-list
      Size  Minimum  Current  Maximum  Default
   2097152       32       32     1024        *
# grep HugePages /proc/meminfo
AnonHugePages:         0 kB
HugePages_Total:      32
HugePages_Free:       32
HugePages_Rsvd:        0
HugePages_Surp:        0

Начальное значение HugePages_Total соответствует минимальной границе пула (32 * 2 = 64).
Теперь подгоняем размер сегмента разделяемой памяти.
# hugeadm --set-recommended-shmmax

Монтируем файловую систему для HugePages
# mkdir /hugepages
# mount -t hugetlbfs hugetlbfs /hugepages

Настал момент запустить виртуальную машину. Запускаем её с набором необходимых параметров и добавляем обязательный для HugePages параметр "-mem-path" и в качестве аргумента указываем каталог где смонтировано HugeTLBFS.
# qemu-system-x86_64 ... -daemonize -mem-path /hugepages

Проверяем использование больших страниц
# grep HugePages /proc/meminfo 
AnonHugePages:     40960 kB
HugePages_Total:     520
HugePages_Free:      475
HugePages_Rsvd:      475
HugePages_Surp:      488

Как видно из вывода, после запуска виртуальной машины стало задействовано 45 страниц. В дальнейшем эта цифра будет меняться по мере выделения страниц для нужд виртуальной машины.
Вот и все.
На главную "Virtualizing Linux"

Комментариев нет:

Отправить комментарий

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика