Español (spanish formal Internacional)English (United Kingdom)
PCSilencioso.com: PCSiencioso es un portal web dedicado al SilentPC (PC silencioso) en español, con unos pocos artículos seleccionados traducidos también a inglés, y con un foro de soporte y discusión dedicado a esta afición.
Foro PCSilencioso: Una de las partes más importantes PCSilencioso es nuestro foro, donde podemos discutir temas relacionados con la informática, y en especial el SilentPC. Además nuestro foro tiene las puertas abiertas no solamente a los usuarios, sino también a las tiendas con un subforo dedicado para ello. En este foro podemos aclarar dudas o compartir opiniones sobre las tiendas, y donde éstas están invitadas a participar.
Accesos rápidos: Últimas reviews - Últimos artículos - Últimas noticias

SSDs: Guía básica y modelos recomendados

PDF

Limpieza de bloques (TRIM)

Actualmente la cuestión clave para solucionar el problema de degradación de rendimiento es la limpieza de los bloques. La idea general de este proceso es la siguiente:


garbagecollection.png


Cuando llega una petición de escritura, se ubica en un nuevo bloque (extraido de FREE BLOCK POOL) y su estado pasa a ser usado (DATA BLOCK POOL), y será objetivo del algoritmo de limpieza cuando tenga el suficiente número de páginas con datos válidos escritas. En eso consisten básicamente los procesos de auto garbage collection.

Estos procesos tienen una penalización en los picos de latencia de las escrituras aleatorias, aunque siguen siendo bajos en las medias, es el precio a pagar por los movimientos que realizan los algoritmos de garbage collection. Sin embargo, combaten de forma muy efectiva la degradación de rendimiento.

Estas instrucciones permiten dar prioridad a los borrados de bloques. Cuando desde el SO se envía una orden de borrado, el proceso de limpieza interfiere e indica los LBAs asociados que ya no son necesitados para que añada esos bloques para limpieza y los devuelva a la FREE BLOCK POOL.


writeamplification2.png


Para ampliar información en este punto, nada mejor que el 2º artículo de Anandtech, The SSD Releap.

Dentro de estas instrucciones de limpieza, se encuentra el mejor antídoto actualmente contra el degradamiento de rendimiento, las instrucciones TRIM. TRIM forma parte del estándar ATA. Así que cualquier sistema que soporte la especificación T13 para TRIM/DISCARD lo soportará automáticamente (como las últimas actualizaciones del kernel de Linux). En definitiva, si los controladores AHCI/SATA se actualizan con los parches con soporte para TRIM, sistemas como XP, Vista, Linux o MAC OS X ya estarían preparados. Aunque se comenta también la posibilidad de utilizar una utilidad de OCZ para forzar su uso en los comandos ATA.

Por tanto, es necesario que lo soporte tanto el SO como el SSD en cuestión. Su funcionamiento simplifica mucho esos procesos de reorganización que producen la degradación de rendimiento. Cuando se elimina un fichero, el SO lanza el comando TRIM sobre el LBA del SSD, la controladora copia entonces el bloque a la caché limpiando ya las páginas que se han marcado como eliminadas y escribe directamente el bloque con las páginas ya disponibles de nuevo en el LBA del SSD. Por tanto el viaje por caché es mucho más breve y además, el proceso de escritura de los nuevos datos se realiza directamente en el SSD y no en caché.

Por tanto, la degradación de rendimiento se ve paliada en gran medida, aunque por supuesto no se erradica. Actualmente las implementaciones TRIM a nivel experimental pueden ejecutarse bajo demanda del usuario, recorriendo y reorganizando los bloques cuando se lo ordenemos y poniendo a punto el SSD. Sin embargo, una implementación más integrada a nivel de SO permitirá que el SSD aproveche los tiempos de inactividad para llevar a cabo estos procesos de optimización automáticamente de forma transparente para el usuario. Como es sabido, la RC de W7 ya implementa este soporte, sólo falta que los nuevos Firmwares comiencen a aprovechar esta función.

Hablando de W7, TRIM no será la única mejora que se introducirá a favor de los SSD, aunque quizás sí la más importante. Según sus propios diseñadores, se han intentado reducir la frecuencia de escrituras a nivel general, además, el sistema si detecta un SSD deshabilitará automáticamente la desfragmentación, superfetch y ready boost. En cuanto al pagefile, no recomiendan que los mantengamos en el propio SSD.


Firmwares

Los Firmwares tienen un papel relevante en lo que al rendimiento y caracterísiticas de un SSD se refiere. Por un lado contribuyen a aumentar el rendimiento en alguna o varias facetas del SSD, por otro, pueden incluir soporte para nuevas tecnologías, el caso más relevante es TRIM, del que acabamos de hablar. Actualmente, varios SSD son actualizables, por supuesto todos los basados en Indilix Barefoot con la familia Vertex a la cabeza (que es el que mejor soporte recibe actualmente), pero también G Skill Falcon, aunque su foro está todavía empezando, e los Super Talent UltraDrive ME que ya cuentan con algun firmware que mejora el rendimiento en W7.

Por su parte, las controladoras Intel también han recibido recientemente una actualización firmware que mejora los rendimientos de escritura y frena la fragmentaciíon interna gracias a unos algoritmos de escritura más eficientes.

En cuanto a los SSD basados en controladoras Samsung como los Corsair, la cosa está un poco en el aire. En los foros de Corsair se asegura que no es necesaria ninguna actualización de firmware porque el SSD funciona correctamente. Como el soporte sólo es ofrecido por un sistema en fase RC y no se puede considerar acabado puede que se trate de una cuestión de tiempo, al fin y al cabo, en los otros SSD se puede considerar como soporte experimental. En definitiva, parece que cuando tanto el estándar como W7 esté finalizado, ese soporte llegará.

Por lo que se puede leer en sus foros oficiales, parece que las tres controladoras contarán antes o después con ese soporte. Más alla de eso, podemos decir que Intel y OCZ son los que actualmente más actualizan sus firmwares para mejorar sus SSDs.


DSC03891.JPG

Proceso de actualización de un X25-M.



Combatir la degradación de rendimiento a nivel de usuario

Existen varias opciones para ello, la incial consistía en realizar una imagen del sistema para despues limpiar el SSD utilizando una herramienta de borrado a bajo nivel, es un sistema bastante engorroso y actualmente existen procedimientos más cómodos para el usuario final. Eso sí, con este método se recupera completamente el rendimiento del SSD ya que se devuelve al estado original. Se pueden utilizar aplicacións como Sanitary Erase, HDDErase o DBAN.

La famosa aplicación wiper.exe, desarrollada por OCZ y compatible con los SSD Indilinx, es una herramienta de limpieza bajo demanda bastante efectiva. Eso sí, hay que tener en cuenta algunas cosas antes de ejecutarla aunque en general es el más efectivo actualmente, y no tiene limitación de S.O. Recupera alrededor del 90% del rendimiento (el 100% solo se consigue con un borrado "sanitario" completo), pero falla bajo X64 (se debe de ejecutar desde otro S.O. o con un CD de arranque X32) y manualmente (hay gente que lo tiene programado en su Windows). También es recomendable configurar la controladora SATA en modos Legacy IDE para la ejecución, en el caso del RAID es necesario deshacerlo, de forma temporal claro. Intel también tiene una aplicación de funcionamiento similar incluida en su SSD Tool Box.

Los métodos implementados a nivel de firmware son los comandos TRIM, y los algoritmos de GC.

El Garbage Collection aprovecha las pausas del disco para limpiarlo. No necesita TRIM, no necesita ejecutar utilidades de limpieza, funciona en Raid, y no penaliza el rendimiento. Su único punto negativo es que desgasta más el disco que TRIM y desde luego que wiper o derivados, pero no parece que tanto como para que te dure sensiblemente menos. A mi me parece la solución más práctica de todas, mucho más que el restrictivo TRIM, que solo funciona en entornos muy determinados y penalizando el rendimiento, y mejor que tener que ejecutar aplicaciones como Wiper u otras con periodicidad. Es un desarrolo propio de OCZ, lo bueno es que el FW puede utilizarse en otros SSD Indilinx, el FW se identifica como 1.41.

En cuanto a TRIM, actualmente casi todos los SSD tienen soporte a través de nuevos FW (Samsung es la última en incorporarse). Su funcionamiento es completamente automático, sin embargo todavía tiene dos problemas. Penaliza ligeramente el rendimiento general del SSD, y además, solo puede configurarse bajo circunstancias determinadas, a saber:

  • Placa Intel (ICH7 o superior)
  • Windows 7
  • Controladores de Microsoft (instalados por defecto por Seven)
  • Modo AHCI (no vale Raid)
  • FW con soporte


Soporte TRIM en Linux

Gracias a Viper_Scull del foro N3D, podemos saber que en Linux, TRIM está implementado en el kernel y se hace mediante un script llamado wiper.sh que funciona perfectamente, rápido y sin borrar absolutamente nada. Ahora mismo está en la versión 2.5, con unos resultados excelentes con el formato ext4.

Que lo haga automaticamente depende fundamentalmente de que lo soporten los firmwares de los SSD.

Por ahora wiper.sh no funciona con Reiserfs al no tener la función allocate(), pero se preveé una próxima inclusión. Tampoco funciona con formato HFS.

Al parecer los mejores resultados son con ext4, que el sistema más moderno, y que está superindicado para TRIM y SSD. La página de descarga es http://sourceforge.net/projects/hdparm/. Ahí se puede bajar las fuentes del Wiper o se puede bajar el hdparm que ya incluye el wiper 2.5

En algunos SSDs ya funciona el script Wiper.sh, como en los SSD Intel:


Instrucciones para usar wiper.sh en un disco SSD Intel:

  1. Bajarse el wiper.sh version 2.5 de la dirección incluída en el primer post.
  2. Descargarse este parche que he subido a Megaupload http://www.megaupload.com/?d=M4GEWTU2 y aplicar a mano al wiper.sh
  3. IMPORTANTE : Hacer copia de seguridad de los datos para una restauración en caso de fallo.
  4. Si se tienen varias particiones pasar el wiper.sh para cada una de ellas.
    Ejemplos para distros basadas en Debian. En caso de tener las particiones /boot, / y /home:
    sudo wiper.sh --commit /boot
    sudo wiper.sh --commit /
    sudo wiper.sh --commit /home

(una vez más recordar que estas instrucciones son para Intel, para un disco basado en Indilix, wiper.sh se usa de manera normal, sin aplicar ningún parche).

Respecto a la utilización programada de wiper.sh

Si queremos usar wiper.sh cada semana por ejemplo, con cron, se comentarán las líneas de la 511 a la 517 para evitar que pida confirmación para realizar el trim. Ya que necesita privilegios de superusuario, habrá que añadir al cron de root (/etc/crontab) y no al de nuestro usuario.




 
  • Presentación de imágenes aleatorias
  • Presentación de imágenes aleatorias
  • Presentación de imágenes aleatorias
  • Presentación de imágenes aleatorias
  • Presentación de imágenes aleatorias
  • Presentación de imágenes aleatorias
  • Presentación de imágenes aleatorias

Últimos mensajes

Subforo 2ª mano

Subforo vendedores

Recomendados

PCSilencioso está optimizado para mozilla firefox 3 e internet explorer 8, y para resoluciones a partir de 1024x768 píxeles. Todos las imágenes con el logo PCSilencioso, y los artículos y contenidos de esta web tienen copyright © 2009 de PCSilencioso. El resto de imágenes y las marcas mencionadas en los artículos pertenecen a sus propietarios. Cualquier copia de contenido de PCSilencioso debe incluir el nombre PCSilencioso y su URL http://www.pcsilencioso.com, y está restringida a 100 palabras. Los contenidos de los mensajes del foro pertenecen a sus autores.