class Mool::Cpu
Attributes
cores[RW]
cpu_name[RW]
gnice[RW]
guest[RW]
id[RW]
idle[RW]
iowait[RW]
irq[RW]
model_name[RW]
nice[RW]
soft[RW]
steal[RW]
sys[RW]
total[RW]
usr[RW]
Public Class Methods
all()
click to toggle source
# File lib/mool/cpu.rb, line 82 def self.all Mool::Cpu.cpuinfo.map { |key, value| Mool::Cpu.new(key, value) } end
cpuinfo()
click to toggle source
# File lib/mool/cpu.rb, line 52 def self.cpuinfo cpu_info = {} mpstat = Mool::Command.mpstat.split("\n\n")[2].split("\n").map do |i| i.gsub(/^\S+:/, '').strip.split(/\s+/) end mpstat_vars = mpstat.shift mpstat_vars.shift mpstat.each do |data| res = {} core_name = data.shift data.each_with_index { |d, i| res.merge!(mpstat_vars[i] => d) } cpu_info.merge!(core_name => res) end Mool::Command.cpuinfo.gsub(/([^\n])\n([^\n])/, '\1 \2').scan(/processor\t*: (\d+).*model name\t*: (.*) stepping.*cpu cores\t*: (\d+)/).each do |v| cpu_info[v[0]]['model_name'] = v[1] cpu_info[v[0]]['cpu_cores'] = v[2] end cpu_info end
new(process_number, opt={})
click to toggle source
- “all”, “1”, “2”
# File lib/mool/cpu.rb, line 20 def initialize(process_number, opt={}) result = Mool::Cpu.processors unless result.include?(process_number.to_s) raise "Cpu name incorrect!. Posible values: #{result.join(', ')}" end result = opt.empty? ? Mool::Cpu.cpuinfo[process_number.to_s] : opt @cpu_name = "cpu_#{process_number}" @id = process_number @model_name = result['model_name'] @cores = result['cpu_cores'].to_i @usr = result['%usr'].to_f @nice = result['%nice'].to_f @sys = result['%sys'].to_f # This is kernel % @iowait = result['%iowait'].to_f @irq = result['%irq'].to_f @soft = result['%soft'].to_f @steal = result['%steal'].to_f @guest = result['%guest'].to_f @gnice = result['%gnice'].to_f @idle = result['%idle'].to_f @total = [@usr, @nice, @sys, @iowait, @irq, @soft, @steal, @guest].sum end
processors()
click to toggle source
# File lib/mool/cpu.rb, line 78 def self.processors Mool::Command.cpuinfo.scan(/processor\t*: (\d+)/).flatten + ['all'] end