Я только что перешел с Grails 2.4.3 на Grails 2.5.6 и с Java 7 на Java 8. Я пытаюсь установить оптимальный размер метапространства в своем приложении.
Фактический размер метапространства оказывает большое влияние на производительность приложения:
Используемое время мета-пространства и среднее время ответа:
- 200 МБ - 339 мс
- 300МБ - 380 мс
- 400 МБ - 430 мс
- 500 МБ - 460 мс
- 600 МБ - 530 мс
Рост метапространствазапуск приложения до 620 МБ за 90 минут.
Это мои фактические настройки gc:
-Xms14G -Xmx14G\
-XX:+UseG1GC\
-XX:ParallelGCThreads=8\
-XX:ConcGCThreads=4\
-XX:MaxGCPauseMillis=200\
-XX:+UseLargePages\
-XX:+UseLargePagesInMetaspace\
-XX:+AlwaysPreTouch\
-XX:InitialBootClassLoaderMetaspaceSize=512M\
-XX:MetaspaceSize=512M\
-XX:MinMetaspaceExpansion=8M\
-XX:MaxMetaspaceExpansion=32M\
-XX:+UseStringDeduplication\
-XX:+ParallelRefProcEnabled\
-XX:-TieredCompilation\
Когда MaxMetaspaceSize был установлен на 512M, то после нескольких часов работы мое приложение замедляется на 1 или 2раз за час.Время ответа составляет около 10 секунд.
У кого-нибудь была такая проблема?В ваших приложениях metaspace оказывает такое влияние на производительность?