Class: PosixPsutil::Memory

Inherits:
Object
  • Object
show all
Defined in:
lib/posixpsutil/linux/system.rb

Class Method Summary collapse

Class Method Details

.swap_memoryObject



230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
# File 'lib/posixpsutil/linux/system.rb', line 230

def self.swap_memory()
  meminfo = OpenStruct.new
  swaps = File.new('/proc/swaps')
  swaps.readline() # ignore column header
  _, _, total, used, _ = swaps.readline().split(" ")
  # values are expressed in 4 KB, we want bytes instead
  meminfo.total = total.to_i * 1024
  meminfo.used = used.to_i * 1024

  
  meminfo.free = meminfo.total - meminfo.used
  meminfo.percent = COMMON::usage_percent(meminfo.used, meminfo.total, 1)
  
  IO.readlines('/proc/vmstat').each do |line|
    # values are expressed in 4 KB, we want bytes instead
    if line.start_with?('pswpin')
      meminfo.sin = line.split(' ')[1].to_i * LibPosixPsutil::PAGE_SIZE
    elsif line.start_with?('pswpout')
      meminfo.sout = line.split(' ')[1].to_i * LibPosixPsutil::PAGE_SIZE
    end
  end

  meminfo
end

.virtual_memoryObject



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
# File 'lib/posixpsutil/linux/system.rb', line 202

def self.virtual_memory()
  meminfo = OpenStruct.new
  IO.readlines('/proc/meminfo').each do |line|
    pair = line.split(':')
    case pair[0]
      when 'Cached'
        # values are expressed in KB, we want bytes instead
        meminfo.cached = pair[1].to_i * 1024
      when 'Active'
        meminfo.active = pair[1].to_i * 1024
      when 'Inactive'
        meminfo.inactive = pair[1].to_i * 1024
      when 'Buffers'
        meminfo.buffers = pair[1].to_i * 1024
      when 'MemFree'
        meminfo.free = pair[1].to_i * 1024
      when 'MemTotal'
        meminfo.total = pair[1].to_i * 1024
    end
  end

  meminfo.used = meminfo.total - meminfo.free
  meminfo.available = meminfo.free + meminfo.cached + meminfo.buffers
  meminfo.percent = COMMON::usage_percent((
    meminfo.total - meminfo.available) , meminfo.total, 1)
  meminfo
end