Les machines sont configurées pour éviter le gaspillage de ressources. Les principales limites qui vous poseront peut-être à l'occasion problème sont les suivantes : taille maximale de création de fichier, temps d'exécution d'un processus, nombre de processus en cours d'exécution.
Toutes les limites sont consultables et modifiables jusqu'à la valeur dite Hard limit. Vous pouvez lister les valeurs des limites en cours avec ulimit. L'option -a
vous donnera toutes les limites ayant cours actuellement. L'option -H
vous donne les limites non dépassables.
user:~$ ulimit -f -t -u file size (blocks, -f) 3000000 cpu time (seconds, -t) 7200 max user processes (-u) 1000
user:~$ ulimit -H -f -t -u file size (blocks, -f) 9000000 cpu time (seconds, -t) 86400 max user processes (-u) 1100
Pour changer une limite, utilisez ulimit avec l'argument correspondant au type de limite -f par exemple pour la taille maximale de création de fichier et en dernier la limite voulue :
user:~$ ulimit -f 4000000
Attention : quand vous abaissez une limite, vous ne pouvez pas la remonter ensuite - en tout cas pas dans le processus en cours ou dans l'un de ces fils.
Lorsque vous utilisez des programmes qui lancent beaucoup de thread, la limite du nombre de processus est facilement atteinte alors que la sortie de la commande ps ux vous donne l'impression d'un nombre de processus raisonnables. Utilisez alors l'option m de la commande ps pour afficher les thread. Vous pouvez alors compter le nombre de vos processus avec la commande :
user:~$ ps uxm | wc -l