passenger_memory_status 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a5cd7a5736dbc00f86a3cf72ad2edc95384536d
4
- data.tar.gz: d2b40653d090fb9d17edfa82f1739d69ef1bb97d
3
+ metadata.gz: b80afc398f91393eaa5434a5b4ceeb6ceba971c1
4
+ data.tar.gz: 07dd8884889f95b3d28dde19b0328c8df4a0944b
5
5
  SHA512:
6
- metadata.gz: 4a69e6f68bf128cec6cf03453aba5ec3608b6467361a22f6563138d11edbce5c62c334c4af3088360c2acf7dee94a14fee389271d76d1fbbb7a3b65c7cb349b4
7
- data.tar.gz: 420be67127990170227fe48e3f272657ca456b214b8e671c859a927c885f3545cb3c623eb29c4398da6e31f7a0035e42eb5d19b534e023e8811abbbe031640ec
6
+ metadata.gz: 3ddd5bc3d2b79d760c836975c66b007883c29d4b44f6d31498612631fd8fd074710dcbbcd83d13ef3a10334ca4dc1d845e4da327229805215872ed3376901bb7
7
+ data.tar.gz: 4bc20d4519d3edc988dddd486589452f86de289fdb2130b4fe553ee8cad81929d6671f3f8ac41b33f3acc27c1fc005cc4335c1ce46d9212a6afcb9b3f5039d7d
data/README.md CHANGED
@@ -22,7 +22,9 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ PassengerMemoryStatus::MemoryStatus.run()
26
+
27
+ currently the default memory is 500MB.If the passenger process memory increases more than default memory the process will be killed.
26
28
 
27
29
  ## Development
28
30
 
@@ -8,15 +8,20 @@ module PassengerMemoryStatus
8
8
  #
9
9
  MEMORY_LIMIT = 500
10
10
 
11
- def self.run()
12
- new.bloated_passenger_process
11
+ def initialize(options = {})
12
+ @memory_limit = options[:memory] || MEMORY_LIMIT
13
+ @logger = Logger.new('passenger_memory_status.log')
14
+ end
15
+
16
+ def self.run(options = {})
17
+ new(options).bloated_passenger_process
13
18
  end
14
19
 
15
20
  # Find and kill the Bloated Passenger Process
16
21
  #
17
22
  def bloated_passenger_process
18
23
 
19
- unless passenger_installed?
24
+ if passenger_installed?
20
25
 
21
26
  `passenger-memory-stats`.each_line do |process|
22
27
 
@@ -24,9 +29,12 @@ module PassengerMemoryStatus
24
29
 
25
30
  pid, pid_memory = getpid(process)
26
31
 
27
- if pid_memory > MEMORY_LIMIT.to_i
28
- puts "Found bloated process #{pid} with size #{pid_memory.to_s}"
32
+ if pid_memory > @memory_limit.to_i
33
+
34
+ @logger.info "Found bloated process #{pid} with size #{pid_memory.to_s}"
35
+
29
36
  sleep 8
37
+
30
38
  graceful(pid)
31
39
 
32
40
  if Process.running?(pid)
@@ -36,6 +44,8 @@ module PassengerMemoryStatus
36
44
  end
37
45
  end
38
46
  end
47
+ else
48
+ @logger.info "The Command `passenger-memory-stats` is not available"
39
49
  end
40
50
 
41
51
  end
@@ -49,14 +59,14 @@ module PassengerMemoryStatus
49
59
  # Graceful kill of passenger process
50
60
  #
51
61
  def graceful(pid)
52
- puts "Killing Passenger-Process #{pid} gracefully"
62
+ @logger.info "Killing Passenger-Process #{pid} gracefully"
53
63
  Process.kill("SIGUSR1", pid)
54
64
  end
55
65
 
56
66
  # Forceful kill of the process
57
67
  #
58
68
  def kill(pid)
59
- puts "Killing Passenger-Process #{pid} forcefully"
69
+ @logger.info "Killing Passenger-Process #{pid} forcefully"
60
70
  Process.kill("TERM", pid)
61
71
  end
62
72
 
@@ -71,8 +81,7 @@ module PassengerMemoryStatus
71
81
  #
72
82
  def passenger_installed?
73
83
  installed_path = `which passenger_memory_status`
74
- puts installed_path
75
- return installed_path unless installed_path.empty?
84
+ return true unless installed_path.empty?
76
85
  end
77
86
 
78
87
  end
@@ -1,3 +1,3 @@
1
1
  module PassengerMemoryStatus
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["namburu.karthik@gmail.com"]
11
11
 
12
12
  spec.summary = %q{ To monitor the passenger process }
13
- spec.description = %q{ To Monitor and Manage passenger process which are bloated }
13
+ spec.description = %q{ To Monitor and kill passenger process which are bloated }
14
14
  spec.homepage = "https://github.com/karthiknamburu/passenger_memory_status.git"
15
15
  spec.license = "MIT"
16
16
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: passenger_memory_status
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - karthiknamburu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-02 00:00:00.000000000 Z
11
+ date: 2017-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- description: " To Monitor and Manage passenger process which are bloated "
69
+ description: " To Monitor and kill passenger process which are bloated "
70
70
  email:
71
71
  - namburu.karthik@gmail.com
72
72
  executables: []
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  version: '0'
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 2.4.8
110
+ rubygems_version: 2.6.7
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: To monitor the passenger process