Transparent Hugepages: Введение
Transparent Hugepages - это технология использования страниц размером 2MB вместо стандартных 4KB. Поддержка таких страниц появилась в linux ядре версии 2.6.38. В общем случае использование больших страниц позволят добиться увеличения производительности без существенных затрат на внедрение.Выгоды использование Hugepages:
- Увеличение размеров TLB (Translation Lookaside Buffer). TLB это специальный кэш процессора для трансляции адресов физической памяти в адреса виртуальной памяти. При использовании Hugepages выделяется отдельный кэш для работы с большими страницами.
- Ускорение работы внутри TLB. При работе с большими страницами отпадает необходимость в некоторых операциях доступа к памяти, за счет этого сокращается время на заполнение TLB.
- Быстрое выделение блоков памяти. За счет использования меньшего количества больших страниц происходит более быстрое и эффективное выделение памяти приложениям.
- Hugepages используют псевдо-файловую систему Hugetlbfs
- Hugepages не могут быть помещены в swap
- Hugepages желательно резервировать при загрузке
- Если hugepages предварительно не зарезервированы и динамическое выделение не удалось, это может плохо сказаться на работе KVM
- Требует административного управления и настройку libhugetlbfs
- Использование 2М страниц вместо 4K
- Использование псевдо-файловой системы Hugetlbfs
- Использование внешних библиотек libhugetlbfs для организации и управления Hugepages
- Hugepages должен быть собран в ядре:
- CONFIG_TRANSPARENT_HUGEPAGE=y
- CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
- CONFIG_HUGETLBFS=y
- CONFIG_HUGETLB_PAGE=y
- Включение происходит через запись аргументов (always,madvise,never) в /sys/kernel/mm/transparent_hugepage/enabled
- или через передачу ядру параметра загрузки transparent_hugepage=always (madvise или never)
Комментариев нет:
Отправить комментарий