Unicorn Eating Memory

后端 未结 5 1822
执念已碎
执念已碎 2021-02-08 00:11

I have a m1.small instance in amazon with 8GB hard disk space on which my rails application runs. It runs smoothly for 2 weeks and after that it crashes saying the memory is ful

5条回答
  •  面向向阳花
    2021-02-08 00:17

    i've just released 'unicorn-worker-killer' gem. This enables you to kill Unicorn worker based on 1) Max number of requests and 2) Process memory size (RSS), without affecting the request.

    It's really easy to use. No external tool is required. At first, please add this line to your Gemfile.

    gem 'unicorn-worker-killer'
    

    Then, please add the following lines to your config.ru.

    # Unicorn self-process killer
    require 'unicorn/worker_killer'
    
    # Max requests per worker
    use Unicorn::WorkerKiller::MaxRequests, 10240 + Random.rand(10240)
    
    # Max memory size (RSS) per worker
    use Unicorn::WorkerKiller::Oom, (96 + Random.rand(32)) * 1024**2
    

    It's highly recommended to randomize the threshold to avoid killing all workers at once.

提交回复
热议问题