Optimieren Sie das Dateisystem für Geschwindigkeit über Integrität

Unter Linux verwende ich die noatime,nodiratime,nobarrier,data=writebackMount-Optionen, um /etc/fstabdie Sicherheit/Konsistenz/Integrität des Dateisystems gegen Geschwindigkeit einzutauschen, was für die lokale Entwicklung sinnvoll ist. Gibt es eine Möglichkeit, etwas Ähnliches zu tun oder auf andere Weise einen solchen Kompromiss für die anderen OS X-Entwickler in meinem Team einzugehen?

Welche Hardware verwenden die Entwickler? Welche Speichermedien? Wie hoch ist die Verbindungsgeschwindigkeit? (Sie können Systeminformationen öffnen und mit Speicher beginnen und sich in der Kette nach oben arbeiten). Außerdem - was ist der aktuelle Engpass im Workflow des Entwicklers?
@bmike Die Methode, die ich in der Beschreibung verwende, kann verwendet werden, um den Kompromiss zu machen, den ich in der Beschreibung auf so ziemlich jedem Dateisystem auf so ziemlich jedem Medium unter Linux beschreibe. Was hat die Verbindungsgeschwindigkeit mit Dateisystemen zu tun, wie im Titel meiner Frage? Auch gemäß der Beschreibung ist dies ein Kompromiss, den ich wissen möchte, und kein Engpass.
Geben Sie den Entwicklern Solid State Disks - macht mehr Unterschied als das Ändern von Parametern und für einen Entwickler können die Kosten durch die eingesparte Zeit gerechtfertigt sein
@Mark Unter Linux mit einer modernen, schnellen SSD verkürzen die oben genannten Optionen die Testlaufzeit für meine Projekte, deren Test gegen eine echte DB laufen muss, immer noch erheblich, wodurch meine tägliche Entwicklung viel schneller wird.

Antworten (1)

Gehen Sie mit dem Standarddateisystem auf einer OS X/macOS-Installation

Die Manpage für mount unter macOS listet nur zwei Optionen auf, die sich auf die Leistung von hfsplus beziehen:

 - async         All I/O to the file system should be done asynchronously.
                 This can be somewhat dangerous with respect to losing
                 data when faced with system crashes and power outages.
                 This is also the default.  It can be avoided with the
                 noasync option. 

- noatime        Do not update the file access time when reading from a
                 file.  This option is useful on file systems where there
                 are large numbers of files and performance is more criti-
                 cal than updating the file access time (which is rarely
                 ever important).

Es bleibt also nur die noatimeOption, das Standardverhalten weiter zu verbessern. Da es fstabunter macOS keine gibt, müssen Sie Ihre Dateisysteme auf andere Weise (neu) einhängen.

Der beliebteste Suchmaschinen-Treffer, um eine automatische Wiedereinbindung zu erreichen, listet diese Methode auf:

Erstellen Sie eine Datei namens com.noatime.plistin /Library/LaunchDaemons. Wenn Sie nur eine SSD-Partition haben – von der Ihr Betriebssystem bootet – ist dies alles, was Sie brauchen.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.noatime.root</string>
        <key>ProgramArguments</key>
        <array>
            <string>/sbin/mount</string>
            <string>-vuwo</string>
            <string>noatime</string>
            <string>/</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

Legen Sie den Besitz der Datei mit dem Befehl fest

sudo chown root:wheel /Library/LaunchDaemons/com.noatime.plist
sudo chmod 644 /Library/LaunchDaemons/com.noatime.plist

Starten Sie das System neu bzw

sudo launchctl load -w /Library/LaunchDaemons/com.noatime.root.plist

Geben Sie zur Überprüfung den Befehl mountan einer Terminal-Eingabeaufforderung ein. Sie sollten noatimeals Attribut Ihres Dateisystems aufgeführt werden.

Aber was bewirkt es? Nun, einfach ausgedrückt: Es führt diesen Befehl beim Booten aus (na ja, nach dem Booten, während der Ladesequenz für den Rest)

mount -vuwo noatime /

Ich nehme an, Sie haben eine Ahnung, was der mountBefehl „ “ tut, aber sehen Sie sich die Optionen an:

-v= ausführlich; eigentlich … das ist nicht unbedingt erforderlich, da es sich oben um einen kopflosen Befehl handelt; obwohl es vermutlich irgendwo im Systemprotokoll und im Fehlerfall auftauchen könnte

-udas -uFlag zeigt an, dass der Status eines bereits gemounteten Dateisystems geändert werden sollte. (Zu diesem Zeitpunkt in der Ladesequenz sind unsere Dateisysteme bereits gemountet)

-wMounten Sie das Dateisystem mit Lese- und Schreibzugriff - wahrscheinlich nicht zu 100% erforderlich)

-onoatime (Legt die Option noatime fest)

Insgesamt mit alternativen Dateisystemoptionen arbeiten

Apple-Dateisysteme sind von Anfang an ziemlich schlecht und auch die Unterstützung für alternative Dateisysteme fehlt. Aber das bedeutet nicht, dass Sie keine Optionen mehr haben.