Ich versuche, den Anweisungen der MongoDB-Dokumentation zu folgen, um LTH für eine Maschine ordnungsgemäß zu konfigurieren Ausführen von MongoDB.

Eine der Anweisungen besteht darin, ein Skript zu erstellen, das beim Booten ausgeführt wird. Leider wurden weder das vorgeschlagene Skript noch der ähnliche Code als a umgeschrieben systemd service funktioniert.

Beim Debuggen des Problems ist ein anderes aufgetreten. Bei der Ausführung:

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

der Befehl scheint erfolgreich ausgeführt zu werden, aber die Datei bleibt unverändert. Wenn ich also Folgendes ausführe:

root@demo:/# cat /sys/kernel/mm/transparent_hugepage/enabled 

, wird der ursprüngliche Inhalt zurückgegeben:

always madvise [never] 

Ich habe versucht, die Datei mit vim zu ändern. Beim Versuch, die Datei zu speichern, wird beanstandet, dass Fsync fehlgeschlagen ist Während dieser Fehler dokumentiert wurde , ist in meinem Fall auf / genügend Speicherplatz vorhanden (20% verwendet) , 7 GB verfügbar.)

Ich führe den Befehl im Modus sudo aus, und die Dateiberechtigungen scheinen korrekt zu sein:

-rw-r--r-- 1 root root 4096 ... 

Die Das Verzeichnis /sys ist auch nicht im schreibgeschützten Modus gemountet , wie gezeigt durch:

root@demo:/# grep sysfs /proc/mounts sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 

Was passiert hier?

Antwort

sysfs, das normalerweise auf /sys gemountete Dateisystem, ist ein spezielles virtuelles Dateisystem für die Schnittstelle mit dem Linux-Kernel.

Die darin enthaltenen Dateien sind nicht“ Bei realen Dateien stellen sie Datenstrukturen im Kernel dar und unterstützen nur recht einfache Zugriffsmethoden. Das Lesen aus einer solchen Datei fragt den Kernel nach Informationen. Das Schreiben in eine solche Datei weist den Kernel an, eine Einstellung zu ändern oder eine Aktion auszuführen.

Aus diesem Grund schlägt vim fehl. Er versucht, auf die virtuellen Dateien in zuzugreifen Für echte Dateien optimierte Methoden, die auf sysfs nicht unterstützt werden.

Ihr erster Befehl

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

war bereits erfolgreich!

Viele sysfs „-Dateien“, einschließlich /sys/kernel/mm/transparent_hugepage/enabled, drucken nicht nur die aktuelle Einstellung beim Lesen, sondern alle möglichen Modi und verwenden Sie Klammern, um zu beschreiben, welcher von mehreren Modi stattdessen aktiv ist.

In Ihrem Fall steht never in Klammern, sodass der Modus, den Sie mit echo ist bereits aktiv:

always madvise [never] 

Wenn Sie daran interessiert sind, wie sysfs funktioniert, Sie können mehr darüber in Wikipedia oder in der Linux-Kerneldokumentation lesen .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.