Rejuveneciendo mi laptop: disco duro, parte 1

Esta es la cuarta parte de la serie Rejuveneciendo mi Laptop en la que narro, componente por componente, el proyecto en el cual busco darle una nueva vida a mi vieja laptop. Para la tabla de contenido, visita el primer post: Introducción: los problemas.

Disco duro, parte 1: agregué un disco de estado sólido

El disco duro siempre ha sido el cuello de botella en el rendimiento de mi laptop para arrancar el sistema; no es el CPU ni la memoria RAM. Esto no suele ser un problema porque cuando un sistema operativo lee un bloque desde disco duro, le aplica caching en memoria RAM, si hay suficiente. Es decir, la segunda vez que se lee el mismo bloque, ya no lo carga desde el disco duro sino desde la RAM. Esta operación es relativamente barata y desemboca en un funcionamiento más veloz de la computadora en términos generales.

Comparemos lo que ocurre al calcular dos veces el hash de un archivo de 1 GB, la primera vez contra la segunda vez. Con esto nos damos una idea de la diferencia entre leer desde disco y leer desde el caché de disco contenido en memoria RAM.

Proceso MD5 SHA2-512
Cálculo de hash de un archivo de 1 GB, primera vez (lectura desde disco) 25.9s 26.5s
Cálculo de hash del mismo archivo de 1 GB, inmediatamente después (lectura desde caché de disco en RAM) 2.9s 6.7s

En la siguiente gráfica se ve cómo se comporta el CPU en ambos casos:

  • La primera vez (zona entre barras rojas) el CPU está a medio uso. Se está leyendo desde disco, y por su baja velocidad, resulta ser el cuello de botella de la operación.
  • La segunda vez (zona entre barras verdes) el CPU se usa plenamente. El cuello de botella es el CPU. Se está leyendo todo el gigabyte desde RAM. El disco ya no se necesita.

También se ve cómo la diferencia de complejidad computacional entre MD5 y SHA2-512 es se observa un poco mejor en la segunda medición que en la primera: en la primera medición, el cáculo se realiza mientras se siguen leyendo datos del disco duro y la diferencia entre ambos algoritmos es de 0.6s solamente, 2% adicional; en la segunda medición, la diferencia es 3.8s, 130% adicional.

Comparación de límite I/O vs CPU

Comparación de CPU durante un cálculo de hash de un archivo, según el cuello de botella: disco duro vs CPU

Se sabe bien que los discos de estado sólido son mucho más rápidos que los magnéticos tradicionales, hasta 10 veces. Durante mucho tiempo me rehusé a comprar discos de estado sólido por dos motivos:

  1. Que remplazar mi disco duro con otro implicaría hacer un vaciado de información; además, el disco de estado sólido debería ser de un tamaño parecido, lo que encarecería el costo.
  2. Que el tiempo de vida de un disco duro de estado sólido es más limitado que los magnéticos.

Sin embargo, desde entonces han ocurrido tres cosas:

  1. La tecnología ha mejorado de modo que los precios han bajado.
  2. Las nuevas tecnologías NAND ofrecen mejores tiempos de vida.
  3. Encontré que existe un caddy para adaptar un disco duro de 2.5″ a la bahía de unidad óptica de laptop.

Considerando:

  1. que mi disco duro original contiene una licencia de Windows,
  2. que la unidad óptica también se conecta por puerto SATA,
  3. que hoy en día las unidades ópticas han caído en cierto desuso, y
  4. que prefiero mantener mi carpeta personal en el disco magnético (por la durabilidad),

decidí adoptar un enfoque híbrido:

  • Remplazar la unidad óptica por el disco de estado sólido. Escogí un Crucial MX500 de 2.5 pulgadas.
  • En el disco de estado sólido, sólo poner el sistema operativo mientras que mi carpeta personal (mi home) se quedaría en el HDD, por la durabilidad. Entonces, un SDD de 250 GB basta y sobra.
  • Dejar la partición swap en el HDD.
  • Conseguir un adaptador para USB para la unidad óptica por si necesitara leer algún DVD viejo.

Así lo hice, no sin antes equivocar el tamaño del caddy. Había comprado uno de 9.5mm cuando el que le corresponde es de 12.7mm de grosor. Afortunadamente no es una pieza cara. Después de corregir el error e instalar el disco correctamente, copié Debian al nuevo disco.

Los pasos no fueron tan difíciles:

  1. Copiar todo el sistema operativo pero con cp -ax para que sólo se copiara la partición Root, pero no los datos de la Home.
  2. Edité /etc/fstab para corregir los UUID.
  3. Tuve que instalar GRUB 2 en el nuevo disco, ajustando el mapa de dispositivos. La verdad es que lo de GRUB 2 fue a prueba y error. Esto fue lo más complicado y nunca supe exactamente qué hice para que quedara bien al final.

Las mediciones muestran una diferencia abismal en rendimiento:

Proceso HDD SSD Reducción
Arranque de Debian 10 a escritorio Xfce usando GDM3 4m45s 45s 84%
Arranque de Debian 10 a pantalla de login con LightDM 1m16s 17s 74%
Primera carga del menú de aplicaciones en Xfce 9s 0.7s 92%

¡Esto parece una computadora nueva! Ya no me da flojera ni cargar LibreOffice ni cargar GIMP, ni reiniciar. El CPU ahora tendrá más trabajo, pero podrá bien con la carga.

Bien podría, en un futuro, mover mi directorio home a la unidad de estado sólido. Con esto podría acelerar la carga inicial de datos de Thunderbird, compilaciones en general y tal vez la ejecución de máquinas virtuales. Por ahora eso me da algo de miedo pues me falta terminar mi sistema de respaldos. Tal vez más adelante opte por esta opción.

Siguiente parte: disco duro (segunda parte): recuperando espacio mal asignado.


Comentarios

Rejuveneciendo mi laptop: disco duro, parte 1 — 1 comentario

  1. Anímate a cambiar a usar NVME. Es increible lo que logran con eso. Yo tengo, en mi escritorio, una NVME y no lo puedo creer.

    Cuando vi el video de la máquina que le hicieron a Greg Kroah-Hartman con Zen2 y 4 NVME, me quedé Ô_Ô. Ha de jalar increíble.

    En cuanto a la durabilidad, estoy sorprendido de lo que duran ahora también. Yo no hice como tú; lo de poner /home en un HDD. Yo lo puse todo en un NVME y hago respaldos semanales (para no confiarme). La cosa es que, la marca que escogí (Samsung) te da hasta 10% de espacio extra y suple lo que se va jodiendo:

    [root@introdesk ~]# nvme smart-log /dev/nvme0
    Smart Log for NVME device:nvme0 namespace-id:ffffffff
    critical_warning : 0
    temperature : 38 C
    available_spare : 100%
    available_spare_threshold : 10%
    percentage_used : 5%
    endurance group critical warning summary: 0
    data_units_read : 43,567,524
    data_units_written : 163,407,516
    host_read_commands : 240,844,708
    host_write_commands : 1,112,608,084
    controller_busy_time : 4,973
    power_cycles : 901
    power_on_hours : 5,787
    unsafe_shutdowns : 220
    media_errors : 0
    num_err_log_entries : 629
    Warning Temperature Time : 0
    Critical Composite Temperature Time : 0
    Temperature Sensor 1 : 38 C
    Temperature Sensor 2 : 53 C
    Thermal Management T1 Trans Count : 0
    Thermal Management T2 Trans Count : 0
    Thermal Management T1 Total Time : 0
    Thermal Management T2 Total Time : 0

    Llevo varios años usándolo (con Gentoo y la madre; compilando todo y eso). Mucho I/O. Apenas voy al 5% y eso que el mío no es de esos 3D/Multi-capa.

    Definitivamente, el SSD/NVME mejora increíblemente el desempeño de cualquier computadora.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *