¿Cuánto espacio dejar libre en HDD o SSD?

En la prensa tecnológica informal (es decir, periodística) y en los blogs y foros de debate sobre tecnología en línea, es frecuente encontrar consejos anecdóticos para dejar cierta cantidad de espacio libre en los discos duros o unidades de estado sólido. Se dan varias razones para ello, o a veces ninguna. Estas afirmaciones, aunque razonables en la práctica, tienen un aire mítico. Por ejemplo:

  • Una vez que tu(s) disco(s) esté(n) lleno(s) al 80%, deberías considerarlo(s) lleno(s), y deberías borrar cosas o actualizarlo(s) inmediatamente. Si llegan al 90%, deberías considerar que tus pantalones están ardiendo y reaccionar con la inmediatez adecuada para remediarlo. (Fuente.)

  • Para que la recolección de basura funcione con la máxima eficiencia, el consejo tradicional es mantener entre el 20% y el 30% de la unidad vacía (Fuente.)

  • Me han dicho que debería dejar alrededor de un 20% libre en un disco duro para mejorar el rendimiento, que un disco duro realmente se ralentiza cuando está casi lleno. (Fuente.)

  • Deberías dejar espacio para los archivos de intercambio y los archivos temporales. Actualmente dejo un 33% libre y me comprometo a no bajar de 10 GB de espacio libre en el disco duro. (Fuente.)

  • Yo diría que normalmente el 15%, sin embargo, con lo grandes que son los discos duros hoy en día, siempre y cuando tengas suficiente para tus archivos temporales y archivos de intercambio, técnicamente estás a salvo. (Fuente.)

  • Yo recomendaría 10% más en Windows porque defrag won't ejecutar si no hay sobre que mucho libre en la unidad cuando se ejecuta. (Fuente.)

  • Generalmente quieres dejar alrededor de un 10% libre para evitar la fragmentación (Fuente.)

  • Si tu unidad está constantemente llena en más de un 75% u 80%, merece la pena considerar la posibilidad de actualizarla a una unidad SSD más grande. (Fuente.)

¿Ha habido alguna investigación, preferiblemente publicada en una revista revisada por pares, sobre el porcentaje o la cantidad absoluta de espacio libre requerido por combinaciones específicas de sistemas operativos, sistemas de archivos y tecnología de almacenamiento (por ejemplo, placa magnética frente a estado sólido)? (Lo ideal sería que dicha investigación también explicara la razón para no superar la cantidad específica de espacio utilizado, por ejemplo, para evitar que el sistema se quede sin espacio de intercambio, o para evitar pérdidas de rendimiento).

Si conoces alguna investigación de este tipo, te agradecería que me respondieras con un enlace a la misma y un breve resumen de las conclusiones. Muchas gracias.

Aunque no puedo hablar de "investigación" publicada en "revistas revisadas por expertos" (y no me gustaría tener que depender de ellas para el trabajo diario), sí puedo hablar de la realidad de cientos de servidores de producción con distintos sistemas operativos durante muchos años:

Hay tres razones por las que un disco lleno reduce el rendimiento:

  • Falta de espacio libre: Piensa en archivos temporales, actualizaciones, etc.
  • Degradación del sistema de archivos: La mayoría de los sistemas de archivos sufren en su capacidad para distribuir los archivos de manera óptima si no hay suficiente espacio.
  • Degradación a nivel de hardware: Los discos SSD y SMR sin suficiente espacio libre mostrarán una disminución del rendimiento y, lo que es peor, un aumento de la latencia (a veces en varios órdenes de magnitud).

El primer punto es trivial, sobre todo porque ningún sistema de producción en su sano juicio utilizaría nunca el espacio de intercambio para expandir y reducir archivos de forma dinámica.

El segundo punto difiere mucho entre los sistemas de archivos y la carga de trabajo. Para un sistema Windows con carga de trabajo mixta, un umbral del 70% resulta bastante utilizable. Para un sistema de archivos ext4 de Linux con pocos pero grandes archivos (por ejemplo, sistemas de difusión de vídeo), esto podría subir hasta el 90+%.

El tercer punto depende del hardware y del firmware, pero especialmente los SSD con un controlador Sandforce pueden retroceder en el borrado de bloques libres en cargas de trabajo de escritura altas, lo que lleva a que las latencias de escritura aumenten en miles de puntos porcentuales. Solemos dejar un 25% libre a nivel de partición, y luego observamos una tasa de llenado inferior al 80%.

Recomendaciones

Me he dado cuenta de que he mencionado cómo asegurarnos de que se impone una tasa de llenado máxima. Algunos pensamientos al azar, ninguno de ellos "revisado por pares" (pagado, falsificado o real) pero todos ellos de los sistemas de producción.

  • Utilice los límites del sistema de archivos: /var no pertenece al sistema de ficheros raíz.
  • Monitorización, monitorización, monitorización. Utilice una solución ya preparada si le conviene, o analice la salida de df -h y deje que salten las alarmas por si acaso. Esto puede ahorrarle 30 kernels en un fs raíz con actualizaciones automáticas instaladas y funcionando sin la opción autoremove.
  • Sopese la interrupción potencial de un desbordamiento del fs contra el coste de hacerlo más grande en primer lugar: Si no estás en un dispositivo embebido, podrías duplicar esos 4G para root.
Comentarios (14)

¿Ha habido alguna investigación... sobre el porcentaje o la cantidad absoluta de espacio libre requerido por combinaciones específicas de sistemas operativos, sistemas de archivos y tecnología de almacenamiento...?

En 20 años de administración de sistemas, nunca he encontrado estudios que detallen los requisitos de espacio libre de las distintas configuraciones. Sospecho que esto se debe a que los ordenadores están configurados de forma tan diversa que sería difícil hacerlo debido al gran número de configuraciones posibles del sistema.

Para determinar cuánto espacio libre necesita un sistema, hay que tener en cuenta dos variables:

  1. El espacio mínimo necesario para evitar comportamientos no deseados, que en sí mismo puede tener una definición fluida.

Tenga en cuenta que no es útil definir el espacio libre necesario sólo con esta definición, ya que equivale a decir que es seguro conducir a 130 km/h hacia una pared de ladrillos hasta el momento en que se choca contra ella.

    1. La velocidad a la que se consume el almacenamiento, lo que obliga a reservar una cantidad variable de espacio adicional, para evitar que el sistema se degrade antes de que el administrador tenga tiempo de reaccionar.

La combinación específica de sistemas operativos, sistemas de archivos y arquitectura de almacenamiento subyacente, junto con el comportamiento de las aplicaciones, la configuración de la memoria virtual, etc., suponen todo un reto a la hora de establecer los requisitos definitivos de espacio libre.

Por eso hay tantos consejos por ahí. Observará que muchos de ellos hacen una recomendación en torno a una configuración específica. Por ejemplo, "Si tiene un SSD que'está sujeto a problemas de rendimiento cuando se acerca a su capacidad, manténgase por encima del 20% de espacio libre"

Dado que no existe una respuesta sencilla a esta pregunta, el enfoque correcto para identificar el requisito mínimo de espacio libre de su sistema consiste en considerar las distintas recomendaciones genéricas a la luz de la configuración específica de su sistema y, a continuación, establecer un umbral, supervisarlo y estar dispuesto a ajustarlo según sea necesario.

**A no ser, claro, que tengas un volumen RAID 6 de 42 TB respaldado por una combinación de SSD y discos duros tradicionales y un archivo de intercambio preasignado... (es una broma para los serios).

Comentarios (4)

En los discos SSD debe quedar algo de espacio libre, ya que la velocidad de reescritura aumenta y afecta negativamente al rendimiento de escritura del disco. El 80% de ocupación es un valor seguro probablemente para todos los discos SSD, algunos de los últimos modelos pueden funcionar bien incluso con un 90-95% de capacidad ocupada.

https://www.howtogeek.com/165542/why-solid-state-drives-slow-down-as-you-fill-them-up/

Comentarios (3)