Dernièrement j’ai eu une saturation de mon raspberry et comme je le monitor avec zabbix, celui-ci continuait d’exécuter toutes les minutes zabbix_sender sans vérifier que la dernière commande était bien fini.
Résultat, il y avait 1500 processus zabbix_sender en parallèle ce qui n’arrangeait pas la charge cpu qui était monté à 27.
Bref je me suis donc tourné vers ulimit qui va nous permettre de limiter le nombre de processus simultané.
Ajoutez la ligne suivante dans le fichier /etc/security/limits.conf
zabbix hard nproc 20
Ça va limiter physiquement l’utilisateur zabbix à 20 processus en même temps
Ajoutez la ligne suivante dans le fichier /etc/pam.d/common-session
session required pam_limits.so
Les limits seront automatiquement chargées à chaque session.
Pour vérifier, passez sous l’utilisateur zabbix via root car zabbix n’a pas de mot de passe
su - zabbix
Lancez la commande suivante pour voir toute sles limitations de cet utilisateur
ulimit -a
ou cette commande pour voir uniquement ce qui nous intéresse, le nombre de processus simultané maximum
ulimit -u
Vous pouvez maintenant tester tout ça en lançant dans un terminal la commande
watch "ps aux | egrep '^zabbix'"
et dans un autre terminal un fork bomb (sous l’utilisateur zabbix bien sur)
:(){ :|:& };:
Vous verrez que le nombre de process ne dépassera pas 20
Every 2,0s: ps aux | egrep '^zabbix' Sun Sep 14 21:39:41 2014 zabbix 2573 0.0 0.2 3264 664 ? S 20:55 0:00 /usr/local/sbin/zabbix_agentd zabbix 2574 0.0 0.2 3264 672 ? S 20:55 0:02 /usr/local/sbin/zabbix_agentd: collector [idle 1 sec] zabbix 2575 0.1 0.5 3316 1264 ? S 20:55 0:04 /usr/local/sbin/zabbix_agentd: active checks #1 [idle 1 sec] zabbix 5541 0.8 1.1 5764 2792 pts/1 S+ 21:38 0:00 -su zabbix 5703 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5704 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5705 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5706 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5707 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5709 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5710 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5711 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5712 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5713 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5714 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5715 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5716 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5717 0.0 0.7 5920 1888 pts/1 S 21:39 0:00 -su zabbix 5718 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su zabbix 5719 0.0 0.7 5920 1884 pts/1 S 21:39 0:00 -su
Sans cette limite, votre raspberry serait parti dans les choux et pas d’autre moyen que de le débrancher électriquement (sauf si vous avez mis un watchdog).