Example usage for java.lang.management ManagementFactory getMemoryMXBean

List of usage examples for java.lang.management ManagementFactory getMemoryMXBean

Introduction

In this page you can find the example usage for java.lang.management ManagementFactory getMemoryMXBean.

Prototype

public static MemoryMXBean getMemoryMXBean() 

Source Link

Document

Returns the managed bean for the memory system of the Java virtual machine.

Usage

From source file:org.mifos.framework.ApplicationInitializer.java

private void printMemoryPool() {
    logger.info("Memory MXBean");
    logger.info("Heap Memory Usage: " + ManagementFactory.getMemoryMXBean().getHeapMemoryUsage());
    logger.info("Non-Heap Memory Usage: " + ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage());

    logger.info("-----Memory Pool MXBeans------");

    Iterator<MemoryPoolMXBean> iter = ManagementFactory.getMemoryPoolMXBeans().iterator();

    while (iter.hasNext()) {
        MemoryPoolMXBean item = iter.next();

        logger.info("Name: " + item.getName());
        logger.info("Type: " + item.getType());
        logger.info("Usage: " + item.getUsage());
        logger.info("Peak Usage: " + item.getPeakUsage());
        logger.info("Collection Usage: " + item.getCollectionUsage());
        logger.info("+++++++++++++++++++");
    }/*  w w  w. jav  a2s  .c o  m*/
}

From source file:org.pepstock.jem.node.StartUpSystem.java

/**
 * If NODES_MAP contain at least a node with status different from STARTING
 * will return otherwise checks if the cluster have enough nodes to support
 * the persisted queue in memory. If the nodes are not enough the cluster
 * will wait for new joining nodes./*from ww  w.java  2  s.  co m*/
 * 
 * @throws ConfigurationException
 */
private static void checkIfEnoughMembers() throws ConfigurationException {
    // by default the number of permits are 0
    ISemaphore semaphore = Main.getHazelcast().getSemaphore(SEMAPHORE);
    // check if exists a node of the cluster with status different from
    // STARTING if so return.
    List<Status> statusList = new ArrayList<Status>();
    statusList.add(Status.STARTING);
    List<NodeInfo> nodesInfo = NodeInfoUtility.getNodesInfoByStatus(statusList, true);
    if (!nodesInfo.isEmpty()) {
        return;
    }

    // times 2 because in memory there will be a replication copy
    long queueSize = calculateQueueSize() * 2;
    // calculate the number of nodes (exclude light member)
    Cluster cluster = Main.getHazelcast().getCluster();
    int membersNumber = cluster.getMembers().size();
    MemoryMXBean bean = ManagementFactory.getMemoryMXBean();
    long freeMemoryForNode = bean.getHeapMemoryUsage().getMax() - bean.getHeapMemoryUsage().getUsed();
    // we consider each has at this point the same max and used memory
    // or we could insert this information in nodeInfo ?
    long clusterFreMemory = freeMemoryForNode * membersNumber;
    // we consider clusterFreMemory enough if is grather than the queueSize
    // + 20%
    long neededMemory = queueSize + (queueSize / 10) * 2;
    if (clusterFreMemory > neededMemory) {
        semaphore.release(membersNumber - 1);
        return;
    } else {
        LogAppl.getInstance().emit(NodeMessage.JEMC086W, clusterFreMemory / 1000, neededMemory / 1000);
        try {
            semaphore.acquire();
        } catch (Exception e) {
            throw new ConfigurationException(e);
        }
    }
}

From source file:org.rhq.enterprise.agent.promptcmd.GCPromptCommand.java

private void setVerbosity(boolean verbose) {
    final MemoryMXBean memoryMxBean = ManagementFactory.getMemoryMXBean();
    memoryMxBean.setVerbose(verbose);//from   ww  w  .  j  ava2 s  . com
}

From source file:org.rhq.enterprise.agent.promptcmd.GCPromptCommand.java

private void freeMemory(PrintWriter out) {
    final MemoryMXBean memoryMxBean = ManagementFactory.getMemoryMXBean();

    printGlobalMemoryUsage(out, memoryMxBean);

    // free up some global static caches
    Introspector.flushCaches();/*from  www  . j  av  a  2 s.  c  o m*/
    LogFactory.releaseAll();

    // invoke the garbage collector
    out.println(MSG.getMsg(AgentI18NResourceKeys.GC_INVOKE));
    memoryMxBean.gc();

    printGlobalMemoryUsage(out, memoryMxBean);
    return;
}

From source file:org.rhq.enterprise.agent.promptcmd.GCPromptCommand.java

private void printCurrentMemoryUsage(PrintWriter out) {
    final MemoryMXBean memoryMxBean = ManagementFactory.getMemoryMXBean();
    printGlobalMemoryUsage(out, memoryMxBean);

    List<MemoryPoolMXBean> poolMxBeans = ManagementFactory.getMemoryPoolMXBeans();
    if (poolMxBeans != null) {
        for (MemoryPoolMXBean bean : poolMxBeans) {
            if (bean.isValid()) {
                String name = bean.getName();
                MemoryType type = bean.getType();
                MemoryUsage usage = bean.getUsage();
                printMemoryUsage(out, name, type, usage);
            }//  w w w.  j  a  va  2 s.  c  om
        }
    }

    return;
}

From source file:org.romaframework.core.config.RomaApplicationContext.java

private void logMemoryUsage() {
    MemoryMXBean memBean = ManagementFactory.getMemoryMXBean();
    MemoryUsage heapMemory = memBean.getHeapMemoryUsage();
    MemoryUsage nonHeapMemory = memBean.getNonHeapMemoryUsage();

    NumberFormat nf = NumberFormat.getInstance();
    log.info("--------------- MEMORY USAGE ---------------");
    log.info("HEAP INIT MEMORY:       " + nf.format(heapMemory.getInit()) + " bytes");
    log.info("HEAP USED MEMORY:       " + nf.format(heapMemory.getUsed()) + " bytes");
    log.info("HEAP COMMITTED MEMORY:  " + nf.format(heapMemory.getCommitted()) + " bytes");
    log.info("HEAP MAX MEMORY:        " + nf.format(heapMemory.getMax()) + " bytes");
    log.info(" ");
    log.info("NON HEAP INIT MEMORY:       " + nf.format(nonHeapMemory.getInit()) + " bytes");
    log.info("NON HEAP USED MEMORY:       " + nf.format(nonHeapMemory.getUsed()) + " bytes");
    log.info("NON HEAP COMMITTED MEMORY:  " + nf.format(nonHeapMemory.getCommitted()) + " bytes");
    log.info("NON HEAP MAX MEMORY:        " + nf.format(nonHeapMemory.getMax()) + " bytes");
    log.info("--------------------------------------------");
}

From source file:org.talend.dq.analysis.AnalysisExecutor.java

protected boolean continueRun() {
    // MOD scorreia 2013-09-10 avoid checking for each analyzed row. Check only every 1000 rows
    checkContinueCount++;//  ww w.j  av  a 2s. co m
    if (getMonitor() != null && getMonitor().isCanceled()) {
        keepRunning = false;
        return keepRunning;
    }
    if (getCheckContinueCount() % Evaluator.CHECK_EVERY_N_COUNT != 0) {
        return keepRunning;
    }
    if (!Platform.isRunning()) { // Reporting engine is working as library
        return true;
    }

    if (this.isLowMemory) {
        keepRunning = false;
    } else if (AnalysisThreadMemoryChangeNotifier.getInstance().isUsageThresholdExceeded()) {
        this.usedMemory = AnalysisThreadMemoryChangeNotifier
                .convertToMB(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed());
        this.isLowMemory = true;
        keepRunning = false;
    }
    return keepRunning;
}

From source file:org.talend.dq.indicators.Evaluator.java

protected boolean continueRun() {
    // TOCHANGE msjian 2016-10-21 Use thread notification technology to stop the analysis
    // MOD scorreia 2013-09-10 avoid checking for each analyzed row. Check only every 1000 rows
    checkContinueCount++;/* ww  w. j  a v  a2  s .  c  o  m*/
    if (checkContinueCount % CHECK_EVERY_N_COUNT != 0) {
        return keepRunning;
    }
    if (!Platform.isRunning()) { // Reporting engine is working as library
        return true;
    }

    if (getMonitor() != null && getMonitor().isCanceled()) {
        keepRunning = false;
    } else if (this.isLowMemory) {
        keepRunning = false;
    } else if (AnalysisThreadMemoryChangeNotifier.getInstance().isUsageThresholdExceeded()) {
        this.usedMemory = AnalysisThreadMemoryChangeNotifier
                .convertToMB(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed());
        this.isLowMemory = true;
        keepRunning = false;
    }
    return keepRunning;

}

From source file:org.toobsframework.management.MemoryMonitor.java

private void init() {
    MemoryMXBean mem = ManagementFactory.getMemoryMXBean();
    ((NotificationBroadcaster) mem).addNotificationListener(listener, null, null);

    for (MemoryPoolMXBean memPool : ManagementFactory.getMemoryPoolMXBeans()) {
        if (memPool.isUsageThresholdSupported()) {
            memPools.put(memPool.getName(), memPool);
            log.info("Putting Pool " + memPool.getName());
            setUsageThreshold(memPool, 0.7);
        }//from  w w w  . j a va  2s  .com
    }
}

From source file:org.vaadin.viritin.FilterableListContainerTest.java

private long reportMemoryUsage() {
    try {//  w  w w . ja  va  2 s  .co m
        System.gc();
        Thread.sleep(100);
        System.gc();
        Thread.sleep(100);
        System.gc();
        Thread.sleep(100);
        System.gc();
    } catch (InterruptedException ex) {
    }
    MemoryUsage mu = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();
    System.out.println("Memory used (M):" + mu.getUsed() / 1000000);
    return ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed();
}