Мы используем AppDynamics и VisualVM для мониторинга использования памяти кучи нашего приложения. Мы видим аналогичный график, как указано в этих вопросах - это и это .
красные прямоугольники показывают использование кучи незанятой системы - пики видны только тогда, когда система находится в режиме ожидания, и даже наблюдаются, когда приложение не развернуто. зеленая стрелка указывает на фактическое состояние приложения в использовании - когда система используется, мы видим, что об использовании кучи относительно мало сообщается. Исходя из разъяснений в других вопросах SO, если мы скажем, что это связано со сборкой мусора, почему G C не возникнет во время использования приложения? Когда система находится в режиме ожидания, мы видим системные объекты, такие как java .land.String, byte [], int [] et c. получать отчеты в AppDynamics, но как найти, кто отвечает за их создание?
Опять же, в дампах кучи, взятых во время простоя, мы видим только 200 МБ из 500 МБ используемой памяти, когда сервер имеет выделенную конфигурацию -Xmx4g.
Как мы должны понимать эти наблюдения?