2016-02-12 2 views
3

Что смысл мем и 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!) enter image description here

Графический процессор и отчет об использовании памяти показаны ниже, в котором говорится, что процессор под напряжением в течение этого периода является понятным. Однако память процесса Java (только 1 Spring загрузки работает в этой коробке) устойчиво: enter image description here

Итак, еще раз, что смысл ает и mem.free в метриках Spring загрузочных?

ответ

12

mem - общая сумма памяти, которую использует JVM. Это является суммой двух величин:

является объем памяти, которая доступна для виртуальной машины Java. Это одно значение:

Чтобы увидеть больше деталей, взгляните на SystemPublicMetrics класса Spring ботинка.

+1

Спасибо. Это очень четкое объяснение. Теперь я вижу mem (227657) = mem.free (44280) + heap.used (89351) + nonheap.used (94025) – MichaelYu

+0

Я также нашел в этих коробках по умолчанию JVM InitialHeapSize = 31457280, который настолько крошечный и даже не достаточно для классов (94025000). Когда я устанавливаю -Xms = 256m, mem становится 321136, а mem.free увеличивается до 169665, что приятно. – MichaelYu

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