Что смысл мем и mem.free в метриках Spring загрузочными экспонируется через /метрик конечных точек?метрики Spring загрузки привода мем и mem.free
Мы нагрузочное тестирование новой Spring загрузки microservice развернут в трех узлах, для ими памяти каждого ящика всегда вокруг 250M из 4G Всего в VM, mem.free под нереальными нагрузками, как в 100 раз нормальной нагрузки может спуститься до 15М и медленно восстанавливается после теста.
Они не являются памятью кучи, потому что Spring Boot Metrics сообщают о них отдельно, и они не являются самим процессом Java, потому что из командной строки я могу видеть, независимо от того, насколько велика нагрузка, она остается на уровне 16% от 4G, что составляет около 900 МБ. Здесь/метрики называют ответ сниппет:
{
mem: 227657,
mem.free: 44280,
processors: 2,
instance.uptime: 80393579,
uptime: 80414405,
systemload.average: 0.03,
heap.committed: 133632,
heap.init: 61440,
heap.used: 89351,
heap: 872448,
nonheap.committed: 96688,
nonheap.init: 2496,
nonheap.used: 94025,
nonheap: 0,
threads.peak: 109,
threads.daemon: 34,
threads.totalStarted: 183,
threads: 63,
classes: 10079,
classes.loaded: 10155,
classes.unloaded: 76,
.... }
графана mem.free скриншот за последние 24 часов, самая низкая точка во время этого испытания тяжелой нагрузки (15MB!)
Графический процессор и отчет об использовании памяти показаны ниже, в котором говорится, что процессор под напряжением в течение этого периода является понятным. Однако память процесса Java (только 1 Spring загрузки работает в этой коробке) устойчиво:
Итак, еще раз, что смысл ает и mem.free в метриках Spring загрузочных?
Спасибо. Это очень четкое объяснение. Теперь я вижу mem (227657) = mem.free (44280) + heap.used (89351) + nonheap.used (94025) – MichaelYu
Я также нашел в этих коробках по умолчанию JVM InitialHeapSize = 31457280, который настолько крошечный и даже не достаточно для классов (94025000). Когда я устанавливаю -Xms = 256m, mem становится 321136, а mem.free увеличивается до 169665, что приятно. – MichaelYu