2016-04-14 3 views
0

Anfangs habe ich keinen Prozess für verzögerte Aufträge (wie von Htop angezeigt), dann, wenn ich den Befehl RAILS_ENV=production bin/delayed_job start ausführen habe ich einen verzögerten Job Worker, wie durch Dateien in tmp/pids angezeigt. Htop zeigt jedoch jetzt an, dass es zwei Prozesse gibt, wie im Bild unten gezeigt. enter image description hereStarten eines verzögerten Jobs in Rails erstellt zwei Prozesse

Warum passiert das? Der andere verzögerte Job verbraucht Speicher, wo ich nicht viel davon habe !, aber sein TIME + ist Null, also hat es keine Zeit verbraucht, was bedeutet das also?

+0

Welche Art von Problem versuchen Sie zu lösen? Lassen Sie uns damit beginnen – Aleks

+0

Das Problem ist, dass der andere Prozess Ressourcen, insbesondere RAM-Speicher verbraucht. –

Antwort

1

Ich denke, das sind eigentlich nicht zwei Prozesse, sondern zwei Threads eines einzigen Prozesses. Sie können Threads ausblenden, indem Sie den Schlüssel H in htop eingeben. Wenn Sie dann nur eine Zeile sehen, werden Sie beweisen, dass es sich um einen einzigen Prozess handelt.

Verzögerter Job hat wahrscheinlich einen Master-Thread, der die Worker-Threads (oder nur den einzelnen Worker in Ihrem Setup) steuert, die Warteschlangen überwacht und die Worker bei Bedarf ausführt. Threads share most of the memory so denke ich eher nicht das Ressourcenverbrauch Problem kommt aus den beiden Zeilen in htop.

+0

Vielen Dank, tatsächlich hat das Tippen von H nur einen verzögerten Job-Prozess gezeigt, also ist es wie du gesagt hast =) –

Verwandte Themen