Что я хотел бы сделатьИспользование огромных страниц и DirectByteBuffer в Java HotSpot JVM на Linux
мне нужно использовать прямую память, чтобы избежать GC движущихся вещей вокруг. Я хотел бы включить огромные страницы для них.
До сих пор
флаг -XX: + UseLargePages отлично работает при использовании буфера кучи (не прямые ByteBuffers), но больше не работает при использовании DirectByteBuffers. Я также пытался использовать MappedByteBuffers и файловую систему hugetlbfs. Это работает, но вызывает ряд проблем, поэтому я ищу другое решение.
Config CentOS выпуск 6.3, точка доступа, jdk1.7
[EDIT]
Глядя на горячих точек исходного кода, они используют таНос для выделения памяти с небезопасными, были Shmat/shmget или mmap потребуется для использования огромных страниц.
[EDIT] Почему не куча памяти
Мы в контексте NUMA, для в базе данных памяти, с большим количеством долгоживущих объектов. JVM не разбивает старый ген, когда флаг UseNUMA включен. Использование прямой памяти позволяет нам поддерживать память вблизи потоков, которые ей нужны.
Бенчмаркинг, очевидно, сыграл огромную роль в решении использовать DirectByteBuffers. Я не спрашиваю, должен ли я использовать DirectByteBuffer или нет, я скорее ищу ответ на свой вопрос.