2012-09-24 11 views
19

Php dişli işçilerini yönetmek için 12.04 üzerinde Ustuntu'da (3.0a12) Supervisor (3.0a12) kullanıyorum. Bazen işçiler tonlarca cpu ve koç kullandıkları tuhaf bir duruma yakalanırlar. Bu sorunu çözdüğümde, amirin zaman zaman işçileri otomatik olarak öldürmesini ve yenilemesini sağlamanın iyi olacağını düşündüm. http://supervisord.org/configuration.html yapılandırma belgelerine baktım ve buna izin verecek herhangi bir seçenek görmedim. o yönetir tüm işlemleri yeniden periyodik supervisord olması mümkün olup olmadığınıSüpervizör var Çocuk süreçlerini periyodik olarak yeniden başlatın

bilen var mı ??

cevap

20

superlance package amir için memmon plugin sunmaktadır. memmon, denetleyici kontrolü altındaki programlar için bellek kullanımını izler.

Bir gözetmen EventListener olarak memmon yapılandırın:

[eventlistener:memmon] 
command=memmon -a 200MB 
events=TICK_60 

Yukarıdaki yapılandırma setleri o 200MB bellek kullanımını aşarsa gözetmen kontrolünde herhangi programı yeniden memmon. Her 60 saniyede bir kontrol eder.

Her sınırlarını belirleyen programları veya program grupları belirli izlemek için memmon yapılandırabilirsiniz.

+0

Böyle başka bir işlem başlatır "xvfb-run" gibi bir işlem kullanır Amiri kullanırsanız, xul koşucu ardından memmon sadece xvfb kullanıcı ediliyor bellek veya alt işlemleri kayıt işaret ediyor? – CMCDragonkai

+0

Sadece doğrudan çocuk süreçlerini izleyecek, inanıyorum. El kitabı: *** memmon **, ** süpervizör ** çocuk süreçleri olmayan süreçlerin süreç durumunu izleme yeteneğinden yoksundur. * Xul koşucusu, süpervizörün çocuğu değil, xvfb-run olur. –

+0

Herhangi bir iş var mı? – CMCDragonkai

20

Sen supervisorctl doğrudan komutları geçmek Crontab'i kullanabilirsiniz. Örneğin, aşağıdaki işlem her 20 dakikada bir yeniden başlayacaktır.

0,20,40 * * * * /path/to/supervisorctl restart [supervisor_process] 
+0

Bu işlem yeniden başlayacaktır, ancak büyük olasılıkla iyi işlemlerin gerçekleştirilmesini de öldüreceğinden şüphelenirim, dolayısıyla bu verilerle veri kaybına neden olabilir. (ör. işçi süreçleri sadece durum bilgisi olmayan uygulamalarla) – tristanbailey

+1

İşlemler birçok nedenden ötürü ölür: beklenmedik yeniden başlatmalara karşı güçlü olmak her halükarda önemlidir. Yani eğer bu strateji veri kaybına yol açacaksa, bu bir hatadır, bunu başarmak için cron kullanıp kullanmasın doğru çözümdür. – jma

İlgili konular