Pull to refresh

Comments 16

(для справки) Прошлой осенью оракл наткнулся на значительную деградацию в линуксе при работе своей БД с большими страницами. Точную причину на тот момент не выявили, поэтому по умолчанию отключали в собственном дистрибутиве линукса. По их мнению, проблема где-то в ядре операционки. Удалось ли решить сейчас, хз.
Есть косяки с transparent hugepages, точнее с периодической дефрагментацией памяти в которых задействованы большие страницы. Поэтому да, рекомендуется делать echo never > /sys/kernel/mm/transparent_hugepage/defrag а то и вообще echo never > /sys/kernel/mm/transparent_hugepage/enabled.
Возможно речь об этом, но может оракловцы еще чего накопали.
Это рекомендация для общего случая или только для Oracle DB?
Это больше для софта который оперирирует большими непрерывными блоками памяти (базы данных, big data). Выражается это в том что IO операции встают колом на одну-две секунды потом дальше все работает как будто ничего не было.
Нет, не отмечаются. В плане мониторинга THP все немного хитрее, там механизм работы похож на постгресовый bgwriter… демон khugepaged сканирует всю память и смежные участки принадлежащие одному приложению сливает из мелких в большие страницы. Сканиррование страниц памяти идет пачками с некоторой задержкой чтобы не грузить cpu (такой механизм вообще много где используется, KSM. postgres autovacuum, vm plflush). Посмотреть сколько он там смержил страниц можно в /sys/kernel/mm/transparent_hugepage/khugepaged/pages_collapsed.
а! То есть без khugepaged можно выдохнуть, и искать проблемы в других местах?

в collapsed пусто
да, на время поиска проблемных мест, его можно для полной надежности отрубить.
А это описано где-то? Симптомы, с каких какого кол-ва страниц и какого размера началось? Интересно почитать, много где используются huge_pages и тоже не без артефактов:)
Нашел статью. lesovsky оказался прав, что дело в THP. Подробностей нет, а вот пометка была
Please note that THP is not used by the Oracle Database, the recommendation is to use huge pages.
Спасибо, на проблемном стенде как раз был THP. Попробуем HugePages.
Проблемы с transparent huge pages, их надо отключать в опциях загрузки и использовать обычные.
Также желательно убрать prelink из cron.
В остальном все Ок. Если SGA больше где-нибудь 10Gb, то никуда от huge pages не денешься.
Отмечу что значение измеряется в страницах размером 2Mb,
Не всегда

$ grep Hugepagesize /proc/meminfo
Hugepagesize: 4096 kB

Снято с хоста с AMD.
UFO just landed and posted this here
Я запутался. Описываемый в статье механизм будет работать, если echo never > /sys/kernel/mm/transparent_hugepage/enabled?
Sign up to leave a comment.

Articles