[LINUX] Swapon fehlgeschlagen: Was tun, wenn Sie sich über eine Operation ärgern, die nicht zulässig ist?

Status

Ich habe Laradock auf einer EC2-Instanz von AWS verwendet, um eine lokale Entwicklungsumgebung für Laravel zu erstellen. Starten Sie nach dem Erstellen der Laradock-Umgebung den Container mit "docker-compose up -d nginx mysql". Als ich versuchte, mit "docker-compose exec workspace bash" eine Verbindung zu "laradock_workspace_1" herzustellen und Laravel zu generieren, trat der folgende Fehler auf.

Der EC2-Instanztyp ist "t2.micro" (RAM 1 GB) und der AMI ist Amazon Linux 2.


$ root@4e964ed4f2ce: composer create-project --prefer-dist laravel/laravel ./
Installing laravel/laravel (v7.0.0)
  - Installing laravel/laravel (v7.0.0): Downloading (100%)         
    proc_open(): fork failed - Cannot allocate memory
    The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)
    Unzip with unzip command failed, falling back to ZipArchive class
The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details

PHP Warning:  proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 952

Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 952
                                                     
  [ErrorException]                                   
  proc_open(): fork failed - Cannot allocate memory  
                                                     

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

Ich habe es schon einmal gesehen, also habe ich versucht, eine Auslagerungsdatei zu erstellen, aber es hat nicht funktioniert.

Der laufende Container sieht so aus.


[ec2-user@ip-172-31-47-6 laradock]$ sudo docker-compose ps
           Name                          Command              State                               Ports                            
-----------------------------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up      2375/tcp, 2376/tcp                                           
laradock_mysql_1              docker-entrypoint.sh mysqld     Up      0.0.0.0:3306->3306/tcp, 33060/tcp                            
laradock_nginx_1              /bin/bash /opt/startup.sh       Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:81->81/tcp 
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up      9000/tcp                                                     
laradock_workspace_1          /sbin/my_init                   Up      0.0.0.0:2222->22/tcp, 0.0.0.0:8001->8000/tcp,                
                                                                      0.0.0.0:8080->8080/tcp                       

Was ich versucht habe

Versuchen Sie, eine Auslagerungsdatei normal zu erstellen.

Speichernutzung (MB-Anzeige) Derzeit ist kein Swap Space zugewiesen.


$ root@4e964ed4f2ce:/var/www# free -m
              total        used        free      shared  buff/cache   available
Mem:            983         566         217           3         200         232
Swap:             0           0           0

Erstellen Sie eine Datei für den Swap Space

$ root@4e964ed4f2ce:/var/www# /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 14.8802 s, 72.2 MB/s

Legen Sie die erstellte Datei mit dem Namen swap.1 im Auslagerungsbereich fest

$ root@4e964ed4f2ce:/var/www# /sbin/mkswap /var/swap.1
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=450a4e24-3455-4466-a6e0-5daf190cdad3

Swap Space aktivieren

root@4e964ed4f2ce:/var/www# /sbin/swapon /var/swap.1
swapon: /var/swap.1: insecure permissions 0644, 0600 suggested.
swapon: /var/swap.1: swapon failed: Operation not permitted

Dann erscheint der Fehler "Swapon fehlgeschlagen: Operation nicht erlaubt" und die Aktivierung des Swap-Bereichs schlägt fehl. Da es sich um ein Berechtigungsproblem handelt, habe ich es mit sudo versucht, aber das Ergebnis hat sich nicht geändert. Es scheint, dass es durch Manipulationen an den im Docker aufgeführten Betriebssystemberechtigungseinstellungen gelöst werden kann, aber ich möchte mich nicht mit Dingen herumschlagen, die ich nicht so gut verstehe ...

Lösung

Die Ursache für den Austausch ist in erster Linie ein Mangel an physischem Gedächtnis. Anstatt eine Auslagerungsdatei zu erstellen und virtuellen Speicher hinzuzufügen, haben wir EC2 skaliert. Instanztyp: t2.micro-> t2.small Ich denke, es gibt kein Problem, da sich der Stundensatz nur um 1 Yen ändert.

Instanztyp RAM(GB) Online Linux Preise
t2.micro 1 0.0116 USD pro Stunde
t2.small 2 0.023 USD pro Stunde

Die Seite, die ich als Referenz verwendet habe

Gegenmaßnahmen, wenn kein Speicher zugeordnet werden kann, werden in Laravel angezeigt [Entspricht dem Fehler Docker Operation nicht zulässig](https://bmf-tech.com/posts/Docker%E3%81%AEOperation%20not%20permitted%E3%81%A8%E3%81%84%E3 % 81% 86% E3% 82% A8% E3% 83% A9% E3% 83% BC% 08% E3% 81% AB% E5% AF% BE% E5% BF% 9C% E3% 81% 99% E3 % 82% 8B)

Recommended Posts

Swapon fehlgeschlagen: Was tun, wenn Sie sich über eine Operation ärgern, die nicht zulässig ist?
Was tun, wenn Sie URL 443 mit pip nicht abrufen konnten?
Was tun, wenn bei der Pip-Installation ein Unicode-Dekodierungsfehler auftritt?
Was tun, wenn Sie sich mit FileNotFoundError in der Dateireferenz verlieren?
Was tun, wenn Sie sich über TensorFlow v2 ohne Attribut 'app' ärgern?
Was tun, wenn TypeError in min und max von numpy auftritt?
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn "Python nicht konfiguriert" angezeigt wird? Verwenden von PyDev in Eclipse
Was tun, wenn Sie sich über "Wertefehler: unbekannt lokal: UTF-8" in python manage.py syncdb ärgern?
Was tun, wenn Sie wütend werden, wenn Sie nicht libxml / xmlversion.h haben, wenn Sie lxml in pip einfügen?
Was tun, wenn Overalls "Abdeckung unbekannt" werden?
Was tun, wenn Sie keine Dateien mit Indizes sortieren können?
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn in Python minus Null angezeigt wird?
Was tun, wenn Sie mit Maven kein Projekt erstellen können?
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Was zu tun ist, wenn Sie sich über "Umkehrungen" ärgern, muss eine 2D-Liste sein ... im matplotlib-Pfeil
Was tun, wenn Sie wütend werden, wenn Sie bei der Installation von lxml unter CentOS nicht über libxml / xmlversion.h verfügen?
Was tun, wenn die Option -f von grep nicht funktioniert?
Was tun, wenn Sie mit Python keine E-Mail an Yahoo senden konnten?
Was tun, wenn Sie während der Anaconda-Installation unter Linux nicht weiterkommen?
Was tun, wenn bei der Installation von pyenv kein Fehler auftritt?
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Was tun, wenn Sie nicht mit pip in einer Babun-Umgebung installieren können?
Was tun, wenn die Pipenv-Shell nicht mehr möglich ist?
Was tun, wenn Sie sich über "Gtk * Backend erfordert die Installation von pygtke" ärgern, obwohl pygtk in matplotlib enthalten ist
Was tun, wenn bei der Installation von CentOS auf VirtualBox die Meldung "Die Sitzung konnte nicht geöffnet werden" angezeigt wird
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Was tun, wenn auf pipenv der Fehler "Keine Versionen gefunden" angezeigt wird?
Was tun, wenn Sie mysqlclient nicht per Pip installieren können?
Kein Modul mit dem Namen Was tun, wenn Sie "libs.resources" erhalten?
ModuleNotFoundError: Kein Modul Was tun, wenn Sie'tensorflow.contrib 'erhalten?
Links, um mit Sublime Text zu tun, was Sie wollen
Was tun, wenn sys / cdefs.h nicht vorhanden ist?
Was tun, wenn pyenv nicht aktiviert ist (zsh)
Was tun, wenn ein Fehler "unbekannter Dienst" vom gRPC-Server zurückgegeben wird?
Was tun, wenn in Hydrogen "Kein Kernel für Sprachpython gefunden" angezeigt wird?
Was tun, wenn beim Konvertieren von PySparkDataFrame in PandasDataFrame ein Speicherfehler auftritt?
Was tun, wenn in pycurl (einer von ihnen) "(35, 'SSL-Verbindungsfehler')" angezeigt wird?
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Was tun, wenn bei Verwendung von ts-node-dev unter Linux der Fehler "ERR_FEATURE_UNAVAILABLE_ON_PLATFORM" angezeigt wird?
Was tun, wenn Sie Python auf IntelliJ ausführen und mit einem Fehler beenden?
Was tun, wenn bei Do and Return in einem Golang-Test ein Fehler mit zu vielen Eingabeargumenten auftritt?
Was tun, wenn bei der Installation von openCV 3 der Fehler "Fehler: opencv3: Unterstützt nicht das Erstellen von Python 2- und 3-Wrappern" angezeigt wird
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Was tun, wenn Sie von Windows-Zeichencodes abhängig sind?
Was tun, wenn Sie sich nicht als root anmelden können?
Was tun, wenn Sie unter Linux kein WLAN verwenden können?
Einfache Lösung, wenn Sie Ihr EC2-Schlüsselpaar verlieren
Was tun, wenn unter Linux die Fehlermeldung "Namensauflösung vorübergehend fehlgeschlagen" ausgegeben wird?
[Entwicklungsumgebung] Wenn Sie PHP Artisan nicht migrieren können, während Operation nicht zulässig ist, überprüfen Sie die Berechtigungen!
Was tun, wenn Swagger-Codegen mit Python und Importfehler ausgeführt wird? Es wird kein Modul mit dem Namen angezeigt
Was tun, wenn bei yum ein Metalink für Repository-Fehler nicht abgerufen werden kann?
Was tun, wenn ein undefinierter Fehler angezeigt wird: Das Objekt 'Module_six_moves_urllib_parse' hat unter MacOS kein Attribut 'urlencode'
Was tun, wenn beim Ausführen von "certbot erneuern" in der CakePHP-Umgebung eine Fehlermeldung angezeigt wird?
Was tun, wenn Yum kaputt geht?
Was tun mit der Installation von Magics?
Was tun mit PYTHON Release?