Drop memory limit support
authorTom Hughes <tom@compton.nu>
Mon, 30 Mar 2015 20:15:19 +0000 (21:15 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 30 Mar 2015 20:32:36 +0000 (21:32 +0100)
The soft limit won't work with passenger 5 and causes spurious
errors to be reported back to browsers, and in any case it doesn't
actually seem to be necessary anymore.

config/example.application.yml
config/initializers/memory_limits.rb [deleted file]

index 2e41adbfc0d8716eaf222bfbc6c29e7739ca3064..bef0f2845b5cca3395ff3fb1893a9b525c121b90 100644 (file)
@@ -56,9 +56,6 @@ defaults: &defaults
   spam_threshold: 50
   # Default legale (jurisdiction location) for contributor terms
   default_legale: GB
-  # Memory limits (in Mb)
-  #soft_memory_limit: 512
-  #hard_memory_limit: 2048
   # Location of GPX traces and images
   gpx_trace_dir: "/home/osm/traces"
   gpx_image_dir: "/home/osm/images"
diff --git a/config/initializers/memory_limits.rb b/config/initializers/memory_limits.rb
deleted file mode 100644 (file)
index b58c1f2..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# Setup any specified hard limit on the virtual size of the process
-if defined?(HARD_MEMORY_LIMIT) && defined?(PhusionPassenger) && Process.const_defined?(:RLIMIT_AS)
-  Process.setrlimit Process::RLIMIT_AS, HARD_MEMORY_LIMIT * 1024 * 1024, Process::RLIM_INFINITY
-end
-
-# If we're running under passenger and a soft memory limit is
-# configured then setup some rack middleware to police the limit
-if defined?(SOFT_MEMORY_LIMIT) && defined?(PhusionPassenger)
-  # Define some rack middleware to police the soft memory limit
-  class MemoryLimit
-    def initialize(app)
-      @app = app
-    end
-
-    def call(env)
-      # Process this requst
-      status, headers, body = @app.call(env)
-
-      # Restart if we've hit our memory limit
-      Process.kill("USR1", Process.pid) if resident_size > SOFT_MEMORY_LIMIT
-
-      # Return the result of this request
-      [status, headers, body]
-    end
-
-    private
-
-    def resident_size
-      # Read statm to get process sizes. Format is
-      #   Size RSS Shared Text Lib Data
-      fields = File.open("/proc/self/statm") do |file|
-        fields = file.gets.split(" ")
-      end
-
-      # Return resident size in megabytes
-      fields[1].to_i / 256
-    end
-  end
-
-  # Install the memory limit checker
-  Rails.configuration.middleware.use MemoryLimit
-end