Skip to content

Commit

Permalink
Added cached memory to system memory reporting
Browse files Browse the repository at this point in the history
Add cached memory to system memory reporting:
1. Added a new cached member to SysMemInfo in UVE
2. Calculate used_sys_mem in stat by subtracting buffers and cached
   from used

Change-Id: Ie5aedf41a6400b6ff07ff170c789d57ccdc9285d
Closes-Bug: #1572279
(cherry picked from commit 1635040)
  • Loading branch information
Megh Bhatt committed May 9, 2016
1 parent 418b910 commit 88ccae2
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 23 deletions.
5 changes: 4 additions & 1 deletion src/base/cpuinfo.cc
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,9 @@ static void SystemMemInfo(SystemMemInfo &info) {
// MemFree: 90333184 kB
file >> tmp; file >> info.free; file >> tmp;
// Buffers: 1029924 kB
file >> tmp; file >> info.buffers;
file >> tmp; file >> info.buffers; file >> tmp;
// Cached: 10290012 kB
file >> tmp; file >> info.cached;
// Used = Total - Free
info.used = info.total - info.free;
}
Expand Down Expand Up @@ -179,6 +181,7 @@ void CpuLoadData::FillCpuInfo(CpuLoadInfo &cpu_load_info, bool system) {
sys_mem_info.set_used(info.sys_mem_info.used);
sys_mem_info.set_free(info.sys_mem_info.free);
sys_mem_info.set_buffers(info.sys_mem_info.buffers);
sys_mem_info.set_cached(info.sys_mem_info.cached);
cpu_load_info.set_sys_mem_info(sys_mem_info);
}
}
Expand Down
1 change: 1 addition & 0 deletions src/base/cpuinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ struct SystemMemInfo {
uint32_t used;
uint32_t free;
uint32_t buffers;
uint32_t cached;
};

struct CpuInfo {
Expand Down
1 change: 1 addition & 0 deletions src/base/sandesh/cpuinfo.sandesh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ struct SysMemInfo {
2: u32 used;
3: u32 free;
4: u32 buffers;
5: u32 cached;
}

struct CpuLoadInfo {
Expand Down
21 changes: 9 additions & 12 deletions src/config/common/vnc_cpu_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def __init__(self, module_id, instance_id, sysinfo_req, sandesh,
self._vms = 0
self._pvms = 0
self._load_avg = (0, 0, 0)
self._phymem_usage = (0, 0, 0, 0)
self._virtual_memory = None
self._phymem_buffers = 0
self._num_cpus = 0
self._cpu_share = 0
Expand Down Expand Up @@ -78,13 +78,9 @@ def cpu_stats(self):
self._load_avg = load_avg

# collect systemmeory info
phymem_usage = psutil.phymem_usage()
if (phymem_usage != self._phymem_usage):
self._phymem_usage = phymem_usage

phymem_buffers = psutil.phymem_buffers()
if (phymem_buffers != self._phymem_buffers):
self._phymem_buffers = phymem_buffers
virtual_memory = psutil.virtual_memory()
if (virtual_memory != self._virtual_memory):
self._virtual_memory = virtual_memory

if (self._new_ip != self._curr_ip):
self._new_ip = self.get_config_node_ip()
Expand Down Expand Up @@ -129,10 +125,11 @@ def _send_cpustats(self):
if self._sysinfo:
# populate system memory details
mod_cpu.cpu_info.sys_mem_info = SysMemInfo()
mod_cpu.cpu_info.sys_mem_info.total = self._phymem_usage[0] / 1024
mod_cpu.cpu_info.sys_mem_info.used = self._phymem_usage[1] / 1024
mod_cpu.cpu_info.sys_mem_info.free = self._phymem_usage[2] / 1024
mod_cpu.cpu_info.sys_mem_info.buffers = self._phymem_buffers / 1024
mod_cpu.cpu_info.sys_mem_info.total = self._virtual_memory.total / 1024
mod_cpu.cpu_info.sys_mem_info.used = self._virtual_memory.used / 1024
mod_cpu.cpu_info.sys_mem_info.free = self._virtual_memory.free / 1024
mod_cpu.cpu_info.sys_mem_info.buffers = self._virtual_memory.buffers / 1024
mod_cpu.cpu_info.sys_mem_info.cached = self._virtual_memory.cached / 1024

# populate CPU Load avg
mod_cpu.cpu_info.cpuload = CpuLoadAvg()
Expand Down
10 changes: 6 additions & 4 deletions src/opserver/cpuinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ def _get_num_cpu(self):
#end _get_num_cpu

def _get_sys_mem_info(self):
phymem_info = psutil.phymem_usage()
virtual_memory = psutil.virtual_memory()
sys_mem_info = SysMemInfo()
sys_mem_info.total = phymem_info[0]/1024
sys_mem_info.used = phymem_info[1]/1024
sys_mem_info.free = phymem_info[2]/1024
sys_mem_info.total = virtual_memory.total/1024
sys_mem_info.used = virtual_memory.used/1024
sys_mem_info.free = virtual_memory.free/1024
sys_mem_info.buffers = virtual_memory.buffers/1024
sys_mem_info.cached = virtual_memory.cached/1024
return sys_mem_info
#end _get_sys_mem_info

Expand Down
10 changes: 6 additions & 4 deletions src/vnsw/agent/uve/cpuinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ def _get_num_cpu(self):
#end _get_num_cpu

def _get_sys_mem_info(self):
phymem_info = psutil.phymem_usage()
virtual_memory = psutil.virtual_memory()
sys_mem_info = SysMemInfo()
sys_mem_info.total = phymem_info[0]/1024
sys_mem_info.used = phymem_info[1]/1024
sys_mem_info.free = phymem_info[2]/1024
sys_mem_info.total = virtual_memory.total/1024
sys_mem_info.used = virtual_memory.used/1024
sys_mem_info.free = virtual_memory.free/1024
sys_mem_info.buffers = virtual_memory.buffers/1024
sys_mem_info.cached = virtual_memory.cached/1024
return sys_mem_info
#end _get_sys_mem_info

Expand Down
8 changes: 6 additions & 2 deletions src/vnsw/agent/uve/vrouter_uve_entry_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -723,7 +723,9 @@ bool VrouterUveEntryBase::SendVrouterMsg() {
//have changed since last send
stats.set_cpu_share(cpu_load_info.get_cpu_share());
stats.set_virt_mem(cpu_load_info.get_meminfo().get_virt());
stats.set_used_sys_mem(cpu_load_info.get_sys_mem_info().get_used());
const SysMemInfo &sys_mem_info(cpu_load_info.get_sys_mem_info());
stats.set_used_sys_mem(sys_mem_info.get_used() -
sys_mem_info.get_buffers() - sys_mem_info.get_cached());
stats.set_one_min_avg_cpuload(
cpu_load_info.get_cpuload().get_one_min_avg());
stats.set_res_mem(cpu_load_info.get_meminfo().get_res());
Expand Down Expand Up @@ -772,7 +774,9 @@ void VrouterUveEntryBase::BuildAndSendComputeCpuStateMsg(const CpuLoadInfo &info
ainfo.set_cpu_share(info.get_cpu_share());
ainfo.set_mem_virt(info.get_meminfo().get_virt());
ainfo.set_mem_res(info.get_meminfo().get_res());
ainfo.set_used_sys_mem(info.get_sys_mem_info().get_used());
const SysMemInfo &sys_mem_info(info.get_sys_mem_info());
ainfo.set_used_sys_mem(sys_mem_info.get_used() -
sys_mem_info.get_buffers() - sys_mem_info.get_cached());
ainfo.set_one_min_cpuload(info.get_cpuload().get_one_min_avg());
aciv.push_back(ainfo);
astate.set_cpu_info(aciv);
Expand Down

0 comments on commit 88ccae2

Please sign in to comment.