Снижение производительности с большими страницами
Я играю с тестом Java (SPECJbb), но заметил некоторое снижение производительности при включении больших страниц (2M на страницу). Наш сервер NUMA
основанный на арке, имеет 80 ядер (160 логических процессоров при включенной HT) и 260G
объем памяти.
Тест потребляет около 200G
памяти, поэтому я выделил 200G большой в ядре большой пул страниц. Но производительность 6%~8%
снижение. Я думаю, что у меня должно быть некоторое увеличение производительности, потому что этот тест использовал память 200G.
Мой вопрос о том, в какой ситуации использование большой страницы ухудшит производительность? Наша ОС это RHEL6.3
и я попробовал HotSpot JDK 1.6.38
а также 1.6.37
Обе эти две версии я обнаружил такую деградацию. Благодарю.
1 ответ
Большие страницы обычно повышают производительность до 5%.
Вы должны проверить, правильно ли размещены большие страницы:
- увидеть
cat /proc/meminfo
и проверьте фактический размер размещения больших страниц - Насколько велика твоя куча? Вы использовали
-XX:+UseLargePages
вариант? Обратите внимание, что JVM удалось использовать большие страницы, в журнале вывода JVM будет предупреждение, если возникла проблема
Также может возникнуть проблема с архитектурой LargePages + NUMA. Сколько памяти есть для каждого ядра? Увидеть:
- Используя Большие Страницы, они сообщают о снижении производительности больших страниц на 6-8% из-за настройки NUMA.
- Огромные страницы и проблемы с NUMA в Linux