2015-03-12 4 views
2

мне нужно, чтобы получить приблизительную оценку использования памяти моего Infinispan кэша (который реализуется с использованием версии 5.3.0) - (для целей обучения)Расчет Infinispan кэш-памяти размером

Поскольку существует no easy way сделать это, я появилась следующая процедура.

Добавить прослушиватель кеша для прослушивания кеша положить/удалить события и записать размер вставленной записи с использованием библиотеки jamm, которая использует java.lang.instrument.Instrumentation.getObjectSize. Но я немного скептически отношусь к этому, вернул ли он правильное использование памяти для кеша. Правильно ли я делаю это измерение? Я что-то упустил здесь или мне нужно учитывать больше факторов для этого?

ответ

2

Если вам не нужна информация в реальном времени, самый простой способ найти фактическое использование памяти - взять кучу кучи и посмотреть на сохраненные размеры объектов кэша (например, с помощью Eclipse MAT).

Ваш метод будет игнорировать накладные расходы внутренних структур Infinispan. Обычно накладные расходы должны быть где-то около 150 байт, но иногда они могут быть довольно большими - например, когда вы разрешаете выселение, а Infinispan выделяет структуры на основе настроенного размера (https://issues.jboss.org/browse/ISPN-4126).