public void output(String[] args) throws SigarException { Mem mem = this.sigar.getMem(); Swap swap = this.sigar.getSwap(); Object[] header = new Object[] { "total", "used", "free" }; Object[] memRow = new Object[] { format(mem.getTotal()), format(mem.getUsed()), format(mem.getFree()) }; Object[] actualRow = new Object[] { format(mem.getActualUsed()), format(mem.getActualFree()) }; Object[] swapRow = new Object[] { format(swap.getTotal()), format(swap.getUsed()), format(swap.getFree()) }; printf("%18s %10s %10s", header); printf("Mem: %10ld %10ld %10ld", memRow); //e.g. linux if ((mem.getUsed() != mem.getActualUsed()) || (mem.getFree() != mem.getActualFree())) { printf("-/+ buffers/cache: " + "%10ld %10d", actualRow); } printf("Swap: %10ld %10ld %10ld", swapRow); printf("RAM: %10ls", new Object[] { mem.getRam() + "MB" }); }
private void alertMem(Mem m) { Configure conf = Configure.getInstance(); if(conf.mem_alert_enabled==false) return; long fmem = m.getActualFree(); float memrate = (float) m.getUsedPercent(); long now = System.currentTimeMillis(); if (memrate >= conf.mem_fatal_pct) { if (now >= mem_last_fatal + conf.mem_alert_interval_ms) { DataProxy.sendAlert(AlertLevel.FATAL, "FATAL_MEMORY_HIGH", "fatal mem usage free=" + prt(fmem) + " rate=" + memrate + "%", null); mem_last_fatal = now; } return; } if (memrate >= conf.mem_warning_pct) { if (now >= mem_last_warning + conf.mem_alert_interval_ms) { DataProxy.sendAlert(AlertLevel.WARN, "WARNING_MEMORY_HIGH", "warning mem usage free=" + prt(fmem) + " rate=" + memrate + "%", null); mem_last_warning = now; } return; } }
@Override public void emit(ServiceEmitter emitter) { Mem mem = null; try { mem = sigar.getMem(); } catch (SigarException e) { log.error(e, "Failed to get Mem"); } if (mem != null) { final Map<String, Long> stats = ImmutableMap.of( "sys/mem/max", mem.getTotal(), "sys/mem/used", mem.getUsed(), "sys/mem/actual/used", mem.getActualUsed(), "sys/mem/actual/free", mem.getActualFree() ); final ServiceMetricEvent.Builder builder = builder(); MonitorUtils.addDimensionsToBuilder(builder, dimensions); for (Map.Entry<String, Long> entry : stats.entrySet()) { emitter.emit(builder.build(entry.getKey(), entry.getValue())); } } } }
/** * {@inheritDoc} */ @Override public void sample(final IMonitoringController monitoringCtr) throws SigarException { if (!monitoringCtr.isMonitoringEnabled()) { return; } if (!monitoringCtr.isProbeActivated(SignatureFactory.createMemSwapSignature())) { return; } final Mem mem = this.sigar.getMem(); final Swap swap = this.sigar.getSwap(); final MemSwapUsageRecord r = new MemSwapUsageRecord( monitoringCtr.getTimeSource().getTime(), monitoringCtr.getHostname(), mem.getTotal(), mem.getActualUsed(), mem.getActualFree(), swap.getTotal(), swap.getUsed(), swap.getFree()); monitoringCtr.newMonitoringRecord(r); } }
alertMem(m); long tmem = m.getTotal(); long fmem = m.getActualFree(); long umem = m.getActualUsed(); float memrate = (float) m.getUsedPercent();
/** * Execute the collector to get the system info model. * * @return SystemInfo in current time */ public synchronized SystemInfo execute() { SystemInfo systemInfo = new SystemInfo(); systemInfo.setCollectTime(System.currentTimeMillis()); try { BandWidth networkUsage = getNetworkUsage(); BandWidth bandWidth = networkUsage.adjust(prev.getBandWidth()); systemInfo.setBandWidth(bandWidth); systemInfo.setCPUUsedPercentage((float) sigar.getCpuPerc().getCombined() * 100); Cpu cpu = sigar.getCpu(); systemInfo.setTotalCpuValue(cpu.getTotal()); systemInfo.setIdleCpuValue(cpu.getIdle()); Mem mem = sigar.getMem(); systemInfo.setTotalMemory(mem.getTotal() / 1024L); systemInfo.setFreeMemory(mem.getActualFree() / 1024L); systemInfo.setSystem(OperatingSystem.IS_WIN32 ? SystemInfo.System.WINDOW : SystemInfo.System.LINUX); systemInfo.setCustomValues(getCustomMonitorData()); } catch (Throwable e) { LOGGER.error("Error while getting system perf data:{}", e.getMessage()); LOGGER.debug("Error trace is ", e); } prev = systemInfo; return systemInfo; }
@Override public Long getValue() { return getSnapshot().getTotal(); } });
@Override public void emit(ServiceEmitter emitter) { Mem mem = null; try { mem = sigar.getMem(); } catch (SigarException e) { log.error(e, "Failed to get Mem"); } if (mem != null) { final Map<String, Long> stats = ImmutableMap.of( "sys/mem/max", mem.getTotal(), "sys/mem/used", mem.getUsed() ); final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); for (Map.Entry<String, Long> entry : stats.entrySet()) { emitter.emit(builder.build(entry.getKey(), entry.getValue())); } } } }
long actualFree = mem.getActualFree() / 1024 / 1024; long actualUsed = mem.getActualUsed() / 1024 / 1024; long per1Mem = (actualFree + actualUsed) / 100; system.out.println((((int) actualFree / per1Mem) * 1.0) / 100);
@Override public Long getValue() { return getSnapshot().getUsed(); } });
try { long free = new Sigar().getMem().getActualFree() - reservedMemory; long perProcessTotalMemory = Math.max(free / processCount, MIN_PER_PROCESS_MEM_SIZE); desirableXmx = (long) (perProcessTotalMemory * 0.5);
@Override public Long getValue() { return getSnapshot().getFree(); } });
@Override public Long getValue() throws SigarException { return context.get().getActualUsed(); } };
@Override public Double getValue() { return getSnapshot().getUsedPercent(); } });
public long ramInMB() { try { return sigar.getMem().getRam(); } catch (SigarException e) { return -1L; } }
@Override public void emit(ServiceEmitter emitter) { Mem mem = null; try { mem = sigar.getMem(); } catch (SigarException e) { log.error(e, "Failed to get Mem"); } if (mem != null) { final Map<String, Long> stats = ImmutableMap.of( "sys/mem/max", mem.getTotal(), "sys/mem/used", mem.getUsed(), "sys/mem/actual/used", mem.getActualUsed(), "sys/mem/actual/free", mem.getActualFree() ); final ServiceMetricEvent.Builder builder = builder(); MonitorUtils.addDimensionsToBuilder(builder, dimensions); for (Map.Entry<String, Long> entry : stats.entrySet()) { emitter.emit(builder.build(entry.getKey(), entry.getValue())); } } } }
/** * {@inheritDoc} */ @Override public void sample(final IMonitoringController monitoringCtr) throws SigarException { if (!monitoringCtr.isMonitoringEnabled()) { return; } if (!monitoringCtr.isProbeActivated(SignatureFactory.createMemSwapSignature())) { return; } final Mem mem = this.sigar.getMem(); final Swap swap = this.sigar.getSwap(); final MemSwapUsageRecord r = new MemSwapUsageRecord( monitoringCtr.getTimeSource().getTime(), monitoringCtr.getHostname(), mem.getTotal(), mem.getActualUsed(), mem.getActualFree(), swap.getTotal(), swap.getUsed(), swap.getFree()); monitoringCtr.newMonitoringRecord(r); } }
@Override public Check check() { if(instance == null){ return new Check(getName(), "Could not check memory usage", Status.DOWN); } try { final Mem mem = instance.getMem(); final long free = mem.getActualFree(); final long total = mem.getTotal(); final double ratio = free * 1. / total * 1.; Status status = Status.UP; if (ratio < (1. - threshold)) { status = Status.DOWN; } return new Check( getName(), String.format("System Memory is '%.2f %% free' (Actual Free %d GB / Total %d GB).", ratio * 100, SizeUnit.BYTES.toGigabytes(free), SizeUnit.BYTES.toGigabytes(total)), status); } catch (SigarException e) { LOGGER.warning(HealthCheckCodes.HS_CANNOT_FETCH_METRICS, "Can not fetch system metrics for RAM", e); return new Check("System Memory", "Could not check memory usage due to error:" + e.getMessage(), Status.DOWN); } }
@Override public Long getValue() { return getSnapshot().getTotal(); } });