1 votes

Ubuntu tue les processus lorsqu'il n'y a plus de RAM disponible

Sur une machine ubuntu avec 4GB, je fais tourner apache avec un peu de mpm + mysqld. De plus, il y a un processus postfix, mongod et occasionnellement quelques processus imagemagick/convert actifs.

Dans 99 % des cas, c'est très bien. Cependant, il arrive parfois (pas aux heures de pointe, mais par exemple à 3 heures du matin - bien que le processus de sauvegarde commence avec quelques heures de retard) que le serveur manque de mémoire vive. Il tue alors des processus et malheureusement il démarre avec apache et/ou mysqld :-(

Ai-je la possibilité de définir quel processus est "important" ou prioritaire ? Par exemple, je définirais 1) apache 2) mysql 3) postfix 4) convert 5) mongod <- pour autant que je sache, mongod est très poli et libère de la mémoire vive pour d'autres applications si nécessaire.

Btw. le système ne manque pas de mémoire à cause de processus fantômes ; j'utilise des scripts plus propres qui s'assurent que la mémoire inutilisée est recyclée :-)

Merci

0voto

SlinkingAnt Points 61

Il s'agit d'un comportement déterminé par le noyau. Lorsque le noyau manque de mémoire, il réagit mal et tue le processus qui utilise le plus de mémoire. Sur le bureau, il peut parfois s'agir du xserver, un autre mauvais choix à tuer en premier. Cela ne devrait pas se produire si l'espace de pagination est suffisant.

Si votre stratégie était de vous passer d'un fichier d'échange afin de forcer le système d'exploitation à utiliser la RAM, je vous suggère d'avoir un fichier d'échange et d'utiliser la commande swappiness pour que le système d'exploitation utilise principalement la mémoire vive. Pour savoir comment procéder, cliquez ici : Comment configurer la permutabilité ?

10 est une valeur agressive typique pour les swappiness . J'ai constaté qu'avec des valeurs inférieures à 10, le système d'exploitation semblait donner la priorité au déchargement de l'espace de stockage plutôt qu'à l'exécution des programmes. En d'autres termes, lorsque je manquais de mémoire, les choses ralentissaient considérablement. Commencez donc par 10, ou quelque chose d'approchant, et voyez si la RAM est bien utilisée.

-1voto

Seub Points 133

Dans le Moniteur système, vous pouvez simplement attribuer une priorité en cliquant avec le bouton droit de la souris sur un processus et en choisissant de modifier la priorité. Si vous n'avez pas d'interface graphique, vous pouvez utiliser la commande renice. page de manuel .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X