php-fpm pool 100% CPU

Speedysurf

New Member
Hallo,

ich habe in regelmäßigen Abständen 4-5 php-fpm Prozesse eines Pools die 100% CPU nutzen. Wo kann ich sehen, welche Aufrufe für diese Auslastung verantwortlich sind?

Danke.
 
Vielen Dank. Sobald es wieder auftritt, werde ich es testen. Gibt es auch eine Art Live-Monitoring für einen php-fpm Pool?
 
Hallo,

ich kann aus den Ergebnissen nicht erkennen, welche Datei nun ursächlich für die hohe CPU Auslastung ist. Fehlt evtl. noch ein Parameter?
 

Attachments

  • cpu-lsof.JPG
    cpu-lsof.JPG
    331.4 KB · Views: 251
  • cpu-lsof2.JPG
    cpu-lsof2.JPG
    121 KB · Views: 285
Teste mal ob der php slow log etwas protokolliert. Wenn deine 100% über eine längere Zeit ist dann sollte dies auch dort eingetragen werden.
 
Das war bisher nicht aktiviert. Ich habe den User bzw. seine Webseite nun 1:1 auf einen anderen Server kopiert und da ist das Problem bisher nicht aufgetreten.
 
Auf wie viele Sekunden hast du den Slow log eignestellt?

Für mich sieht das aus als würden da zu viele Funktions Aufrufe statt finden die komplett unnötig sind. Wenn man sich die Liste der Funktionen sich ansieht. Wäre es möglich den Code um diese Code Zeilen sehen die dort markiert sind ob dies wirklich das Skript ist oder der Query an die Datenbank. Ansonsten müsstest du mit Xdebug das ganze mal genau debuggen, damit würdest du dann genau Zeiten bekommen :)
 
Ich habe lediglich in der pool.conf den Log Eintrag ergänzt. Das Problem ist ja, dass es unregelmäßig auftritt. Es lief jetzt 6 Tage ohne Probleme und dann sind auf einmal wieder 4-6 Prozesse mit 80-100% CPU Auslastung. Im Log erschien dann das o.g.
 
Dann wird es sehr wahrscheinlich sein, das erst bei bestimmten Seiten aufrufen passiert, z.b. ein Schlecht Optimiertes Theme bei WordPress(kommt leider sehr oft vor)
Wie gesagt, wäre es möglich das man diese Code Zeile die im Screenshot stehen(sind ja immer die selben) sich ansehen kann?
Entweder posten per Bild oder per Text.(+-5 Zeilen).

Wie hoch ist eigentlich die max_execution_time wenn diese zu hoch ist, kann es sein das diese Skript z.b. einfach mal so 2 Minuten in einer Endlosschleife läuft und deinen Server unnötig belastet(wäre jetzt das was mir anhand den Sachen die ich so sehen kann das was ich vermute)
 
Unten die Auszüge. Fett markiert die jeweiligen Zeilen aus dem Log.
Es handelt sich um Joomla mit dem Shopsystem Virtuemart.

Die max_execution_time liegt bei 30sek.

Code:
   //No redirect here, for category id = 0 means show ALL categories! note by Max Milbers
                if ((!empty($this->categoryId) and $this->categoryId!==-1 ) and (empty($category->slug) or !$category->published)) {

                        [B]$this->handle404();[/B]
                }

                shopFunctionsF::setLastVisitedCategoryId($this->categoryId);
                shopFunctionsF::setLastVisitedManuId($virtuemart_manufacturer_id);

Code:
                        header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

                        $cat = VmModel::getModel('category')->getCategory($last_category_id);
                        if(empty($cat->virtuemart_category_id)){
                                $last_category_id = 0;
                        }
                        vRequest::setVar('virtuemart_category_id', $last_category_id);
                        [B]$this->display();[/B]
                        //$this->app->redirect(JRoute::_('index.php?option=com_virtuemart' . $catLink . '&error=404', FALSE));
                } else {
                        throw new RuntimeException('VirtueMart category not found.', 404);
                }

                return;
 
Last edited by a moderator:
Mh, Anhand diesem Code kann ich nicht viel sagen.
Kannst du dich ggfs. an den Entwickler wenden und denen den Auszug aus dem Slow Log schicken?

Ich habe mir mal den Code des Shop runtergeladen. Da sieht man direkt sofern eine Option gesetzt ist das dies in einer Endlosschleife laufen kann, handle_404 wenn in den Konfiguration dies gesetzt ist, soll die vorherige Kategorie angezeigt werden. Das Problem was aus meiner Sicht auftreten kann, ist wenn man vorher noch keine Kategorie besucht hatte. Dann wird es meiner Meinung nach zu einer Endlosschleife laufen.
Kann man ggfs. einfach austesten, mit einem privaten Tab und dann eine Kategorie aufrufen die es nicht gibt. Vorher natürlich austesten welche es gibt und welche nicht :D

Ich würde mich aber mal an den Entwickler wenden, ich kenne die Software leider nicht gut genug um dies zu 100% sagen zu können. ist nur das was ich auf den ersten Blick so sehen kann.
 
Vielen Dank für die Unterstützung. Ich teste dies mal.
Der Shop lief 3 Jahre ohne Probleme und seit 1-2 Monaten kommt es ab und an zu diesem Phänomen.
 
Last edited by a moderator:
Vielen Dank für die Unterstützung. Ich teste dies mal.
Der Shop lief 3 Jahre ohne Probleme und seit 1-2 Monaten kommt es ab und an zu diesem Phanomän.

Wurden ganz zufälligerweise einige Kategorien gelöscht?
Falls, ja dann wurde ich dies immer mehr als Fehler ansehen. Weil diese Kategorien ja bei google verlinkt sind(gehe ich jetzt mal ganz stark von aus) und wenn man dann versucht diese nicht vorhandne Seiten aufzurufen dieser Fehler auftreten kann.

Einfach mal austesten und gucken, braucht der Server sehr sehr lange zu antworten würde ich dies dadrauf schließen und ggfs. diese Option(sofern diese gefunden werden kann) deaktivieren und den Entwickler kontaktieren.
 
Es gibt die Option "VirtueMart 404 Fehlerbehandlung aktivieren". Diese habe ich jetzt mal deaktiviert. Mal beobachten, ob es erneut auftritt.
 
Ich konnte das Problem jetzt nachstellen. Bei einem Link über google lädt er die Slideshow ewig (Seite ist aber verfügbar) und wenn ich die Seite 5 mal hintereinander aufrufe, habe ich 5 Prozesse mit 40-90% CPU Auslastung. Deaktiviere ich die 404 Option im Virtuemart, tritt es nicht auf.

Danke nochmal.
 
Ich konnte das Problem jetzt nachstellen. Bei einem Link über google lädt er die Slideshow ewig (Seite ist aber verfügbar) und wenn ich die Seite 5 mal hintereinander aufrufe, habe ich 5 Prozesse mit 40-90% CPU Auslastung. Deaktiviere ich die 404 Option im Virtuemart, tritt es nicht auf.

Danke nochmal.

Dann informier am besten den Entwickler, damit alle anderen Kunden nicht das gleiche Problem haben wie du und nicht wissen warum :D
Und kein Problem
 
Back
Top