0

私はAWS BeanstalkにRuby on Railsアプリケーションをデプロイしています。このアプリケーションでは、バックグラウンドジョブ用のプロセスも必要です(sidekiq)。また、sneakersプロセスが実行され、RabbitMQインスタンスからのメッセージをリッスンします。AWS Beanstalkレールアプリケーションで発生するレークプロセスが多すぎます

私はprocess outlined hereのebextensionsを使ってsidekiqのアップスタートプロセスを作成しました。同じアウトラインを使って、私はスニーカーレイクタスクを実行するための別の起動プロセスを作成しました。すべての設定ファイルはhere in this gistです。

deployがうまく動作し、sidekiqとスニーカープロセスが実行されているのを見ることができますが、いくつかのデプロイメントの後、データベース接続を開始しているいくつかのレーキプロセスが発生し始めました。

[[email protected] ec2-user]# ps aux | grep '[/]opt/rubies/ruby-2.0.0-p648/bin/rake' 
webapp 13563 0.0 2.2 1400644 184988 ?  Sl 01:41 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 13866 0.7 2.3 694804 193620 ?  Sl 01:42 0:10 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 14029 0.0 2.2 1400912 183700 ?  Sl 01:42 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 14046 0.0 2.2 1400912 183812 ?  Sl 01:42 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 14048 0.0 2.2 1400912 183804 ?  Sl 01:42 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 14073 0.0 2.2 1400912 183712 ?  Sl 01:42 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 14158 0.0 2.2 827056 187972 ?  Sl Nov23 4:23 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 19139 0.9 2.3 694744 193388 ?  Sl 01:47 0:10 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 19273 0.0 2.2 1400852 183680 ?  Sl 01:47 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake                
webapp 19290 0.0 2.2 1400852 183732 ?  Sl 01:47 0:00 /opt/rubies/ruby-2.0.0-p648/bin/rake 

[[email protected] ec2-user]# ps auxf 
USER  PID %CPU %MEM VSZ RSS TTY  STAT START TIME COMMAND 
webapp 14158 0.0 2.2 827056 187972 ?  Sl Nov23 4:24 /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 13563 0.0 2.2 1400644 185700 ?  Sl 01:41 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 13866 0.4 2.3 694804 193620 ?  Sl 01:42 0:11 /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 14029 0.0 2.2 1400912 184412 ?  Sl 01:42 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 14046 0.0 2.2 1400912 184372 ?  Sl 01:42 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 14048 0.0 2.2 1400912 184516 ?  Sl 01:42 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 14073 0.0 2.2 1400912 184540 ?  Sl 01:42 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 19139 0.4 2.3 694876 193428 ?  Sl 01:47 0:11 /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 19273 0.0 2.2 1400852 184288 ?  Sl 01:47 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 19290 0.0 2.2 1400852 184472 ?  Sl 01:47 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 19293 0.0 2.2 1400852 184488 ?  Sl 01:47 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
webapp 19333 0.0 2.2 1400852 184420 ?  Sl 01:47 0:00 \_ /opt/rubies/ruby-2.0.0-p648/bin/ rake                
root  21038 0.0 0.0 217276 3460 ?  Ssl 01:55 0:00 PassengerWatchdog 
webapp 21041 0.1 0.0 704036 5652 ?  Sl 01:55 0:02 \_ PassengerHelperAgent 
webapp 21047 0.0 0.0 243944 7840 ?  Sl 01:55 0:00 \_ PassengerLoggingAgent 
root  21056 0.0 0.0 56404 1016 ?  Ss 01:55 0:00 PassengerWebHelper: master process/ var/lib/passenger/standalone/4.0.60/webhelper-1.8.1-x86_64-linux/PassengerWebHelper -c /tmp/ passenger-standalone.e022jt/config -p /tmp/passenger-standalone.e022jt/ 
webapp 21057 0.0 0.0 56812 4436 ?  S 01:55 0:00 \_ PassengerWebHelper: worker process                                   
webapp 21058 0.0 0.0 56812 4436 ?  S 01:55 0:00 \_ PassengerWebHelper: worker process                                   
root  21063 0.0 0.0 8552 1104 ?  Ss 01:55 0:00 /var/lib/passenger/standalone/4.0.60/ support-x86_64-linux/agents/TempDirToucher /tmp/passenger-standalone.e022jt --cleanup --daemonize  --pid-file /tmp/passenger-standalone.e022jt/temp_dir_toucher.pid --log-f 
root  21078 0.0 0.0 11600 2748 ?  Ss 01:55 0:00 /bin/bash 
root  21102 0.0 0.0 54764 2556 ?  S 01:55 0:00 \_ su -s /bin/bash -c bundle exec  sidekiq -L /var/app/current/log/sidekiq.log -P /var/app/support/pids/sidekiq.pid 
root  21103 8.1 2.6 1452872 212932 ?  Sl 01:55 2:27  \_ sidekiq 4.1.2 current [0 of  25 busy]                                 
root  21118 0.0 0.0 54768 2644 ?  Ss 01:55 0:00 su -s /bin/bash -c bundle exec rake  sneakers:run >> /var/app/current/log/sneakers.log 2>&1 webapp 
webapp 21146 0.0 0.0 9476 2336 ?  Ss 01:55 0:00 \_ bash -c bundle exec rake  sneakers:run >> /var/app/current/log/sneakers.log 2>&1 
webapp 21147 0.6 2.3 693604 193232 ?  Sl 01:55 0:11  \_ /opt/rubies/ruby-2.0.0-p648/ bin/rake                
webapp 21349 0.0 2.2 1400608 184160 ?  Sl 01:55 0:00   \_ /opt/rubies/ ruby-2.0.0-p648/bin/rake                
webapp 21411 0.0 2.2 1400608 183812 ?  Sl 01:55 0:00   \_ /opt/rubies/ ruby-2.0.0-p648/bin/rake                
webapp 21414 0.0 2.2 1400608 183988 ?  Sl 01:55 0:00   \_ /opt/rubies/ ruby-2.0.0-p648/bin/rake                
webapp 21475 0.0 2.2 1400608 183976 ?  Sl 01:55 0:00   \_ /opt/rubies/ ruby-2.0.0-p648/bin/rake                
webapp 21720 0.3 3.5 1311928 293968 ?  Sl 01:55 0:07 Passenger RackApp: /var/app/current                            

(それはsidekiqやスニーカーや乗客だった場合)私は、これらのプロセスを生み出したかわからないんだけど。各デプロイメントで、ポストグル接続が最大になるまで数が増えるようです。

私のお豆の設定は間違っていますか?誰も私がこれをデバッグするのを助けることができるので、私はこれらのプロセスを作り出すものを理解することができますか?

答えて

0

スニーカーのレーキタスクが殺されるたびに、それは孤立したプロセスの後ろに残っています。修正するために、これを事前展開フックとして追加しました:

files: 
    "/opt/elasticbeanstalk/hooks/appdeploy/pre/04_mute_sneakers.sh": 
    mode: "000755" 
    content: | 
     #!/bin/bash 
     initctl stop sneakers 2>/dev/null 
     kill $(ps aux | grep '[/]opt/rubies/ruby-2.0.0-p648/bin/rake' | awk '{print $2}') 2>/dev/null 
     echo "Killed Sneakers Process" 
関連する問題