J'utilise Ubuntu 14.04. Récemment, lorsque je me connecte via SSH avec mon utilisateur disposant des privilèges Sudo, chaque commande exécutée génère 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'essaie 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 compte.
Edit: Selon la réponse/suggestion donnée ici, la sortie "libre"
myuser@mymachine:~$ free
-bash: fork: Cannot allocate memory
Comme il est indiqué dans les messages d'erreur, votre ordinateur est à court de mémoire. Cela peut être dû à un certain nombre de raisons, mais fondamentalement, quelque chose grignote toute votre mémoire et ne laisse aucune trace, même pour une utilisation de base des commandes.
Je vous suggérerais de redémarrer votre droplet (allez simplement sur le panneau de configuration de votre client et sélectionnez "Redémarrer"), ssh
in puis exécutez top
ou htop
. Surveillez l'utilisation de la mémoire et voyez quel processus utilise toute la mémoire. De là, essayez soit
htop
ou top
pour savoir combien de mémoire vous utilisez avec les programmes actuels. Si vous remarquez que vous utilisez la quasi-totalité de ces informations, essayez d’en éliminer certains en éliminant les programmes/processus inutiles.Pour sortir de cette situation sans redémarrer, vous pouvez déclencher le tueur de MOO manuellement de la manière suivante:
echo 1 > /proc/sys/kernel/sysrq
echo f > /proc/sysrq-trigger
echo 0 > /proc/sys/kernel/sysrq
En complément de la réponse acceptée, il y a une chose supplémentaire à considérer: votre système peut manquer de descripteurs de fichier ou même tampons de sockets et avoir encore beaucoup de mémoire en même temps. 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
# cat/proc/user_beancounters
Cela vous donnera les premiers dépassements dans la colonne la plus à droite. Si cela est vrai, optez pour un pack d’hébergement plus important ou pour rechercher le coupable le plus probable: la base de données mysql ou mariadb qui, en présence d’une _PHP application défectueuse, perdra le nombre de fichiers manipulés par centaines .
Cela peut également se produire si votre serveur Web a ssh ouvert sur Internet et accepte les identifiants de nom d'utilisateur/mot de passe: même si Fail2ban est en cours d'exécution, vous avez peut-être attiré une tentative de rupture de dictionnaire distribué qui consomme également beaucoup de ressources.