Comment faites-vous pour limiter la mémoire globale de tous les processus d’un pool PHP-FPM ?
php_admin_value[memory_limit]=XX permet de limité la mémoire un processus et moi je cherche a limité la somme de tous les processus d’un utilisateur (d’un pool PHP-FPM).
J’ai vérifié aussi le prlimit et /etc/security/limits.conf mais ils fonctionnent aussi par processus d’un utilisateur.
Merci d’avoir repue, mon problème que tout le PHP-FPM se base sur une limitation de mémoire qui est définie par children, or moi je recherche une limitation globale.
En gros, si j’ai 10 children de 100M ça fait 10*100M=1G de mémoire, or moi je veux dire 100M par children oui, mais pas plus 500M en tous tout en autorisent les 10 children.
Il semble que c’est exactement ce que je recherche, par contre je ne sais pas comment assigner automatiquement les processus d’un utilisateur (mon pool du PHP-FPM) a un groupe créé avec cgroups (cgm).
Il y a bien la méthode manuelle (echo pid > /sys/fs/cgroup/memory/groupname/cgroup.procs) mais je recherche quelque chose d’automatiser, avez-vous un outil ou un paramétrage a me proposer ?
Je ne connais pas à ce jour de mécanisme automatique, et pour moi la plus simple en générale est de passé par des micro services limité par l’orchestrateur Kubernetes …
En tout cas bonne lecture car cgroup et namespace sont sur une autre planète informatique à l’instar de selinux …
Par contre une fois la limitation en place comment à ton avis va réagir ton pool si il tape la limite (et là c’est le drame … ça plante ou pas ?, comment le monitorer du coup ?, utilisation de supervisord pour la relance du pool de façon automatique sur un event ?)