Class: PumaWorkerKiller::PumaMemory

Inherits:
Object
  • Object
show all
Defined in:
lib/puma_worker_killer/puma_memory.rb

Instance Method Summary collapse

Constructor Details

#initialize(master = nil) ⇒ PumaMemory

Returns a new instance of PumaMemory.



3
4
5
# File 'lib/puma_worker_killer/puma_memory.rb', line 3

def initialize(master = nil)
  @master  = master || get_master
end

Instance Method Details

#get_total(workers = set_workers) ⇒ Object Also known as: get_total_memory

Will refresh @workers



54
55
56
57
58
# File 'lib/puma_worker_killer/puma_memory.rb', line 54

def get_total(workers = set_workers)
  master_memory = GetProcessMem.new(Process.pid).mb
  worker_memory = workers.map {|_, mem| mem }.inject(&:+) || 0
  worker_memory + master_memory
end

#largest_workerObject



43
44
45
46
# File 'lib/puma_worker_killer/puma_memory.rb', line 43

def largest_worker
  largest_worker, _ = workers.to_a.last
  largest_worker
end

#largest_worker_memoryObject



48
49
50
51
# File 'lib/puma_worker_killer/puma_memory.rb', line 48

def largest_worker_memory
  _, largest_memory_used = workers.to_a.last
  largest_memory_used
end

#masterObject



7
8
9
# File 'lib/puma_worker_killer/puma_memory.rb', line 7

def master
  @master
end

#running?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/puma_worker_killer/puma_memory.rb', line 29

def running?
  @master && workers.any?
end

#sizeObject



11
12
13
# File 'lib/puma_worker_killer/puma_memory.rb', line 11

def size
  workers.size
end

#smallest_workerObject



33
34
35
36
# File 'lib/puma_worker_killer/puma_memory.rb', line 33

def smallest_worker
  smallest, _ = workers.to_a.first
  smallest
end

#smallest_worker_memoryObject



38
39
40
41
# File 'lib/puma_worker_killer/puma_memory.rb', line 38

def smallest_worker_memory
  _, smallest_mem = workers.to_a.first
  smallest_mem
end

#term_largest_workerObject



19
20
21
22
23
# File 'lib/puma_worker_killer/puma_memory.rb', line 19

def term_largest_worker
  largest_worker.term
#   Process.wait(largest_worker.pid)
# rescue Errno::ECHILD
end

#term_worker(worker) ⇒ Object



15
16
17
# File 'lib/puma_worker_killer/puma_memory.rb', line 15

def term_worker(worker)
  worker.term
end

#workersObject



61
62
63
# File 'lib/puma_worker_killer/puma_memory.rb', line 61

def workers
  @workers || set_workers
end

#workers_stopped?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/puma_worker_killer/puma_memory.rb', line 25

def workers_stopped?
  !running?
end