• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java StatusLogger类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.cassandra.utils.StatusLogger的典型用法代码示例。如果您正苦于以下问题:Java StatusLogger类的具体用法?Java StatusLogger怎么用?Java StatusLogger使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



StatusLogger类属于org.apache.cassandra.utils包,在下文中一共展示了StatusLogger类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: handleNotification

import org.apache.cassandra.utils.StatusLogger; //导入依赖的package包/类
public void handleNotification(Notification notification, Object handback)
{
    String type = notification.getType();
    if (type.equals(GarbageCollectionNotificationInfo.GARBAGE_COLLECTION_NOTIFICATION))
    {
        // retrieve the garbage collection notification information
        CompositeData cd = (CompositeData) notification.getUserData();
        GarbageCollectionNotificationInfo info = GarbageCollectionNotificationInfo.from(cd);

        long duration = info.getGcInfo().getDuration();

        StringBuilder sb = new StringBuilder();
        sb.append(info.getGcName()).append(" GC in ").append(duration).append("ms.  ");

        long bytes = 0;
        List<String> keys = new ArrayList<>(info.getGcInfo().getMemoryUsageBeforeGc().keySet());
        Collections.sort(keys);
        for (String key : keys)
        {
            MemoryUsage before = info.getGcInfo().getMemoryUsageBeforeGc().get(key);
            MemoryUsage after = info.getGcInfo().getMemoryUsageAfterGc().get(key);
            if (after != null && after.getUsed() != before.getUsed())
            {
                sb.append(key).append(": ").append(before.getUsed());
                sb.append(" -> ");
                sb.append(after.getUsed());
                if (!key.equals(keys.get(keys.size() - 1)))
                    sb.append("; ");
                bytes += before.getUsed() - after.getUsed();
            }
        }

        while (true)
        {
            State prev = state.get();
            if (state.compareAndSet(prev, new State(duration, bytes, prev)))
                break;
        }

        String st = sb.toString();
        if (duration > MIN_LOG_DURATION)
            logger.info(st);
        else if (logger.isDebugEnabled())
            logger.debug(st);

        if (duration > MIN_LOG_DURATION_TPSTATS)
            StatusLogger.log();

        // if we just finished a full collection and we're still using a lot of memory, try to reduce the pressure
        if (info.getGcName().equals("ConcurrentMarkSweep"))
            SSTableDeletingTask.rescheduleFailedTasks();
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:54,代码来源:GCInspector.java


示例2: logGCResults

import org.apache.cassandra.utils.StatusLogger; //导入依赖的package包/类
private void logGCResults()
{
    for (GarbageCollectorMXBean gc : beans)
    {
        Long previousTotal = gctimes.get(gc.getName());
        Long total = gc.getCollectionTime();
        if (previousTotal == null)
            previousTotal = 0L;
        if (previousTotal.equals(total))
            continue;
        gctimes.put(gc.getName(), total);
        Long duration = total - previousTotal; // may be zero for a really fast collection

        Long previousCount = gccounts.get(gc.getName());
        Long count = gc.getCollectionCount();

        if (previousCount == null)
            previousCount = 0L;
        if (count.equals(previousCount))
            continue;

        gccounts.put(gc.getName(), count);

        MemoryUsage mu = membean.getHeapMemoryUsage();
        long memoryUsed = mu.getUsed();
        long memoryMax = mu.getMax();

        String st = String.format("GC for %s: %s ms for %s collections, %s used; max is %s",
                                  gc.getName(), duration, count - previousCount, memoryUsed, memoryMax);
        org.apache.cassandra.db.compaction.CompactionTask.MyLogWriter("AcaZoo " +st);
        long durationPerCollection = duration / (count - previousCount);
        if (durationPerCollection > MIN_DURATION)
            logger.info(st);
        else if (logger.isDebugEnabled())
            logger.debug(st);

        if (durationPerCollection > MIN_DURATION_TPSTATS)
            StatusLogger.log();

        // if we just finished a full collection and we're still using a lot of memory, try to reduce the pressure
        if (gc.getName().equals("ConcurrentMarkSweep"))
            SSTableDeletingTask.rescheduleFailedTasks();
    }
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:45,代码来源:GCInspector.java


示例3: handleNotification

import org.apache.cassandra.utils.StatusLogger; //导入依赖的package包/类
public void handleNotification(final Notification notification, final Object handback)
{
    String type = notification.getType();
    if (type.equals(GarbageCollectionNotificationInfo.GARBAGE_COLLECTION_NOTIFICATION))
    {
        // retrieve the garbage collection notification information
        CompositeData cd = (CompositeData) notification.getUserData();
        GarbageCollectionNotificationInfo info = GarbageCollectionNotificationInfo.from(cd);
        String gcName = info.getGcName();
        GcInfo gcInfo = info.getGcInfo();

        long duration = gcInfo.getDuration();

        /*
         * The duration supplied in the notification info includes more than just
         * application stopped time for concurrent GCs. Try and do a better job coming up with a good stopped time
         * value by asking for and tracking cumulative time spent blocked in GC.
         */
        GCState gcState = gcStates.get(gcName);
        if (gcState.assumeGCIsPartiallyConcurrent)
        {
            long previousTotal = gcState.lastGcTotalDuration;
            long total = gcState.gcBean.getCollectionTime();
            gcState.lastGcTotalDuration = total;
            duration = total - previousTotal; // may be zero for a really fast collection
        }

        StringBuilder sb = new StringBuilder();
        sb.append(info.getGcName()).append(" GC in ").append(duration).append("ms.  ");
        long bytes = 0;
        Map<String, MemoryUsage> beforeMemoryUsage = gcInfo.getMemoryUsageBeforeGc();
        Map<String, MemoryUsage> afterMemoryUsage = gcInfo.getMemoryUsageAfterGc();
        for (String key : gcState.keys(info))
        {
            MemoryUsage before = beforeMemoryUsage.get(key);
            MemoryUsage after = afterMemoryUsage.get(key);
            if (after != null && after.getUsed() != before.getUsed())
            {
                sb.append(key).append(": ").append(before.getUsed());
                sb.append(" -> ");
                sb.append(after.getUsed());
                if (!key.equals(gcState.keys[gcState.keys.length - 1]))
                    sb.append("; ");
                bytes += before.getUsed() - after.getUsed();
            }
        }

        while (true)
        {
            State prev = state.get();
            if (state.compareAndSet(prev, new State(duration, bytes, prev)))
                break;
        }

        String st = sb.toString();
        if (GC_WARN_THRESHOLD_IN_MS != 0 && duration > GC_WARN_THRESHOLD_IN_MS)
            logger.warn(st);
        else if (duration > MIN_LOG_DURATION)
            logger.info(st);
        else if (logger.isTraceEnabled())
            logger.trace(st);

        if (duration > STAT_THRESHOLD)
            StatusLogger.log();

        // if we just finished an old gen collection and we're still using a lot of memory, try to reduce the pressure
        if (gcState.assumeGCIsOldGen)
            LifecycleTransaction.rescheduleFailedDeletions();
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:71,代码来源:GCInspector.java


示例4: logGCResults

import org.apache.cassandra.utils.StatusLogger; //导入依赖的package包/类
private void logGCResults()
{
    for (GarbageCollectorMXBean gc : beans)
    {
        Long previousTotal = gctimes.get(gc.getName());
        Long total = gc.getCollectionTime();
        if (previousTotal == null)
            previousTotal = 0L;
        if (previousTotal.equals(total))
            continue;
        gctimes.put(gc.getName(), total);
        Long duration = total - previousTotal; // may be zero for a really fast collection

        Long previousCount = gccounts.get(gc.getName());
        Long count = gc.getCollectionCount();

        if (previousCount == null)
            previousCount = 0L;
        if (count.equals(previousCount))
            continue;

        gccounts.put(gc.getName(), count);

        MemoryUsage mu = membean.getHeapMemoryUsage();
        long memoryUsed = mu.getUsed();
        long memoryMax = mu.getMax();

        String st = String.format("GC for %s: %s ms for %s collections, %s used; max is %s",
                                  gc.getName(), duration, count - previousCount, memoryUsed, memoryMax);
        long durationPerCollection = duration / (count - previousCount);
        if (durationPerCollection > MIN_DURATION)
            logger.info(st);
        else if (logger.isDebugEnabled())
            logger.debug(st);

        if (durationPerCollection > MIN_DURATION_TPSTATS)
            StatusLogger.log();

        // if we just finished a full collection and we're still using a lot of memory, try to reduce the pressure
        if (gc.getName().equals("ConcurrentMarkSweep"))
        {
            SSTableDeletingTask.rescheduleFailedTasks();

            double usage = (double) memoryUsed / memoryMax;

            if (memoryUsed > DatabaseDescriptor.getReduceCacheSizesAt() * memoryMax && !cacheSizesReduced)
            {
                cacheSizesReduced = true;
                logger.warn("Heap is " + usage + " full.  You may need to reduce memtable and/or cache sizes.  Cassandra is now reducing cache sizes to free up memory.  Adjust reduce_cache_sizes_at threshold in cassandra.yaml if you don't want Cassandra to do this automatically");
                CacheService.instance.reduceCacheSizes();
            }

            if (memoryUsed > DatabaseDescriptor.getFlushLargestMemtablesAt() * memoryMax)
            {
                logger.warn("Heap is " + usage + " full.  You may need to reduce memtable and/or cache sizes.  Cassandra will now flush up to the two largest memtables to free up memory.  Adjust flush_largest_memtables_at threshold in cassandra.yaml if you don't want Cassandra to do this automatically");
                StorageService.instance.flushLargestMemtables();
            }
        }
    }
}
 
开发者ID:dprguiuc,项目名称:Cassandra-Wasef,代码行数:61,代码来源:GCInspector.java


示例5: logGCResults

import org.apache.cassandra.utils.StatusLogger; //导入依赖的package包/类
private void logGCResults()
{
    for (GarbageCollectorMXBean gc : beans)
    {
        Long previousTotal = gctimes.get(gc.getName());
        Long total = gc.getCollectionTime();
        if (previousTotal == null)
            previousTotal = 0L;
        if (previousTotal.equals(total))
            continue;
        gctimes.put(gc.getName(), total);
        Long duration = total - previousTotal; // may be zero for a really fast collection

        Long previousCount = gccounts.get(gc.getName());
        Long count = gc.getCollectionCount();

        if (previousCount == null)
            previousCount = 0L;
        if (count.equals(previousCount))
            continue;

        gccounts.put(gc.getName(), count);

        MemoryUsage mu = membean.getHeapMemoryUsage();
        long memoryUsed = mu.getUsed();
        long memoryMax = mu.getMax();

        String st = String.format("GC for %s: %s ms for %s collections, %s used; max is %s",
                                  gc.getName(), duration, count - previousCount, memoryUsed, memoryMax);
        long durationPerCollection = duration / (count - previousCount);
        if (durationPerCollection > MIN_DURATION)
            logger.info(st);
        else if (logger.isDebugEnabled())
            logger.debug(st);

        if (durationPerCollection > MIN_DURATION_TPSTATS)
            StatusLogger.log();

        // if we just finished a full collection and we're still using a lot of memory, try to reduce the pressure
        if (gc.getName().equals("ConcurrentMarkSweep"))
            SSTableDeletingTask.rescheduleFailedTasks();
    }
}
 
开发者ID:mafernandez-stratio,项目名称:cassandra-cqlMod,代码行数:44,代码来源:GCInspector.java



注:本文中的org.apache.cassandra.utils.StatusLogger类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Motor类代码示例发布时间:2022-05-22
下一篇:
Java ParquetProperties类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap