Cpulimit f├╝r PHP-Prozess Preview-Generator

Hallo zusammen,
ich setze auf einem Odroid HC2 die aktuelle Version von Armbian auf Basis von Debian Stretch ein.
Unter Anderem nutze ich auf dem HC2 Nextcloud um z.B. meine Fotos auszulagern.
Um Previews von hochgeladenen Bildern erstellen zu lassen, nutze ich das Preview-Generator AddIn von Nextcloud, welches diese Aufgabe im Hintergrund als Cronjob ausf├╝hrt.

Nun zu meinem eigentlich Problem:
Leider unterst├╝tzt PHP ja kein Multithreading und somit ist einer der 8 Kerne der HC2 f├╝r eine laaange Zeit zu 100% mit der Preview-Generation ausgelastet. Dies f├╝hrt dazu, dass der Server bei zus├Ątzlichen Aufgaben/Zugriffen fr├╝her als sp├Ąter in die Knie geht und abst├╝rzt.

Nun bin ich auf das Tool cpulimit gesto├čen, mit welchen ich ich die CPU-Last auf 50% reduziert habe - dies scheint soweit zu funktionieren. Die CPU ├╝berhitzt nicht und der Server kann noch weitere Tasks ausf├╝hren.

Mir ist jedoch aufgefallen, dass CPU-Limit nur funktioniert, wenn ich explizit die Prozess-ID angebe, was jedoch nicht viel Sinn macht, da es sich ja um einen Cronjob handelt und die ID sich ├Ąndern kann, wenn der Prozess sich beendet und wieder neu startet.

sudo cpulimit -p 1234 -l 50 -b
funktioniert

sudo cpulimit -P /usr/bin/php -l 50 -b
funktioniert nicht

sudo cpulimit -P /var/www/nextcloud/occ -l 50 -b
funktioniert ebenfalls nicht

Der Cronjob wird wie folgt aufgerufen:

*/15 * * * * php /var/www/nextcloud/occ preview:pre-generate

Wie stelle ich es an, dass der entsprechende Cronjob immer limitiert wird?

Danke!

Philipp

Auf der Manpage zu cpulimit ist noch eine zus├Ątzliche Syntax zum direkten Aufruf des zu limitierenden Prozesses erw├Ąhnt:
*/15 * * * * cpulimit -l 50 -bz -- php /var/www/nextcloud/occ preview:pre-generate
Dieser Cronjob startet nun den PHP-Prozess mit einem Limit von 50%.
Vielleicht f├╝r den ein oder anderen ebenfalls interessant :slight_smile: