Jump to content
Froxlor Forum
  • 0
feiaweng

php fcgi cpu high load

Question

Hallo,

 

ich habe froxlor auf einem debian 8 system mit apache 2.4 und php5.6 laufen. Es laufen ca. 15 verschiedene Websites. Alle mit fcgi.

Es handelt sich um einen KVM Server mit 4 vCPU und 16 GB RAM.

PHP fcgi benötigt viel RAM. Ich vermute ein Upgrade auf PHP 7.2 würde helfen, da es die php Performance verbessern soll.

Allerdings kann ich jetzt grad auf Grund von Webseitenproblemen mit PHP 7 nicht upgraden.

Kann ich noch irgendwo an der Performance Schraube drehen, damit der Server nicht ständig eine Load von mindestens 1 hat?

In den Logs sind keine Fehler vorhanden, im Apache log auch nicht.

Danke schonmal.

 

Gruss feiaweng

Share this post


Link to post
Share on other sites

25 answers to this question

Recommended Posts

  • 0

Dann probiers mal mit FPM - den process-manager kann man recht gut tweaken je nach bedarf

Share this post


Link to post
Share on other sites
  • 0

ich dachte, man soll fcgid nehmen, weil der bessere Performance hat. Kann ich auf einem Livesystem einfach auf FPM umstellen ohne das was passiert? Liegen ja Kundenwebseiten drauf.

 

 

Share this post


Link to post
Share on other sites
  • 0

Wo steht das? Fpm ist viel moderner. Und ja, wenn man aufpasst und alles richtig macht ist ein Wechsel problemlos auch in produktiver Umgebung möglich

Share this post


Link to post
Share on other sites
  • 0

ich weiss nicht mehr, wo ich das gelesen hatte. Habe aber gerade gesehen, dass bei Apache 2.4 FPM besser wäre.

Gibt es hier ein kleines Howto, was zu beachten ist?

Einfach in froxlor umstellen wäre ja bestimmt zu einfach :-)

 

LG

feiaweng

Share this post


Link to post
Share on other sites
  • 0

Nein genau so geht es. Am besten cronjob deaktivieren. Alle Einstellungen prüfen. Fpm- Daemon prüfen nachdem aktiviert. Cronjob wieder an. Fertig.

Share this post


Link to post
Share on other sites
  • 0

hat mit ein paar kleinen Problemen funktioniert auf dem Backup-System.

Auf dem Live-System leider nicht. Weiss leider nicht warum.

Dummerweise habe ich mir jetzt selbst ein Ei gelegt.

Ich habe versehentlich in Froxlor unter Einstellungen fcgid und php-fpm deaktiviert. Nun komme ich an Froxlor nicht mehr ran um es zu aktivieren.

Die URL ist nun auf dem froxlor Host nicht mehr erreichbar, da php ja nicht läuft. Wie kann ich das wieder aktiveren, direkt im mysql?

Die froxlor DB zurückspielen aus einem dump hat nicht funktioniert.

Für Ideen wäre ich super dankbar.

LG

feiaweng

Share this post


Link to post
Share on other sites
  • 0

Wenn alles deaktiviert ist, aktiviere doch mod_php wieder (a2enmod php) dann kommst du auch wieder an dein froxlor

Share this post


Link to post
Share on other sites
  • 0

Danke für den Tipp. Hab's wieder hinbekommen. Musste wieder zurückstellen auf fcgid, da ich den Fehler nicht beseitigen konnte. 

Irgendwas ist auf dem System anders als auf der Testmaschine.  Ich guck nachher mal in die Logs. 

Gruß feiaweng

Share this post


Link to post
Share on other sites
  • 0

ich habe dummerweise irgendwas in der apache config überschrieben, ich vermute mal mods-available/fastcgi.conf

Bekomme nun beim Starten des php-fpm folgenden Error:

Starting The PHP FastCGI Process Manager...
php5-fpm[14608]: [07-Feb-2019 10:44:45] WARNING: Nothing matches the include pattern '/etc/php5/fpm/pool.d/*.conf' f...ine 129.
 php5-fpm[14608]: [07-Feb-2019 10:44:45] ERROR: No pool defined. at least one pool section must be specified in config file
 php5-fpm[14608]: [07-Feb-2019 10:44:45] ERROR: failed to post process the configuration
 php5-fpm[14608]: [07-Feb-2019 10:44:45] ERROR: FPM initialization failed
 systemd[1]: php5-fpm.service: main process exited, code=exited, status=78/n/a
 systemd[1]: Failed to start The PHP FastCGI Process Manager.
 systemd[1]: Unit php5-fpm.service entered failed state.

Ich komm grad leider gar nicht weiter, und bräuchte Hilfe.

 

Gruss feiaweng

 

Share this post


Link to post
Share on other sites
  • 0

An der fastcgi.conf liegt das nicht. Fpm sucht in /etc/php5/fpm/pool.d/ nach den Domain configs. Stelle bitte in den fpm Dämon Einstellungen sicher, dass der config Pfad auf /etc/php5/fpm/pool.d/ steht, damit die configs auch dort hin erstellt werden

Share this post


Link to post
Share on other sites
  • 0

unter /etc/php-fpm.d finde ich die .conf files. Wahrscheinlich sind die files angelegt worden vor der Umstellung auf

/etc/php5/fpm/pool.d

Soll ich die configfiles einfach dort hinkopieren?

Meinst du mit den fpm Daemon Einstellungen das file  /etc/php5/fpm/php-fpm.conf

include=/etc/php5/fpm/pool.d/*.conf

 

Gruss

Share this post


Link to post
Share on other sites
  • 0

Also entweder passt du den Pfad in der php-fpm.conf an auf /etc/php-fpm.d oder du passt die froxlor Einstellungen des fpm daemon an. Um das jetzt konkret erstmal zum laufen zu bringen, dass du wieder an froxlor kommst kannst du die configs aus /etc/php-fpm.d erstmal nach /etc/php5/fpm/pool.d kopieren und den fpm Dienst neustarten.

Share this post


Link to post
Share on other sites
  • 0

hab die conf files von /etc/php-fpm.d nach /etc/php5/fpm/pool.d kopiert.

Läuft jetzt.

Danke erstmal.

 

Gruss feiaweng

Share this post


Link to post
Share on other sites
  • 0

Ich habe jetzt umgestellt von FCGI auf PHP-FPM. Ich sehe allerdings dass trotzdem viel CPU und RAM benötigt wird. Bei einer Domain ganz besonders, aber da läuft auch ioncube. Dieses musste ich allerdings für PHP global aktivieren, da man es nicht wie Zendguard für einzelne Domains aktivieren kann. Kann ich noch was optimieren von den Schaltern die php-fpm anbietet? Welche Infos muss ich liefern? 

Danke feiaweng

Share this post


Link to post
Share on other sites
  • 0

Die ersten beiden Websites kann ich auch wärmsten empfehlen, hab die auch kürzlich erst gelesen. Stehen einige nützliche Tipps drin. Aber Wunder darf man natürlich auch keine erwarten. Wieviel Aufrufe hast du denn so und was heißt "viel" RAM?

Share this post


Link to post
Share on other sites
  • 0

die Werte habe ich von munin-graphen. Siehe Anhang.

Die Namen darf ich leider nicht veröffentlichen. Aber man sieht den current verbrauch von RAM und CPU.

Einige der Domains brauchen viel, andere eher weniger. Liegt an der Anzahl der Zugriffe.

Bin gerade dabei die Artikel durchzulesen, aber geändert habe ich noch nichts. Das mache ich später mal in Ruhe.

Was ich gelesen habe, ist das man mit pm = static/dynamic schon mal eine erste Option der Optimierung hat 🙂

 

Gruss

 

php-fpm-cpu.PNG

php-fpm-ram.PNG

Share this post


Link to post
Share on other sites
  • 0

Was hast du in deiner php-fpm.conf eingestellt? Speziell was

emergency_restart_threshold 
emergency_restart_interval 
process_control_timeout 

angeht?

Share this post


Link to post
Share on other sites
  • 0

Hallo aPollO,

 

das ist noch auskommentiert in der /etc/php5/fpm/php-fpm.conf. Also alle 3 Werte nutzen somit den Default Wert 0.

Welche Werte sollte ich hier einstellen?

Gruss feiaweng

Share this post


Link to post
Share on other sites
  • 0

Schau mal hier, hier ist erklärt was das bedeutet https://www.php.net/manual/de/install.fpm.configuration.php

Auf der ersten Website die @d00p verlinkt hat wird folgendes "empfohlen"

Zitat

emergency_restart_threshold 10
emergency_restart_interval 1m
process_control_timeout 10s

Vielleicht probierst du das mal aus. Das soll dem verschwenden von RAM durch PHP entgegen wirken (genaueres was da passiert dem Link zu php.net entnehmen und/oderdem Link von @d00p). Ich persönlich halte 1 Minute vielleicht für etwas übertrieben aber das kommt sicher auf das spezifische Szenario drauf an.

Share this post


Link to post
Share on other sites
  • 0

Danke aPollO,

 

hab die empfohlenen Werte mal gesetzt, und beobachte das mal die nächsten Tage.

 

Gruss feiaweng

Share this post


Link to post
Share on other sites
  • 0

der Speicherverbrauch ist nun max. 256 MB, vorher waren es ja ca. 500 für die eine Webseite.

Sieht also schon viel besser aus. Danke euch beiden für die Hinweise.

 

Gruss feiaweng

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now





×
×
  • Create New...