GNU/Linux >> Tutoriels Linux >  >> Linux

-bash :fork :impossible d'allouer de la mémoire

J'ai également rencontré ce problème avec mon bureau Ubuntu 14.04.

 free -m

Même ces commandes de base ont montré une erreur Impossible d'allouer de la mémoire. Lors de l'enquête, nous avons constaté que le système utilise toute la mémoire pour la mise en cache et ne libère pas de mémoire. Cela s'appelle Cache Ballooning et a résolu ce problème en effaçant le cache.


Dans mon cas, le système d'exploitation manquait de PID au lieu de mémoire, le message d'erreur était le même.

La valeur par défaut du numéro PID maximum est 32768, pour afficher la valeur, exécutez

cat  /proc/sys/kernel/pid_max

Pour changer le nombre maximum de pid, exécutez

echo 100000 > /proc/sys/kernel/pid_max

Dans mon scénario, la cause principale était qu'un processus Java a engendré plus de 18 000 threads (dans le noyau Linux, le thread est essentiellement un processus), pour connaître le nombre de threads de chaque processus, exécutez

ps -eo nlwp,pid,args --sort nlwp

Linux
  1. Quel processus a le Pid 0 ?

  2. "Échec de mlock :impossible d'allouer de la mémoire" Erreur de commande lvcreate dans CentOS/RHEL 7

  3. Qu'est-ce que ioremap()

  4. Plus précisément, comment fork() gère-t-il la mémoire allouée dynamiquement à partir de malloc() sous Linux ?

  5. Lire la mémoire des processus vivants sans l'interrompre

Qu'est-ce que la NVM (mémoire non volatile) ?

Obtenir l'identifiant du sous-processus en Java

Pouvons-nous tester l'unité d'allocation de mémoire ?

Utilisation de la mémoire de la commande TOP

Impossible d'allouer de la mémoire alors qu'aucun processus ne semble utiliser de mémoire

Mémoire inactive Linux