0

AWS Beanstalk에서 Ruby on Rails 응용 프로그램을 배포하고 있습니다. 또한 응용 프로그램에는 백그라운드 작업을위한 sidekiq 프로세스가 필요합니다. 또한 sneakers 프로세스가 실행 중이며 RabbitMQ 인스턴스의 메시지를 수신 대기합니다.AWS Beanstalk 레일 응용 프로그램에서 너무 많은 레이크 프로세스가 생성됩니다.

나는 process outlined here의 확장 물을 사용하여 sidekiq를위한 새로운 시작 프로세스를 만들었습니다. 같은 윤곽선을 사용하여 스니커즈 레이크 작업을 실행하기위한 또 다른 새로운 시작 프로세스를 만들었습니다. 모든 설정 파일은 here in this gist입니다.

배포가 잘 실행되고 sidekiq 및 스니커 프로세스가 실행되고 있음을 확인할 수 있지만 몇 가지 배포 후에 데이터베이스 연결을 차지하는 여러 개의 레이크 프로세스가 생성되기 시작했습니다. (이 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                            

나는 이러한 프로세스를 양산 모르겠어요. 각 배포시 포스트그레스 연결이 최대치가 될 때까지 숫자가 늘어나는 것 같습니다.

내 beanstalk 설정이 올바르지 않습니까? 아무도 내가 이것을 디버깅하도록 도와 줄 수 없으므로 이러한 프로세스를 만드는 것이 무엇인지 알아낼 수 있습니까?

답변

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" 
관련 문제