Example usage for io.netty.buffer PoolArenaMetric numHugeDeallocations

List of usage examples for io.netty.buffer PoolArenaMetric numHugeDeallocations

Introduction

In this page you can find the example usage for io.netty.buffer PoolArenaMetric numHugeDeallocations.

Prototype

long numHugeDeallocations();

Source Link

Document

Return the number of huge deallocations done via the arena.

Usage

From source file:com.heliosapm.utils.buffer.BufferArenaMonitor.java

License:Apache License

/**
 * <p>Refreshes the arena stats</p>
 * {@inheritDoc}/*from  w ww  .j a  v a  2  s  .c  om*/
 * @see java.lang.Runnable#run()
 */
@Override
public void run() {
    final long start = System.currentTimeMillis();
    final List<PoolArenaMetric> arenaMetrics = direct ? pooledAllocator.directArenas()
            : pooledAllocator.heapArenas();

    totalChunkSize = 0;
    chunkFreeBytes = 0;
    chunkUsedBytes = 0;
    chunkUsage = 0;

    chunkLists = 0;
    smallSubPages = 0;
    tinySubPages = 0;
    allocations = 0;
    tinyAllocations = 0;
    smallAllocations = 0;
    normalAllocations = 0;
    hugeAllocations = 0;
    deallocations = 0;
    tinyDeallocations = 0;
    smallDeallocations = 0;
    normalDeallocations = 0;
    hugeDeallocations = 0;
    activeAllocations = 0;
    activeTinyAllocations = 0;
    activeSmallAllocations = 0;
    activeNormalAllocations = 0;
    activeHugeAllocations = 0;
    for (PoolArenaMetric poolArenaMetric : arenaMetrics) {
        for (PoolChunkListMetric pclm : poolArenaMetric.chunkLists()) {
            for (Iterator<PoolChunkMetric> iter = pclm.iterator(); iter.hasNext();) {
                PoolChunkMetric pcm = iter.next();
                totalChunkSize += pcm.chunkSize();
                chunkFreeBytes += pcm.freeBytes();
            }
        }
        chunkLists += poolArenaMetric.chunkLists().size();
        smallSubPages += poolArenaMetric.smallSubpages().size();
        tinySubPages += poolArenaMetric.tinySubpages().size();
        allocations += poolArenaMetric.numAllocations();
        tinyAllocations += poolArenaMetric.numTinyAllocations();
        smallAllocations += poolArenaMetric.numSmallAllocations();
        normalAllocations += poolArenaMetric.numNormalAllocations();
        hugeAllocations += poolArenaMetric.numHugeAllocations();
        deallocations += poolArenaMetric.numDeallocations();
        tinyDeallocations += poolArenaMetric.numTinyDeallocations();
        smallDeallocations += poolArenaMetric.numSmallDeallocations();
        normalDeallocations += poolArenaMetric.numNormalDeallocations();
        hugeDeallocations += poolArenaMetric.numHugeDeallocations();
        activeAllocations += poolArenaMetric.numActiveAllocations();
        activeTinyAllocations += poolArenaMetric.numActiveTinyAllocations();
        activeSmallAllocations += poolArenaMetric.numActiveSmallAllocations();
        activeNormalAllocations += poolArenaMetric.numActiveNormalAllocations();
        activeHugeAllocations += poolArenaMetric.numActiveHugeAllocations();
    }
    chunkUsedBytes = totalChunkSize - chunkFreeBytes;
    chunkUsage = perc(totalChunkSize, chunkUsedBytes);

    lastElapsed = System.currentTimeMillis() - start;
    //log.debug("Collected [{}] allocator stats from [{}] arena metrics in {} ms.", type, arenaMetrics.size(), lastElapsed);
}

From source file:com.yahoo.pulsar.broker.stats.AllocatorStatsGenerator.java

License:Apache License

private static PoolArenaStats newPoolArenaStats(PoolArenaMetric m) {
    PoolArenaStats stats = new PoolArenaStats();
    stats.numTinySubpages = m.numTinySubpages();
    stats.numSmallSubpages = m.numSmallSubpages();
    stats.numChunkLists = m.numChunkLists();

    stats.tinySubpages = m.tinySubpages().stream().map(x -> newPoolSubpageStats(x))
            .collect(Collectors.toList());
    stats.smallSubpages = m.smallSubpages().stream().map(x -> newPoolSubpageStats(x))
            .collect(Collectors.toList());
    stats.chunkLists = m.chunkLists().stream().map(x -> newPoolChunkListStats(x)).collect(Collectors.toList());

    stats.numAllocations = m.numAllocations();
    stats.numTinyAllocations = m.numTinyAllocations();
    stats.numSmallAllocations = m.numSmallAllocations();
    stats.numNormalAllocations = m.numNormalAllocations();
    stats.numHugeAllocations = m.numHugeAllocations();
    stats.numDeallocations = m.numDeallocations();
    stats.numTinyDeallocations = m.numTinyDeallocations();
    stats.numSmallDeallocations = m.numSmallDeallocations();
    stats.numNormalDeallocations = m.numNormalDeallocations();
    stats.numHugeDeallocations = m.numHugeDeallocations();
    stats.numActiveAllocations = m.numActiveAllocations();
    stats.numActiveTinyAllocations = m.numActiveTinyAllocations();
    stats.numActiveSmallAllocations = m.numActiveSmallAllocations();
    stats.numActiveNormalAllocations = m.numActiveNormalAllocations();
    stats.numActiveHugeAllocations = m.numActiveHugeAllocations();
    return stats;
}

From source file:ratpack.dropwizard.metrics.internal.PooledByteBufAllocatorMetricSet.java

License:Apache License

private void initPoolArenaMetrics(final Iterator<PoolArenaMetric> poolArenasIterator) {
    int counter = 0;
    while (poolArenasIterator.hasNext()) {
        final PoolArenaMetric poolArenaMetric = poolArenasIterator.next();
        final String prefix = format("poolArena.%s", counter);

        metrics.put(format("%s.activeAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveAllocations());
        metrics.put(format("%s.numActiveBytes", prefix), (Gauge<Long>) () -> poolArenaMetric.numActiveBytes());
        metrics.put(format("%s.numActiveHugeAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveHugeAllocations());
        metrics.put(format("%s.numActiveNormalAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveNormalAllocations());
        metrics.put(format("%s.numActiveSmallAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveSmallAllocations());
        metrics.put(format("%s.numActiveTinyAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numActiveTinyAllocations());
        metrics.put(format("%s.numAllocations", prefix), (Gauge<Long>) () -> poolArenaMetric.numAllocations());
        metrics.put(format("%s.numDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numDeallocations());
        metrics.put(format("%s.numHugeAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numHugeAllocations());
        metrics.put(format("%s.numHugeDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numHugeDeallocations());
        metrics.put(format("%s.numNormalAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numNormalAllocations());
        metrics.put(format("%s.numNormalDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numNormalDeallocations());
        metrics.put(format("%s.numSmallAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numSmallAllocations());
        metrics.put(format("%s.numSmallDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numSmallDeallocations());
        metrics.put(format("%s.numTinyAllocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numTinyAllocations());
        metrics.put(format("%s.numTinyDeallocations", prefix),
                (Gauge<Long>) () -> poolArenaMetric.numTinyDeallocations());
        metrics.put(format("%s.numSmallSubpages", prefix),
                (Gauge<Integer>) () -> poolArenaMetric.numSmallSubpages());
        metrics.put(format("%s.numTinySubpages", prefix),
                (Gauge<Integer>) () -> poolArenaMetric.numTinySubpages());

        final Iterator<PoolChunkListMetric> chunksIterator = poolArenaMetric.chunkLists().iterator();
        initPoolChunkListMetrics(prefix, chunksIterator);

        final Iterator<PoolSubpageMetric> smallSubpagesIterator = poolArenaMetric.smallSubpages().iterator();
        initSubpageMetrics(prefix, "smallSubpage", smallSubpagesIterator);

        final Iterator<PoolSubpageMetric> tinySubpagesIterator = poolArenaMetric.tinySubpages().iterator();
        initSubpageMetrics(prefix, "tinySubpage", tinySubpagesIterator);

        counter++;//from  w ww.  ja  va  2 s . c  om
    }
}