J'utilise Ubuntu 14.04. Récemment, lorsque je me connecte via SSH avec mon utilisateur disposant des privilèges sudo, chaque commande que j'exécute entraîne une erreur «Impossible d'allouer de la mémoire». En voici quelques-unes que j'ai essayées sur ma console
myuser@mymachine:~$ whoami
-bash: fork: Cannot allocate memory
myuser@mymachine:~$ uname -a
-bash: fork: Cannot allocate memory
Même si j'essaye, sudo reboot now
j'obtiens l'erreur ci-dessus, donc je ne sais pas quoi d'autre je peux essayer de déverrouiller mon instance. L'hôte est DigitalOcean si cela importe.
Edit: Par la réponse / suggestion donnée ici est la sortie de "gratuit"
myuser@mymachine:~$ free
-bash: fork: Cannot allocate memory
sudo sysctl -w vm.oom_kill_allocating_task=1
ou en permanence/etc/sysctl.conf
.sudo reboot
avant de lancer ça. Merci!Pour compléter la réponse acceptée, il y a une chose supplémentaire à considérer: votre système peut manquer de descripteurs de fichiers ou même de tampons de socket et avoir encore beaucoup de mémoire tout en donnant la même erreur. Cela est particulièrement vrai si l'hébergement partagé impose des limites de cette nature. Sur les systèmes OpenVZ, regardez le contenu de
Cela vous donnera dans la colonne la plus à droite les premiers dépassements. Si cela est vrai, passez à un package d'hébergement plus grand ou traquez le coupable le plus probable: la base de données mysql ou mariadb qui peut, en présence d'une application PHP défectueuse, fuir le fichier des centaines de secondes.
Cela peut également se produire si votre serveur Web a ouvert ssh à Internet et accepte les identifiants de connexion par nom d'utilisateur / mot de passe: même si vous exécutez fail2ban, vous avez peut-être attiré une interruption de dictionnaire distribuée qui consomme également beaucoup de ressources.
la source