2016-04-14 11 views
5

Sono finalmente riuscito a ottenere il servizio di supervisione per l'esecuzione in qualsiasi momento il server è stato riavviato utilizzando questo tutorial e quella parte funziona alla grande. L'ho configurato in modo che funzioni fino a 10 lavoratori. Il problema è quando controllo il giorno successivo, alcuni di questi lavoratori si sono fermati e non si sono riavviati. Il server non è stato riavviato neanche.I supervisori interrompono gli straordinari e non si riavviano (utilizzato con laravel)

Ecco come il mio programma è impostato un file di supervisord.conf:

[program:laravel-worker] 
process_name=%(program_name)s_%(process_num)02d 
command= php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
directory=/home/magic/_app/_laravel 
numprocs=10 
redirect_stderr=true 
autostart=true 
autorestart=true 
startsecs=0 
startretries=10 
exitcodes=0,2 
stopsignal=TERM 
stopwaitsecs=10 
stdout_logfile=/home/magic/_app/_laravel/storage/logs/supervisor/supervisor.log 
stdout_logfile_maxbytes=50MB 
stdout_logfile_backups=10 
stdout_capture_maxbytes=0 
stdout_events_enabled=false 
user=magic 
environment=PATH="/usr/local/bin" 

La prima volta che avvio il servizio utilizzando service supervisord start, e poi se lo faccio service supervisord status, mostra i processi di seguito. Non li capisco completamente, ma sembra giusto perché ci sono 10 istanze del mio comando artigiano.

|-17991 /usr/bin/python /usr//bin/supervisord --pidfile /tmp/supervisord.pid 
|-17992 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17993 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17994 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17995 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17996 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17997 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17998 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17999 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-18000 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-18001 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-18002 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18003 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18004 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18005 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18006 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18007 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18008 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18009 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-18010 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
`-18011 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 

Ma dopo un po 'di tempo, di solito il giorno dopo, vedo cose come questa. E questa volta sembra che solo 6 processi siano in esecuzione, quindi 4 di essi si sono fermati.

|- 3984 /usr/bin/python /usr//bin/supervisord --pidfile /tmp/supervisord.pid 
|- 3985 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|- 3986 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|- 3988 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|- 3989 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-12224 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-13610 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-14263 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-16417 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
|-17424 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-17425 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-17427 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-17428 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-17429 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-17430 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
|-17856 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
`-18356 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 

Il registro di supervisione mostra cose piuttosto normali. Ci sono alcuni 500 errori là dentro e ho pensato che forse era un indizio per indagare, ma non corrispondono al numero di lavoratori scomparsi né ai timestamp.

Lo stesso log di laravel ha superato alcuni errori massimi di esecuzione, in realtà ne ha esattamente 10 dall'ultima volta che ho cancellato il registro. Quindi non so se è 1 per ogni lavoratore. Sembra qualcosa del genere. Anche in questo caso i timestamp non corrispondono realmente al log del supervisore, quindi è difficile sapere se questo potrebbe causarlo. Posso aumentare il tempo di esecuzione consentito da PHP, ma non so se questo può causare il riavvio dei lavoratori.

[2016-04-14 02:56:20] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Maximum execution time of 30 seconds exceeded' in /home/magic/_app/_laravel/vendor/symfony/process/Symfony/Component/Process/Pipes/UnixPipes.php:130 

Se qualcuno ha qualche consiglio o suggerimento lo apprezzerei. Mi piacerebbe davvero risolvere questo problema.

Quindi, dopo aver corretto il supervisorctl per funzionare correttamente, ora quando eseguo supervisorctl status, mostra tutti i 10 lavoratori in esecuzione. Ma il problema è che non stanno eseguendo i comandi che dovrebbero.

Ecco cosa supervisorctl status ora mostra:

laravel-worker:laravel-worker_00 RUNNING pid 11566, uptime 4:38:36 
laravel-worker:laravel-worker_01 RUNNING pid 18358, uptime 2 days, 18:40:16 
laravel-worker:laravel-worker_02 RUNNING pid 8102, uptime 1 day, 20:57:15 
laravel-worker:laravel-worker_03 RUNNING pid 10691, uptime 11:42:54 
laravel-worker:laravel-worker_04 RUNNING pid 32543, uptime 1 day, 22:07:53 
laravel-worker:laravel-worker_05 RUNNING pid 30215, uptime 20:40:02 
laravel-worker:laravel-worker_06 RUNNING pid 32732, uptime 1 day, 22:03:05 
laravel-worker:laravel-worker_07 RUNNING pid 24625, uptime 21:44:41 
laravel-worker:laravel-worker_08 RUNNING pid 19807, uptime 2:36:21 
laravel-worker:laravel-worker_09 RUNNING pid 32332, uptime 1 day, 3:07:34 

ed ecco cosa service supervisord status spettacoli. Come puoi vedere mostra 10 lavoratori e 3 attività che i lavoratori stanno eseguendo. Ma dovrebbero essere 10 compiti per abbinare i 10 lavoratori. Così sembra che i lavoratori straordinari fermano lo svolgimento dei compiti per qualche ragione, anche se sono ancora in corso:

* supervisord.service - SYSV: Supervisor Server 
    Loaded: loaded (/etc/rc.d/init.d/supervisord) 
    Active: active (running) since Thu 2016-04-21 16:44:43 EDT; 2 days ago 
    Docs: man:systemd-sysv-generator(8) 
    CGroup: /system.slice/supervisord.service 
      |- 8102 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-10691 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-11566 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-18356 /usr/bin/python /usr//bin/supervisord --pidfile /tmp/supervisord.pid 
      |-18358 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-19807 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-24625 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-28557 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
      |-28711 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
      |-28712 /usr/local/bin/php artisan queue:work --queue=high,default --delay=0 --memory=128 --sleep=5 --tries=5 --env=production 
      |-30215 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-32332 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      |-32543 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 
      `-32732 php /home/magic/_app/_laravel/artisan queue:listen --queue=high,default --tries=5 --sleep=5 --timeout=600 

Apr 21 16:44:43 host systemd[1]: Starting SYSV: Supervisor Server... 
Apr 21 16:44:43 host supervisord[18351]: Starting supervisord: /usr/lib/python2.7/site-packages/supervisor-3.2.3-py2.7.egg/supervisor/option... 
Apr 21 16:44:43 host supervisord[18351]: 'Supervisord is running as root and it is searching ' 
Apr 21 16:44:43 host supervisord[18351]: [17B blob data] 
Apr 21 16:44:43 host systemd[1]: Started SYSV: Supervisor Server. 
+0

qual è il risultato di 'status supervisorctl'? o 'supervisorctl tail '? – fernandezcuesta

+0

@valtuarte Non penso che il supervisor sia configurato o funzionante correttamente e non sapevo se il supervisore ne avesse bisogno.Lo stato di 'supervisorctrl status' restituisce' unix: ///var/run/supervisor.sock no such file'. Stesso errore per 'supervorctl tail ' – zen

+0

@zen prova 'supervisorctl -c percorsoToSupervisord.conf ' – Wistar

risposta

0

Credo che avrei potuto risolto questo problema. Potrebbe essere stato causato dall'utilizzo di php errato nell'attributo command nel file supervisord.conf. L'ho modificato da php a /usr/local/bin/php ed è in esecuzione da 2 giorni e nessuna delle attività è stata riavviata o ha interrotto l'elaborazione delle code.

Aggiungerò questa domanda più tardi se vedo ripetere il problema ma sembra che stia funzionando molto più stabile ora di quanto non abbia mai fatto.

Problemi correlati