use of io.netty.buffer.PooledByteBufAllocator in project pulsar by yahoo.
the class BookieClientsStatsGeneratorTest method testJvmDirectMemoryUsedMetric.
@Test
public void testJvmDirectMemoryUsedMetric() throws Exception {
PooledByteBufAllocator allocator = new //
PooledByteBufAllocator(// preferDirect
true, // nHeapArenas,
0, // nDirectArena
1, // pageSize
8192, // maxOrder
11, // tinyCacheSize
64, // smallCacheSize
32, // normalCacheSize
8);
int allocateMemory = 17777216;
long directMemory1 = JvmMetrics.getJvmDirectMemoryUsed();
ByteBuf buf2 = allocator.directBuffer(allocateMemory, allocateMemory);
long directMemory2 = JvmMetrics.getJvmDirectMemoryUsed();
assertEquals(directMemory2, directMemory1 + allocateMemory);
ByteBuf buf3 = allocator.directBuffer(allocateMemory, allocateMemory);
long directMemory3 = JvmMetrics.getJvmDirectMemoryUsed();
assertEquals(directMemory3, directMemory2 + allocateMemory);
buf3.release();
directMemory3 = JvmMetrics.getJvmDirectMemoryUsed();
assertEquals(directMemory3, directMemory2);
buf2.release();
directMemory2 = JvmMetrics.getJvmDirectMemoryUsed();
assertEquals(directMemory2, directMemory1);
}
use of io.netty.buffer.PooledByteBufAllocator in project pulsar by yahoo.
the class ManagedLedgerCacheMetrics method generate.
@Override
public synchronized List<Metrics> generate() {
// get the ML cache stats bean
ManagedLedgerFactoryMXBean mlCacheStats = getManagedLedgerCacheStats();
Metrics m = createMetrics();
m.put("brk_ml_count", mlCacheStats.getNumberOfManagedLedgers());
m.put("brk_ml_cache_used_size", mlCacheStats.getCacheUsedSize());
m.put("brk_ml_cache_evictions", mlCacheStats.getNumberOfCacheEvictions());
m.put("brk_ml_cache_hits_rate", mlCacheStats.getCacheHitsRate());
m.put("brk_ml_cache_misses_rate", mlCacheStats.getCacheMissesRate());
m.put("brk_ml_cache_hits_throughput", mlCacheStats.getCacheHitsThroughput());
m.put("brk_ml_cache_misses_throughput", mlCacheStats.getCacheMissesThroughput());
PooledByteBufAllocator allocator = EntryCacheImpl.allocator;
long activeAllocations = 0;
long activeAllocationsTiny = 0;
long activeAllocationsSmall = 0;
long activeAllocationsNormal = 0;
long activeAllocationsHuge = 0;
long totalAllocated = 0;
long totalUsed = 0;
for (PoolArenaMetric arena : allocator.directArenas()) {
activeAllocations += arena.numActiveAllocations();
activeAllocationsTiny += arena.numActiveTinyAllocations();
activeAllocationsSmall += arena.numActiveSmallAllocations();
activeAllocationsNormal += arena.numActiveNormalAllocations();
activeAllocationsHuge += arena.numActiveHugeAllocations();
for (PoolChunkListMetric list : arena.chunkLists()) {
for (PoolChunkMetric chunk : list) {
int size = chunk.chunkSize();
int used = size - chunk.freeBytes();
totalAllocated += size;
totalUsed += used;
}
}
}
m.put("brk_ml_cache_pool_allocated", totalAllocated);
m.put("brk_ml_cache_pool_used", totalUsed);
m.put("brk_ml_cache_pool_active_allocations", activeAllocations);
m.put("brk_ml_cache_pool_active_allocations_tiny", activeAllocationsTiny);
m.put("brk_ml_cache_pool_active_allocations_small", activeAllocationsSmall);
m.put("brk_ml_cache_pool_active_allocations_normal", activeAllocationsNormal);
m.put("brk_ml_cache_pool_active_allocations_huge", activeAllocationsHuge);
metrics.clear();
metrics.add(m);
return metrics;
}
Aggregations