Parfois, lorsque j'utilise Lubuntu 17.10 - entièrement mis à jour, mon utilisation de RAM atteint 100% et le système devient inutilisable. Si j'ai de la "chance", je peux déplacer ma souris d'environ 1 pixel toutes les 10 secondes ... Cela le rend pratiquement impossible de faire quoi que ce soit, même arrêter une application. Je suis alors obligé d'utiliser le bouton d'alimentation de mon ordinateur portable.
J'utilise un macbook pro rétina fin 2013, avec une nouvelle installation de Lubuntu 17.10 presque fraîche.
Jusqu'à présent, c'est arrivé alors que spyder3 était ouvert et que j'avais chargé des fichiers trop volumineux. C'est également arrivé lorsque j'ai cliqué sur ce lien dans Firefox (ATTENTION: un crash peut arriver) http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/SNA_TABLE1 . J'ai même fermé l'onglet avant de frapper à 100% d'utilisation, mais il a simplement continué jusqu'à 100% et s'est écrasé. Je ne l'ai remarqué que parce que j'ai fermé l'onglet et vu l'utilisation de RAM dans spyder3 (je n'exécutais aucun script python3).
Est-ce qu'il y a un moyen d'éviter cela? Peut-être assurez-vous qu'une quantité spécifique de RAM ne peut être utilisée que par le système d'exploitation?
Votre problème est probablement dû au "fracas" du système - déplacer plusieurs pages de mémoire d'un espace d'échange à la fois et ne pas laisser le temps nécessaire à l'exécution de processus réels.
Si vous souhaitez que les processus utilisant trop de mémoire soient supprimés au lieu de ralentir le fonctionnement de l'ensemble du système, vous pouvez désactiver le swap. Lancer Sudo swapoff -a
y parviendra jusqu’à un redémarrage; pour désactiver définitivement le swap, vous devez éditer /etc/fstab
pour supprimer la partition swapfile/swap, en supprimant ou en commentant la ligne avec swap
dans la troisième colonne. Par exemple, mon /etc/fstab
ressemble un peu à ceci:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sda1 during installation
UUID=fdedeca9-dafe-1a05-0866-7502fda1a7ea /boot ext2 defaults 0 2
/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
Pour désactiver le swap, je commenterais la dernière ligne (en mettant un hash #
au début de la ligne), puis redémarrerais. Assurez-vous de ne pas modifier le reste du fichier, sinon vous risqueriez d'empêcher votre système de démarrer.
Caveat: Si vous désactivez le swap et que vous ne disposez pas de suffisamment de mémoire physique pour les services système de base, le tueur de MOO peut décider de tuer l'un de ceux-ci et conduire le système à un blocage ou à un état inutilisable (la question dit que vous voulez éviter).
Si un processus consomme trop de mémoire, le système doit se protéger par le biais du tueur de MOO, une fonctionnalité standard de tout système Linux.
Comme indiqué dans la meilleure réponse jusqu’à présent à Comment le tueur OOM décide-t-il quel processus tuer en premier?
Si la mémoire est entièrement utilisée par les processus, dans la mesure où cela peut menacer la stabilité du système, le destructeur de MOO entre en scène.
REMARQUE: Le tueur de MOO a la tâche de continuer à supprimer les processus jusqu'à ce que suffisamment de mémoire soit libérée pour permettre le bon fonctionnement du reste du processus que le noyau tente d'exécuter.
Le tueur OOM doit sélectionner le (s) meilleur (s) processus à tuer. Mieux ici, fait référence à ce processus qui libérera le maximum de mémoire lors de la mise à mort et qui est également le moins important pour le système.
L'objectif principal est de supprimer le plus petit nombre de processus possible afin de minimiser les dommages causés tout en maximisant la quantité de mémoire libérée.
Pour faciliter cela, le noyau maintient un oom_score pour chacun des processus. Vous pouvez voir le oom_score de chacun des processus dans le système de fichiers/proc sous le répertoire pid.
$ cat /proc/10292/oom_score
Plus la valeur de oom_score est élevée pour un processus, plus grande est sa probabilité d'être tué par le tueur MOM dans une situation de mémoire insuffisante.
Si votre système se bloque, je vous conseillerais de peaufiner la stratégie de MOO en ajustant le paramètre oom_score de vos processus.
Il est peu probable que le tueur de MOO ait été désactivé mais, pour vous en assurer, vérifiez si cette commande renvoie 0
:
$ Sudo sysctl vm.overcommit_memory
vm.overcommit_memory = 0
Références:
Créez une partition ou un fichier d'échange. Ce sont comme la RAM, mais sur le disque dur, il est donc beaucoup plus lent. Lorsque vous ne disposez pas de suffisamment de RAM, le système stockera les données sur le disque dur au lieu de la RAM. Vous devez spécifier la taille de celui-ci. Il est généralement recommandé de le faire à peu près de la même taille que votre RAM.
le fichier d'échange est plus facile à créer, mais il ne vous permet pas de passer en veille prolongée sur le disque dur.
fichier d'échange: https://www.howtoforge.com/ubuntu-swap-file
la partition de swap est plus difficile à créer si vous avez déjà installé votre système et que tout l’espace du disque dur est partitionné, mais cela permet le mode veille prolongée.
partition d'échange: Comment puis-je ajouter une partition d'échange après l'installation du système?
@Josh a répondu:
Je pense que le problème décrit ("le système devient inutilisable, si j'ai de la" chance ", je peux déplacer ma souris d'environ 1 pixel toutes les 10 secondes") est probablement dû à la panique du système qui tente d'échanger plusieurs pages à la fois. . La désactivation de l’échange devrait tuer l’application gourmande en mémoire plutôt que de mettre tout le système à l’arrêt.
Cela a résolu mon problème.
J'ai eu un échange lorsque j'ai installé Lubuntu, mais il a été supprimé avec gparted plus tard. Je n'ai pas édité/etc/fstab, ce qui est à l'origine du problème. Une fois le swap retiré correctement, le tueur OOM a commencé à fonctionner comme prévu.