-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmemory_use.lua
78 lines (60 loc) · 2 KB
/
memory_use.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
--functions related to lookups of memory usage
function LookupMemInfo()
local S, str, toks
local totalmem=0
local availmem=0
local cachedmem, buffermem
local mem_perc
S=stream.STREAM("/proc/meminfo", "r");
if S~= nil
then
str=S:readln()
while str ~= nil
do
toks=strutil.TOKENIZER(str, ":")
name=toks:next()
value=strutil.trim(toks:next())
toks=strutil.TOKENIZER(value, "\\S")
value=toks:next()
if name=="MemTotal" then totalmem=tonumber(value) end
if name=="MemFree" then freemem=tonumber(value) end
if name=="MemAvailable" then availmem=tonumber(value) end
if name=="Cached" then cachedmem=tonumber(value) end
if name=="Buffers" then buffermem=tonumber(value) end
str=S:readln()
end
S:close()
freemem=freemem + cachedmem + buffermem
else
availmem=sys.freemem() + sys.buffermem()
totalmem=sys.totalmem()
end
display_values["usedmem"]=strutil.toMetric(totalmem-(availmem))
display_values["freemem"]=strutil.toMetric(freemem)
display_values["availmem"]=strutil.toMetric(availmem)
display_values["totalmem"]=strutil.toMetric(totalmem)
display_values["cachedmem"]=strutil.toMetric(cachedmem)
mem_perc=freemem * 100 / totalmem
AddDisplayValue("free", mem_perc, "% 3.1f", usage_color_map)
mem_perc=availmem * 100 / totalmem
AddDisplayValue("avail", mem_perc, "% 3.1f", usage_color_map)
mem_perc=100.0 - (freemem * 100 / totalmem)
AddDisplayValue("mem", mem_perc, "% 3.1f", usage_color_map)
mem_perc=100.0 - (availmem * 100 / totalmem)
AddDisplayValue("memuse", mem_perc, "% 3.1f", usage_color_map)
mem_perc=cachedmem * 100 / totalmem
AddDisplayValue("cmem", mem_perc, "% 3.1f", usage_color_map)
--do all the same for swap
availmem=sys.freeswap()
totalmem=sys.totalswap()
display_values["usedswap"]=strutil.toMetric(totalmem-availmem)
display_values["freeswap"]=strutil.toMetric(availmem)
display_values["totalswap"]=strutil.toMetric(totalmem)
if totalmem > 0
then
mem_perc=100.0 - (availmem * 100 / totalmem)
else
mem_perc=0
end
AddDisplayValue("swap", mem_perc, "% 3.1f", usage_color_map)
end