passenger_mon 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/bin/passenger_mon +3 -16
  2. metadata +25 -47
@@ -32,7 +32,7 @@ end.parse!
32
32
  # set option defaults
33
33
  options[:interval] ||= 30
34
34
  options[:threshold] ||= 400
35
- options[:log] ||= "/var/log/passenger_mong.log"
35
+ options[:log] ||= "/var/log/passenger_mon.log"
36
36
  options[:pidfile] ||= "/tmp/passenger_mon.pid"
37
37
  options[:threshold] = options[:threshold].to_i
38
38
 
@@ -62,28 +62,15 @@ Signal.trap('INT') do
62
62
  abort("\n")
63
63
  end
64
64
 
65
- kill_attempts = {}
66
-
67
65
  loop do
68
66
  logger.info "Checking for naughty processes..."
69
67
 
70
- results = `passenger-memory-stats`
71
- results = results.split("\n").grep(/Rails/)
68
+ results = `passenger-memory-stats 2> /dev/null`
69
+ results = results.split("\n").grep(/Rack/)
72
70
 
73
71
  results.each do |res|
74
72
  pid, vm_size, vm_size_label, mem_res, *bullshit = res.strip.split(/\s+/)
75
-
76
- # ultimately, we need to have some logic in here that decides when
77
- # it's appropriate to do a kill -9. If a process has truly run out of
78
- # control (say, it's trying to load a massive table into memory at once)
79
- # then we need to be more aggressive with how we terminate the process.
80
73
  if mem_res.to_i >= options[:threshold]
81
- if kill_attempts.has_key?(pid)
82
- kill_attempts[pid] += 1
83
- else
84
- kill_attempts[pid] = 1
85
- end
86
-
87
74
  logger.info "Killing process #{pid} using #{mem_res.to_i}mb of ram (Threshold=#{options[:threshold]}mb)"
88
75
 
89
76
  # passenger treats the USR1 signal as a graceful shutdown.
metadata CHANGED
@@ -1,76 +1,54 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: passenger_mon
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Alex Sharp
14
9
  - Rick Bradley
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2011-03-09 00:00:00 -08:00
20
- default_executable:
13
+ date: 2012-10-01 00:00:00.000000000 Z
21
14
  dependencies: []
22
-
23
- description: Need to control the memory footprint of your passenger processes. You need passenger_mon, bro.
24
- email:
15
+ description: When you need to control the memory footprint of your passenger processes
16
+ email:
25
17
  - ajsharp@gmail.com
26
- executables:
18
+ executables:
27
19
  - passenger_mon
28
20
  extensions: []
29
-
30
- extra_rdoc_files:
21
+ extra_rdoc_files:
31
22
  - README.md
32
23
  - MIT-LICENSE
33
- files:
24
+ files:
34
25
  - README.md
35
26
  - MIT-LICENSE
36
- - bin/passenger_mon
37
- has_rdoc: true
27
+ - !binary |-
28
+ YmluL3Bhc3Nlbmdlcl9tb24=
38
29
  homepage: https://github.com/ajsharp/passenger_mon
39
30
  licenses: []
40
-
41
31
  post_install_message:
42
32
  rdoc_options: []
43
-
44
- require_paths:
33
+ require_paths:
45
34
  - lib
46
- required_ruby_version: !ruby/object:Gem::Requirement
35
+ required_ruby_version: !ruby/object:Gem::Requirement
47
36
  none: false
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- hash: 57
52
- segments:
53
- - 1
54
- - 8
55
- - 7
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
56
40
  version: 1.8.7
57
- required_rubygems_version: !ruby/object:Gem::Requirement
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
42
  none: false
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- hash: 23
63
- segments:
64
- - 1
65
- - 3
66
- - 6
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
67
46
  version: 1.3.6
68
47
  requirements: []
69
-
70
48
  rubyforge_project:
71
- rubygems_version: 1.3.7
49
+ rubygems_version: 1.8.24
72
50
  signing_key:
73
51
  specification_version: 3
74
- summary: Rails process monitoring for passenger 3
52
+ summary: Rails process memory monitoring for passenger 3
75
53
  test_files: []
76
-
54
+ has_rdoc: