2

sidekiq在 OSX 10.10.4 上运行,使用monit,目的是在总内存膨胀到一定水平时重新启动进程。但是,monit认为被监视的sidekiq进程不消耗任何内存。monit而是将所有内存使用视为系统使用。

这是运行monit status时的输出sidekiq(以 开头monit start all

Process 'sidekiq'
  status                            Running
  monitoring status                 Monitored
  pid                               414
  parent pid                        1
  uid                               501
  effective uid                     501
  gid                               20
  uptime                            0m 
  children                          1
  memory                            0 B
  memory total                      0 B
  memory percent                    0.0%
  memory percent total              0.0%
  cpu percent                       0.0%
  cpu percent total                 0.0%
  data collected                    Wed, 05 Aug 2015 09:57:21

System 'me-macbook-pro.local'
  status                            Running
  monitoring status                 Monitored
  load average                      [1.82] [1.31] [0.59]
  cpu                               11.3%us 4.6%sy
  memory usage                      2.3 GB [56.2%]
  swap usage                        0 B [0.0%]
  data collected                    Wed, 05 Aug 2015 09:57:21

我需要做什么monit才能认识到该sidekiq进程是消耗内存的进程?

对于上下文,我在.monitrc下面粘贴了我的和相关的脚本。

### .monitrc

set daemon 20
set httpd port 2812
  allow me:password_censored

check process sidekiq with pidfile /Users/me/app/tmp/pids/sidekiq.pid
  start program = "/bin/bash /Users/me/app/start_sidekiq.sh" with timeout 20 seconds
  stop program = "/bin/bash /Users/me/app/stop_sidekiq.sh" with timeout 20 seconds 
  if totalmem is greater than 150 MB for 2 cycles then restart

### start_sidekiq.sh
#!/bin/sh

cd /Users/me/app

bundle exec sidekiq -C /Users/me/app/config/sidekiq.yml \
  -P /Users/me/app/tmp/pids/sidekiq.pid \
  -L /Users/me/app/log/sidekiq.log \
  -d

### stop_sidekiq.sh
#!/bin/sh

kill -TERM `cat /Users/me/app/tmp/pids/sidekiq.pid`
4

0 回答 0