Używam Ubuntu 14.04. Ostatnio, kiedy loguję się przez SSH z moim użytkownikiem z uprawnieniami sudo, każde uruchamiane polecenie powoduje błąd „Nie można przydzielić pamięci”. Oto kilka, które wypróbowałem na konsoli
myuser@mymachine:~$ whoami
-bash: fork: Cannot allocate memory
myuser@mymachine:~$ uname -a
-bash: fork: Cannot allocate memory
Nawet jeśli spróbuję sudo reboot now
, otrzymuję powyższy błąd, więc nie wiem, co jeszcze mogę spróbować odblokować moją instancję. Jeśli to ma znaczenie, gospodarzem jest DigitalOcean.
Edycja: Zgodnie z podaną tutaj odpowiedzią / sugestią jest wynikiem „darmowy”
myuser@mymachine:~$ free
-bash: fork: Cannot allocate memory
sudo sysctl -w vm.oom_kill_allocating_task=1
lub na stałe/etc/sysctl.conf
.sudo reboot
przed uruchomieniem tego. Dzięki!W uzupełnieniu do zaakceptowanej odpowiedzi należy wziąć pod uwagę jeszcze jedną rzecz: W twoim systemie mogą zabraknąć uchwytów plików, a nawet buforów gniazd i nadal będą mieć dużo pamięci, dając ten sam błąd. Jest to szczególnie ważne, jeśli hosting współdzielony narzuca ograniczenia tego rodzaju. W systemach OpenVZ obejrzyj zawartość
To da ci w prawej kolumnie pierwsze przekroczenia. Jeśli to prawda, przejdź do większego pakietu hostingowego lub odszukaj najbardziej prawdopodobnego winowajcę: bazę danych mysql lub mariadb, która w przypadku wadliwej aplikacji PHP może przeciekać setki plików na sekundę.
Może się to również zdarzyć, jeśli Twój serwer WWW ma ssh otwarty na Internet i akceptuje logowanie się do nazwy użytkownika / hasła: nawet jeśli uruchomiłeś fail2ban, być może przyciągnąłeś rozproszony słownik, który zużywa również wiele zasobów.
źródło