Pas de limites!! Nous pouvons tous aimer n’avoir aucune limite, mais est-ce vraiment une bonne idée ?? Comme d'habitude, lorsqu’il n’y a pas de limites, « il y aura des dragons ». Il en va de même pour limits.conf, même si pour les serveurs de test, une limite vraiment illimitée.conf aide!
Qu'est que c'est limits.conf?
Les limits.conf
Le fichier contient les paramètres de limite de ressources pour le système d'exploitation Linux. Lorsque votre ordinateur Linux a été installé, le fichier a été créé dans le cadre de l'installation et contenait des valeurs pour des ressources telles que la taille de la mémoire virtuelle, le nombre maximum de fichiers et plus.
Ces valeurs sont définies sur des limites prédéfinies pour garantir que votre système Linux n'est pas facilement surchargé. Cas contraire, un programme ou une procédure malhonnête pourrait facilement arrêter un système fonctionnant autrement. Imaginer, par exemple, une situation où vous définissez le nombre maximum de fichiers ouverts sur illimité, et une procédure frauduleuse (qu'est-ce qu'une procédure avec un défaut, ou même un logiciel malveillant tel qu'un virus ou un logiciel malveillant) maintenant commencer à ouvrir le fichier. après le fichier sur le système.
Bientôt, le système manquera d'une ressource dont il a besoin pour gérer tous ces fichiers ouverts. Que le processeur de votre système (le processeur), ou de la mémoire ou même du disque dans certains cas, où, par exemple, nous avons peut-être défini la taille maximale du fichier du noyau comme illimitée, et nous exécutons de gros processus sur un système avec beaucoup de mémoire et peu d'espace libre restant, ou un petit lecteur racine.
En résumé, en utilisant le limits.conf
fichier de configuration, un utilisateur (l'administrateur système) vous pouvez spécifier des limites sur les ressources disponibles pour l'utilisateur et pour le système.
Le format du limits.conf
déposer (réside au /etc/security/
) est bien défini. Généralement, nous spécifierons un domaine applicable (en tant qu'utilisateur, un groupe et même des jokers comme *
), un type (limite souple ou stricte), un élément auquel la règle se rapporte (comme lui nofile
élément qui définit le nombre maximal de fichiers ouverts, les locks
élément qui définit le nombre maximal de verrous de fichiers qu’un utilisateur peut gérer, etc.) et enfin une valeur (la configuration réelle / sentence).
L’en-tête de l' limits.conf
le fichier l’indique clairement avec une quantité appropriée de détails:
Si vous souhaitez en savoir plus sur chaque élément spécifique et d’autres paramètres de configuration avec le limits.conf
déposer, juste courir:
man limits.conf
Sur l’indicateur de votre terminal.
Optez pour l’illimité
En général, à toutes fins utiles, on ne devrait jamais aller illimité avec limits.conf
. Ensuite, Vous pouvez demander, pourquoi cet article? Bon, chaque fois qu’il y a une règle, il existe une exception valide. L’exception, dans cette circonstance, est destiné aux serveurs de test. Lors de l’exécution de tests ou de travaux de contrôle de la qualité de toute nature, vous rencontrerez souvent les limites d’un système.
Configurer les choses comme illimitées, avec une configuration correcte du cadre de test / contrôle qualité pour prendre en charge la gestion des ressources système, est une exception valable pour maintenir des limites raisonnables et spécifiques au système dans limits.conf
. Pour tous les autres serveurs, comme indiqué, une configuration par serveur est préférée et recommandée.
Sans plus de préambules, introduisons un script qui définit toutes les variables et options dans limits.conf
à illimité. Ce script est basé sur la licence GPLv2. serveur_configuration.sh script dans le référentiel mariadb-qa sur GitHub. De plus, vous pourriez être intéressé à explorer ce script pour d'autres fichiers que vous pouvez adopter vers des configurations illimitées pour une configuration de serveur de test., par exemple /etc/sysctl.conf
paramètres et /etc/systemd/logind.conf
Pour configurer un serveur en illimité, exécutez le script suivant à l'invite du terminal du serveur (test) vous voulez définir comme illimité.
Avertissement: gardez à l'esprit que faire cela sur une machine de production n'est probablement pas une bonne idée à moins que vous n'ayez une solide compréhension du changement que vous apportez, comme expliqué en partie dans ce post, et le fait pour une raison précise et valable. Faire ce changement a également des implications de sécurité importantes., et il est recommandé de le faire uniquement sur une machine qui se trouve derrière un pare-feu et un VPN, Autrement dit, pas un serveur public. TLDR; Procéder à la mise en œuvre est à vos risques et périls.
Il faut aussi savoir que pour utiliser un nombre élevé (supérieur à ~ 20000) pour soft et hard nproc peut provoquer une instabilité du système et se bloque sur Centos 7, même sans Ubuntu 18, 19 Oui 20. Je, et d’autres ingénieurs avec moi, nous avons utilisé cette configuration pendant un certain temps pour tester les serveurs, et pour cette demande, c'est idéal. Veuillez noter que tous les paramètres sont illimités sauf nofile
pour lesquels 1048576 est le maximum.
sudo bash -c "chat << FEO > /etc/sécurité/limites.conf
* soft core illimité
* noyau dur illimité
* données logicielles illimitées
* données matérielles illimitées
* soft fsize illimité
* dur fsize illimité
* soft memlock illimité
* dur memlock illimité
* nofile doux 1048576
* nofile dur 1048576
* rss doux illimité
* dur rss illimité
* pile douce illimitée
* pile dure illimitée
* processeur logiciel illimité
* cpu dur illimité
* soft nproc illimité
* dur nproc illimité
* doux comme illimité
* dur comme illimité
* maxlogins souples illimités
* maxlogins durs illimités
* soft maxsyslogins illimité
* dur maxsyslogins illimité
* serrures souples illimitées
* verrous durs illimités
* sigpending souple illimité
* sigpending dur illimité
* soft msgqueue illimité
* hard msgqueue unlimited
EOF"
Une fois que vous avez exécuté ceci, redémarrez simplement votre serveur pour charger tous les nouveaux paramètres de configuration. Vous ne remarquerez aucune différence, sauf que ton test s'exécute, s'ils étaient très gourmands en ressources, ils ne s'arrêteront plus à divers problèmes de définition des limites.
Cela dit, comme indiqué précédemment, aura besoin, dans le cadre de votre cadre de test, un chien de garde robuste et une procédure de surveillance des ressources du serveur pour s'assurer que votre serveur n'est pas surutilisé, ce qui entraîne souvent des blocages et des exigences de redémarrage. Dans un futur post, il est possible qu'il fournisse les bases d'un tel script à partir duquel vous pouvez l'étendre pour couvrir votre propre configuration.
Fin
Il existe des cas d'utilisation valides à configurer /etc/security/limits.conf
à tous les maximums possibles. Comme d'habitude, ils sont rares (et les serveurs de test sont une exception notable).
Dans ce billet, nous en avons appris plus sur limits.conf
: pourquoi il existe et comment changer sa configuration. Nous explorons le limits.conf
format, syntaxe et idiomes et a répertorié un script simple qui peut déterminer tous nos paramètres comme illimités.
Même si vous souhaitez configurer votre serveur à des limites inférieures, le script est facile à adapter et peut être intégré (en tant que code GPLv2 comme décrit) dans vos propres scripts: il suffit de changer unlimited
aux valeurs souhaitées. C’est aussi un moyen simple de configurer rapidement un serveur avec les valeurs souhaitées et, pour cela, unifier et coder votre batterie de serveurs. limits.conf
réglage.
Prendre plaisir!