Optimice el sistema de archivos para velocidad sobre integridad

En Linux, uso las noatime,nodiratime,nobarrier,data=writebackopciones de montaje para /etc/fstabcambiar la seguridad/consistencia/integridad del sistema de archivos por velocidad, lo que tiene sentido para el desarrollo local. ¿Hay alguna manera de hacer algo similar o de hacer una compensación de este tipo para los otros desarrolladores de OS X en mi equipo?

¿Qué hardware usan los desarrolladores? ¿Qué medios de almacenamiento? ¿Cuál es la velocidad del enlace? (Puede abrir Información del sistema y comenzar con Almacenamiento y avanzar en la cadena). Además, ¿cuál es el cuello de botella actual en el flujo de trabajo del desarrollador?
@bmike El método que uso en la descripción se puede usar para hacer el intercambio que describo en la descripción en casi cualquier sistema de archivos en casi cualquier medio bajo Linux. ¿Qué tiene que ver la velocidad del enlace con los sistemas de archivos como en el título de mi pregunta? También según la descripción, esta es una compensación que quiero saber cómo hacer y no un cuello de botella.
Proporcione a los desarrolladores discos de estado sólido: hace más diferencia que alterar los parámetros y para un desarrollador se puede justificar el costo por el tiempo ahorrado
@Mark En Linux con un SSD moderno y rápido, las opciones anteriores aún reducen en gran medida el tiempo de ejecución de prueba para mis proyectos cuya prueba debe ejecutarse en una base de datos real, lo que hace que mi desarrollo diario sea mucho más rápido.

Respuestas (1)

Ir con el sistema de archivos predeterminado en una instalación de OS X/macOS

La página de manual para el montaje en macOS enumera solo dos opciones que están relacionadas con el rendimiento de 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).

Por lo tanto, solo noatimequeda la opción de mejorar aún más el comportamiento predeterminado. Dado que no existe fstaben macOS, debe (re)montar sus sistemas de archivos de otra manera.

El motor de búsqueda más popular para lograr un re-montaje automático enumera este método:

Cree un archivo llamado com.noatime.plisten /Library/LaunchDaemons. Si solo tiene 1 partición SSD, desde allí se inicia su sistema operativo, esto es todo lo que necesita.

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

Establecer la propiedad del archivo con el comando

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

Reinicie el sistema o

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

Para verificar, ingrese el comando mounten un indicador de Terminal. Debería aparecer noatimeen la lista como un atributo de su sistema de archivos.

Pero, ¿qué hace? Bueno, en pocas palabras: ejecuta este comando en el momento del arranque (bueno, después del arranque, durante la secuencia de carga para el resto)

mount -vuwo noatime /

Supongo que tiene idea de lo que mounthace el comando " ", pero mire las opciones:

-v= detallado; en realidad... esto no es absolutamente necesario ya que es un comando sin cabeza arriba; aunque presumiblemente podría aparecer en el registro del sistema en algún lugar y en casos de falla

-ula -ubandera indica que se debe cambiar el estado de un sistema de archivos ya montado. (En este punto de la secuencia de carga, nuestros sistemas de archivos ya se han montado)

-wmonte el sistema de archivos de lectura y escritura, probablemente no sea necesario al 100%)

-onoatime (Establecer la opción noatime)

Ir con opciones alternativas del sistema de archivos por completo

Los sistemas de archivos de Apple son bastante malos desde el principio y también falta soporte para sistemas de archivos alternativos. Pero eso no significa que estés completamente sin opciones.