2016-05-06 2 views
1

Я запускаю Java-приложение на сервере Ubuntu 16.04. После обширного исследования я обнаружил, что размер кучи JVM более или менее постоянный. Во всяком случае, нет увеличения памяти.Стабильный JVM, но увеличение системной памяти

Однако, когда я смотрю на сервер с использованием htop, потребление памяти сервером растет с угрожающей скоростью. Я не уверен, что именно вызывает это, но его 100% происходит из java-процесса.

Я просмотрел файлы hprof, но я не могу сказать, что я ищу.

Я запускаю две библиотеки, которые могут быть ответственными, но я не знаком с ними;

  • OrientDB (plocal)
  • Hazelcast

Я не уверен, если либо/оба из них приведет к увеличению памяти за пределами виртуальной машины Java.

Любые советы по лучшему плану, чтобы помочь выявить проблему, были бы замечательными.

+0

Увеличивает ли RSS процесс java? – the8472

+0

@ the8472 Извините, что такое 'java process RSS'? – tarka

+0

Как вы определяете размер кучи Java? (Учитывает ли метод только живые объекты?) Как вы определяете «потребление памяти»? – davmac

ответ

0

Благодаря @ the8472, @davmac @qwwdfsad и @ andrey-lomakin для ваших комментариев. Я ценю детали, представленные в вопросе, где очень тонкий, но я пытался избежать предоставления несвязанных данных, которые могли бы привести к кролику в целом.

Я систематически тестировал каждое предложение, и выяснилось, что проблема возникла из OrientDB. Я не могу сказать, что 100% из следующих исправлено проблема (возможно, и то, и другое). По предложению @ andrey-lomakin я повысился с 2.1.19 до 2.2-rc1. При этом приложения пакетных вставок начали бросать исключения, поэтому я преобразовал их все в одиночные линейные запросы. Однажды соревнуйтесь с утечкой памяти.

В качестве побочного примечания в случае, если это повлияет на кого-либо еще во время тестирования на direct IO leak. Я обнаружил, что работает с Java(TM) SE Runtime Environment (build 1.8.0_91-b14).

+0

Где я могу установить -Djdk.nio.maxChaedBu ....? –

Смежные вопросы