Class: PumaWorkerKiller::PumaMemory
- Inherits:
-
Object
- Object
- PumaWorkerKiller::PumaMemory
- Defined in:
- lib/puma_worker_killer/puma_memory.rb
Instance Method Summary collapse
-
#get_total(workers = set_workers) ⇒ Object
(also: #get_total_memory)
Will refresh @workers.
-
#initialize(master = nil) ⇒ PumaMemory
constructor
A new instance of PumaMemory.
- #largest_worker ⇒ Object
- #largest_worker_memory ⇒ Object
- #master ⇒ Object
- #running? ⇒ Boolean
- #size ⇒ Object
- #smallest_worker ⇒ Object
- #smallest_worker_memory ⇒ Object
- #term_largest_worker ⇒ Object
- #term_worker(worker) ⇒ Object
- #workers ⇒ Object
- #workers_stopped? ⇒ Boolean
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_worker ⇒ Object
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_memory ⇒ Object
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 |
#master ⇒ Object
7 8 9 |
# File 'lib/puma_worker_killer/puma_memory.rb', line 7 def master @master end |
#running? ⇒ Boolean
29 30 31 |
# File 'lib/puma_worker_killer/puma_memory.rb', line 29 def running? @master && workers.any? end |
#size ⇒ Object
11 12 13 |
# File 'lib/puma_worker_killer/puma_memory.rb', line 11 def size workers.size end |
#smallest_worker ⇒ Object
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_memory ⇒ Object
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_worker ⇒ Object
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 |
#workers ⇒ Object
61 62 63 |
# File 'lib/puma_worker_killer/puma_memory.rb', line 61 def workers @workers || set_workers end |
#workers_stopped? ⇒ Boolean
25 26 27 |
# File 'lib/puma_worker_killer/puma_memory.rb', line 25 def workers_stopped? !running? end |