Bien que Bash lui-même n'ait pas de mécanismes intégrés pour limiter l'utilisation des ressources, vous pouvez utiliser divers outils et techniques pour y parvenir:
1. Limites au niveau du système:
* ulimit: La commande `ulimit` vous permet de définir des limites de l'utilisation des ressources pour le shell actuel et ses processus enfants. Vous pouvez spécifier des limites pour:
* Taille maximale du processus (mémoire): `ulimit -m`
* Taille maximale du fichier: `ulimit -f`
* Nombre maximum de fichiers ouverts: `ulimit -n`
* Nombre maximum de processus: `ulimit -u`
* limite de temps CPU: `ulimit -t`
* Limites à l'échelle du système: Ceux-ci sont définis dans le fichier `/ etc / Security / Limits.Conf` et affectent tous les utilisateurs. Vous pouvez définir des limites pour des utilisateurs ou des groupes spécifiques.
2. Outils et bibliothèques:
* cgroupes: Les groupes de contrôle vous permettent de regrouper les processus et de limiter leur utilisation des ressources (CPU, mémoire, E / S). Il s'agit d'une fonctionnalité puissante pour la gestion des ressources, en particulier pour les applications conteneurisées.
* csetns: Une caractéristique plus récente similaire aux CGROUPS, offrant un contrôle plus fin sur les limites de ressources.
* Outils de surveillance des ressources:
* en haut: Fournit une vue en temps réel de l'utilisation des ressources système, y compris le processeur, la mémoire et les informations de processus.
* htop: Une alternative plus conviviale à «TOP».
* ps: Répertorie les processus et leur utilisation des ressources.
* gratuit: Affiche la mémoire et l'échange disponibles de l'espace.
* vmStat: Fournit des statistiques sur l'utilisation de la mémoire virtuelle.
3. Techniques de script de coquille:
* délais: Utilisez la commande `Timeout` pour limiter le temps d'exécution d'une commande ou d'un script.
* Surveillance du processus: Utilisez des outils tels que «Watch» ou «PS» pour surveiller l'utilisation des ressources et terminer les processus dépassant les limites prédéfinies.
* Gestion du signal: Vous pouvez piéger des signaux comme «Sigkill» ou «Sigterm» pour gérer une utilisation excessive des ressources.
* Suivi des ressources: Implémentez la logique personnalisée dans vos scripts pour suivre la consommation de ressources et terminer les processus si les limites sont atteintes.
Exemple:
`` `bash
Définissez une limite de mémoire de 512 Mo pour le shell actuel
ulimit -m 512000
Limitez le temps du CPU à 10 secondes
ulimit -t 10
Exécutez une commande avec un délai de 30 secondes
Timeout 30 command_to_run
`` '
Considérations importantes:
* Les limites de ressources peuvent affecter les performances. Réglez soigneusement les limites pour éviter d'entraver la fonctionnalité du système ou des applications.
* Les limites à l'échelle du système peuvent affecter tous les utilisateurs. Considérez l'impact sur les autres utilisateurs avant de les implémenter.
* La surveillance des ressources est cruciale. Surveiller régulièrement l'utilisation des ressources pour s'assurer que les limites sont appropriées et que les ajustements sont effectués au besoin.
En combinant ces méthodes, vous pouvez gérer efficacement l'utilisation des ressources dans votre environnement UNIX. N'oubliez pas de choisir les techniques appropriées en fonction de vos besoins spécifiques et de la complexité de votre système.
|