Ottimizza il filesystem per la velocità rispetto all'integrità

1

Su Linux, uso noatime,nodiratime,nobarrier,data=writeback mount optioins in /etc/fstab per scambiare sicurezza / consistenza / integrità del filesystem per la velocità che ha senso per lo sviluppo locale. C'è un modo per fare qualcosa di simile o altrimenti fare un tale trade off per gli altri sviluppatori di OS X nel mio team?

    
posta Ross Patterson 06.02.2015 - 20:40
fonte

1 risposta

2

Funzionante con il filesystem predefinito su un'installazione OS X / macOS

La pagina man per mount su macOS elenca solo due opzioni che sono prestazioni correlate a hfsplus:

 - 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).

Quindi, solo l'opzione noatime viene lasciata per migliorare ulteriormente il comportamento predefinito. Dato che non c'è fstab su macOS devi (ri) montare i tuoi filesystem in un altro modo.

Il hit più popolare del motore di ricerca per ottenere un rimontaggio automatico elenca questo metodo:

Crea un file chiamato com.noatime.plist in /Library/LaunchDaemons . Se hai solo 1 partizione SSD, cioè da dove viene avviato il sistema operativo, questo è tutto ciò che ti serve.

<?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>

Imposta la proprietà del file con il comando

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

Riavvia il sistema o

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

Per verificare, inserisci il comando mount al prompt di Terminale. Dovresti vedere noatime elencato come attributo del tuo filesystem.

Ma cosa fa? Bene, in poche parole: esegue questo comando all'avvio (bene, dopo l'avvio, durante la sequenza di caricamento per il resto)

mount -vuwo noatime /

Suppongo che tu abbia la più pallida idea del comando " mount ", ma guarda le opzioni:

-v = verbose; in realtà ... questo non è assolutamente necessario poiché è un comando senza testa sopra; anche se presumibilmente potrebbe apparire nel registro di sistema da qualche parte e in caso di errore

-u il flag -u indica che lo stato di un file system già montato deve essere modificato. (A questo punto della sequenza di caricamento i nostri filesystem sono già stati montati)

-w monta il file system in lettura-scrittura, probabilmente non al 100% necessario

-o noatime (Imposta l'opzione noatime)

Funzionante con opzioni di file system alternative

I filesystem Apple sono piuttosto brutti fin dall'inizio anche il supporto per i filesystem alternativi è carente. Ma ciò non significa che tu abbia completamente esaurito le opzioni.

risposta data 09.09.2017 - 12:13
fonte

Leggi altre domande sui tag