class ForemanMaintain::Utils::Disk::IO::FileSystem

Attributes

dir[RW]
name[RW]

Public Class Methods

new(dir, name = '') click to toggle source
# File lib/foreman_maintain/utils/disk/io/file_system.rb, line 10
def initialize(dir, name = '')
  @dir = dir
  @name = name
end

Public Instance Methods

read_speed() click to toggle source
# File lib/foreman_maintain/utils/disk/io/file_system.rb, line 15
def read_speed
  @read_speed ||= convert_kb_to_mb(fio)
end
unit() click to toggle source
# File lib/foreman_maintain/utils/disk/io/file_system.rb, line 19
def unit
  @unit ||= 'MB/sec'
end

Private Instance Methods

convert_kb_to_mb(val) click to toggle source
# File lib/foreman_maintain/utils/disk/io/file_system.rb, line 34
def convert_kb_to_mb(val)
  val / 1024
end
fio() click to toggle source

In fio command, –direct option bypass the cache page

# File lib/foreman_maintain/utils/disk/io/file_system.rb, line 26
def fio
  cmd = "fio --name=job1 --rw=read --size=1g --output-format=json\
          --directory=#{dir} --direct=1"
  stdout = execute(cmd)
  output = JSON.parse(stdout)
  @fio ||= output['jobs'].first['read']['bw'].to_i
end