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 + "]"; } }