Skip to content

Instantly share code, notes, and snippets.

@exodus4d
Last active January 6, 2018 16:56
Show Gist options
  • Save exodus4d/f2ab1a3dac8306d80033bd54a0e37693 to your computer and use it in GitHub Desktop.
Save exodus4d/f2ab1a3dac8306d80033bd54a0e37693 to your computer and use it in GitHub Desktop.
Hallo Stefan L. :)

Ich habe den Fehler für das ständige restarten gefunden!

1. In der /etc/php-fpm.conf steht, dass ein PHP-FPM process neu gestartet wird bei 3 errors innherhalb von 1 Minute:
  • emergency_restart_threshold = 3
  • emergency_restart_interval = 1m

Als "Error" wird alles angesehen was sich in der /var/log/php-fpm/error.log findet mit prefix ERROR oder WARNING, das lässt sich über log_level = error anpassen, so dass nur noch `ERROR´ geloggt werden. Ansonsten werden auch solche standard Einträge als Error gelöscht:

[05-Jan-2018 21:04:17] WARNING: [pool www] server reached pm.max_children setting (28), consider raising it
2. Wir haben in der Datei auch einige JSON objekte gesehen: Das war ein Bug von mir!

Erläuterung: Nutzeraktionen logge ich in einem Objekt. Ein Log Objekt kann mehrere Handler zugewiesen bekommen die festlegen was mit dem Log passiert (z.B. StreamHandler -> für Log files, DiscordHandler und SlackHandler triggern cURL aufrufe um Logs nach Discord oder Slack zu pushen, MailHandler verschicken mails, DBHandler loggen einige Logs in MySQL,...). Wird kein Handler einem Log zugewiesen greift der default und logs werden über stdout ausgegeben. Das ist der Fehler! :)

Diese stdout ausgaben werden als ERROR von PHP-FPM geloggt weil in der /etc/php-fpm.conf das eingestellt ist catch_workers_output = yes


Nach dem umstellen von log_level = notice auf log_level = error und dem fixen von Punkt 2. werden wirklich nur noch Fehler geloggt und die Prozesse laufen bis pm.max_requests = 300 erreicht ist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment