GNU/Linux >> Tutoriels Linux >  >> Linux

Cent OS :Comment puis-je désactiver ou réduire le surengagement de mémoire, et puis-je le faire en toute sécurité ?

Solution 1 :

La surcharge de mémoire peut être désactivée par vm.overcommit_memory=2

0 est le mode par défaut, où le noyau détermine de manière heuristique l'allocation en calculant la mémoire libre par rapport à la demande d'allocation en cours. Et le définir sur 1 active le mode magique, où le noyau annonce toujours qu'il a suffisamment de mémoire libre pour toute allocation. Le réglage sur 2 signifie que les processus ne peuvent allouer que jusqu'à un montant configurable (overcommit_ratio ) de RAM et commencera à recevoir des messages d'échec d'allocation ou OOM lorsqu'il dépassera ce montant.

Est-ce sécuritaire de le faire, non. Je n'ai vu aucun cas d'utilisation approprié où la désactivation de la surcharge de mémoire a réellement aidé, à moins que vous ne soyez sûr à 100% de la charge de travail et de la capacité matérielle. Si vous êtes intéressé, installez kernel-docs package et aller à /Documentation/sysctl/vm.txt pour en savoir plus, ou lisez-le en ligne.

Si vous définissez vm.overcommit_memory=2 alors il surengagera jusqu'au pourcentage de RAM physique configuré dans vm.overcommit_ratio (la valeur par défaut est 50 %).

echo 0/1/2 > /proc/sys/vm/overcommit_memory 

Cela ne survivra pas à un redémarrage. Pour la persistance, mettez ceci dans /etc/sysctl.conf fichier :

vm.overcommit_memory=X

et lancez sysctl -p . Pas besoin de redémarrer.

Solution 2 :

Déclaration totalement sans réserve :la désactivation de la surcharge de mémoire est définitivement "plus sûre" que son activation.

$customer l'a installé sur quelques centaines de serveurs Web et cela a beaucoup aidé avec des problèmes de stabilité.

D'un autre côté, les gens pourraient ne pas considérer qu'il est "sûr" que leurs processus sortent de la mémoire alors qu'ils aimeraient simplement surengager un peu de RAM et ne l'utiliseraient jamais vraiment (c'est-à-dire que SAP serait un très bon exemple)

Donc, vous êtes de retour pour voir si cela améliore les choses pour vous. Puisque vous y réfléchissez déjà pour vous débarrasser des problèmes connexes, je pense que cela pourrait vous aider.

(Je sais que je risquerai un vote négatif de la part d'une personne grincheuse)

Solution 3 :

Je suis d'accord que la désactivation de l'overcommit est plus sûre que de l'activer dans certaines circonstances. Si le serveur n'exécute que quelques travaux de mémoire volumineux (comme des simulations de circuits dans mon cas), il est beaucoup plus sûr de refuser à l'application la demande de mémoire plutôt que d'attendre un événement OOM (qui suivra certainement sous peu). Très souvent, nous voyons des serveurs avoir des problèmes après que le tueur OOM a fait son travail.


Linux
  1. Comment supprimer les tampons de mémoire et le cache sous Linux

  2. Comment désactiver Snap dans Ubuntu ?

  3. Comment désactiver le verrouillage de l'écran dans Ubuntu

  4. Comment désactiver le retour à la ligne en moins

  5. Comment désactiver définitivement la gestion de l'alimentation sans fil

Comment installer et utiliser l'outil médico-légal de mémoire Volatility

Comment augmenter la mémoire et le processeur sur une machine vagabonde

Comment trouver les 10 principaux processus en cours d'exécution par utilisation de la mémoire et du processeur

Comment désactiver la navigation dans les répertoires sur Apache et Nginx

Comment les baies RAID assurent la sécurité et l'accessibilité de vos données

Comment enquêter sur une fuite mémoire avec Apache et PHP ?