Skip to content

Instantly share code, notes, and snippets.

@nyg
Created January 20, 2024 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nyg/8f8b099f957ebc18656c062eb8ca20e4 to your computer and use it in GitHub Desktop.
Save nyg/8f8b099f957ebc18656c062eb8ca20e4 to your computer and use it in GitHub Desktop.
Display available free Swap memory using JMX
package edu.self.nyg.example.jmx.app;
import java.lang.management.ManagementFactory;
import java.text.NumberFormat;
import java.util.Set;
import javax.management.MBeanServer;
import javax.management.ObjectInstance;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class FreeSwap {
public static void main(String[] args) throws Exception {
log.info("Application started");
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
log.info("MBean count: {}", mBeanServer.getMBeanCount());
com.sun.management.OperatingSystemMXBean mbean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
long freeMemory = mbean.getFreePhysicalMemorySize();
long totalMemory = mbean.getTotalPhysicalMemorySize();
long freeSwap = mbean.getFreeSwapSpaceSize();
long totalSwap = mbean.getTotalSwapSpaceSize();
log.info("Memory: {} / {}", format(freeMemory), format(totalMemory));
log.info("Swap: {} / {}", format(freeSwap), format(totalSwap));
Thread.sleep(Long.MAX_VALUE);
}
private static String format(long value) {
return NumberFormat.getNumberInstance().format(value);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment