Как я могу использовать огромные страницы и libhugetlbfs в экземпляре Debian EC2 PVM?

На моей локальной машине (i7 9200), на которой запущен Debian Wheezy amd64, я могу получить значительное ускорение для некоторых вещей типа "большие данные"/HPC:

  • Следуйте инструкциям здесь, чтобы зарезервировать немного оперативной памяти для огромных страниц и настроить hugetlbfs.
  • Запуск моего приложения с помощью libhugetlbfs'(2.17) nifty HUGETLB_MORECORE=yes перенаправить его mallocs на 2M страниц.

Приложение также достаточно хорошо работает на Debian Wheezy на EC2 (я использую последний wheezy AMI) с обычными страницами размером 4 тыс. (Некоторые тесты на масштабируемость были опробованы на экземплярах c3.2xlarge, c3.4xlarge и c3.8xlarge). Но мне также любопытно посмотреть, вижу ли я подобные преимущества при использовании огромных страниц на EC2, если это возможно.

Я запустил экземпляр c3.3xlarge и установил огромные страницы как обычно. И после этого /proc/meminfo действительно сообщает

HugePages_Total:    4096
HugePages_Free:     4095

Однако после компиляции libhugetlbfs это make func самотестирование вызывает некоторые ошибки ядра. Вскоре система, кажется, зависла, но не раньше, чем я успел осмотреть dmesg и увидеть несколько стеков вызовов с различными xen_ а также hugetlb_fault символы в них. Когда система перестала отвечать на запросы, системе потребовалась принудительная остановка с консоли AWS, чтобы остановить ее.

Я попытался загрузиться снова и просто запустил свое приложение с HUGETLB_MORECORE=yes во всяком случае (в случае, если make func тестирование ломало что-то непонятное, в чем я на самом деле не нуждался), но почти то же самое произошло снова.

Какие-нибудь истории успеха с libhugetlbfs на EC2 (желательно с Debian) или рецепты для правильной работы?

Исследование: там мало информации об огромных страницах на EC2 (или Xen). Я нашел это, которое, кажется, сообщает о той же самой проблеме: /proc/meminfo сообщает об огромных доступных страницах, но пытается использовать их панику ядра. Статья предшествует новым экземплярам c3, но предполагает, что cc2.8xlarge может стоить того, чтобы использовать HVM вместо PVM.

Обновление: не удалось найти последнюю версию AMI Debian для HVM, но попробовал Ubuntu (13.04 "raring") на cc2.8xlarge и libhugetlbfs и HUGETLB_MORECORE=yes кажется, работает хорошо на этом. Единственное, это на самом деле немного замедляет мое приложение!

0 ответов

Другие вопросы по тегам