package com.sohu.cache.server.data;
import org.apache.commons.lang.math.NumberUtils;
/**
* 内存使用情况
*/
public class Memory implements LineParser{
public static final String FLAG = "MEM";
//总内存,单位M
private float total;
//总空闲内存,单位M
private float totalFree;
//buffer,单位M
private float buffer;
//cache,单位M
private float cache;
//swap,单位M
private float swap;
//swap空闲内存,单位M
private float swapFree;
/**
* line format:
* MEM,Memory MB bx-50-13,memtotal,hightotal,lowtotal,swaptotal,memfree,highfree,lowfree,swapfree,memshared,cached,active,bigfree,buffers,swapcached,inactive
* MEM,T0001,48288.7,0.0,48288.7,8189.4,132.6,0.0,132.6,8189.1,-0.0,24210.6,30819.7,-1.0,153.9,0.0,16451.1
*/
public void parse(String line, String timeKey) throws Exception{
if(line.startsWith(FLAG)) {
String[] items = line.split(",");
if(!items[1].equals(timeKey)) {
return;
}
total = NumberUtils.toFloat(items[2]);
swap = NumberUtils.toFloat(items[5]);
totalFree = NumberUtils.toFloat(items[6]);
swapFree = NumberUtils.toFloat(items[9]);
cache = NumberUtils.toFloat(items[11]);
buffer = NumberUtils.toFloat(items[14]);
}
}
public float getTotal() {
return total;
}
public float getTotalFree() {
return totalFree;
}
public float getBuffer() {
return buffer;
}
public float getCache() {
return cache;
}
public float getSwap() {
return swap;
}
public float getSwapFree() {
return swapFree;
}
@Override
public String toString() {
return "Memory [total=" + total + ", totalFree=" + totalFree
+ ", buffer=" + buffer + ", cache=" + cache + ", swap=" + swap
+ ", swapFree=" + swapFree + "]";
}
}