■
最近は、急なトラブル対応やなにやらで平日の仕事が進まないので、自宅で集中して仕事を片付けるモードに。サーバー群のリソース状況調査してそれを元にうんたらかんたら。
現状のリソース監視では、あるオープンソースのアプリを使っているのですが、ページキャッシュとしてCachedの値が使われていました(まぁ、snmpの取り方次第なんだけれども…)。
今回はMemFree+Inactiveが欲しいなぁと思ったので、RubyのCapistranoで取ってくるタスクを書いてみました。これはらくちん。
task :list_mem, :roles => target_all do s = {} run %Q$egrep '(MemFree|Inactive)' /proc/meminfo$ do |ch, stream, output| host = ch.connection.host.intern s[host] ||= {} output.each_line do |line| next unless line =~ /(\w+):\s*(\d+)\s*kB/ s[host][$1.intern] = Integer($2) / (1024.0 * 1024) end end s.each_pair do |k, v| puts "%8s => %4.1f (MemFree: %4.1f, Inactive: %4.1f)" % [ k, v[:MemFree] + v[:Inactive], v[:MemFree], v[:Inactive], ] end end
で
hoge1 => 10.5 (MemFree: 9.8, Inactive: 0.7) foo1 => 1.3 (MemFree: 1.1, Inactive: 0.2) hoge2 => 6.1 (MemFree: 3.0, Inactive: 3.1) bar1 => 3.7 (MemFree: 0.4, Inactive: 3.3)