jueves, 11 de febrero de 2016

RAMDisk en Sistemas de Altas Prestaciones – ProfessionalSAT

En este artículo os presento brevemente los resultados prestacionales de un RAMDisk configurado sobre una máquina optimizada, uno de mis Sistemas de Altas Prestaciones, basado en un procesador Core i7 6770K Skylake @ 4.4 GHz con 16 GB de memoria dual channel DDR4 2400 en carga concurrente de 8 threads.

Características del disco RAM:

Software: SoftPerfect RAMDisk x64.

Tamaño: 2 GB NTFS.

Sistema operativo Windows 8.1 x64 actualizado.

Resultados con acceso 8 threads:

Extreme_RAMDisk

Acceso normal QD=1:

En Windows con carga de trabajo de usuario lo más normal son colas de disco de 0 a 3, siendo típico 1 en sistemas con SSD y hasta 5 en máquinas con disco duro mecánico.

11 GB/s en lectura secuencial.

12 GB/s en escritura secuencial.

1.4 GB/s en acceso aleatorio 4KB.

1.1 GB/s en acceso aleatorio 4KB.

Acceso con cola de comandos de disco QD=32:

QD=32. Simulando cargas de trabajo de servidor.

11 GB/s en lectura secuencial.

17 GB/s en escritura secuencial.

4 GB/s en acceso aleatorio 4KB.

4 GB/s en acceso aleatorio 4KB.

Ni qué decir tiene que el equipo funciona bastante ligerito con esa velocidad en el disco RAM donde se guaradn todos los temporales del sistema operativo y de los navegadores web.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

martes, 2 de febrero de 2016

SSD Overprovisioning – ProfessionalSAT

Overprovisioning, o la reserva de un espacio sin particionar en un dispositivo de memoria no volátil (como ejemplo un disco SSD), es una de las maneras más simples de incrementar su rendimiento y su longevidad.

NAND_chip_16nm_MICRONUn chip de memoria NAND Micron de 16 nm.

El espacio que destinamos al overprovisioning o sobre aprovisionamiento (como lo llama Samsung) lo utiliza la lógica integrada en el dispositivo (controladora, memoria RAM, firmware) como una especie de espacio de trabajo temporal para tareas internas de reorganización de datos que se llevan a cabo en segundo plano y que son críticas para el rendimiento así como para la duración en el tiempo de la memoria NAND.

Las funciones que se llevan a cabo en el espacio de varios GB (de 10 a 50 normalmente) que reservamos en nuestro SSD mediante overprovisioning son las siguientes:

Wear Leveling, la controladora equilibra el número de escrituras en todas las celdas NAND. Monitoriza el número de escrituras de cada celda para no sobrecargar y desgastar celdas individuales.

Bad block management, la controladora retira los bloques de memoria NAND que han superado el número de escrituras máximo permitido o los que han fallado en escritura, lectura o comprobación.

Garbage Collection, consolida datos de usuario o sistema y borra efectivamente bloques con datos inválidos (datos marcados como borrados por el sistema operativo).

Samsung_overprovisioningSamsung Magician. Overprovisioning en un Samsung 840 Evo, 10.57 GB.

Por ejemplo, los Samsung 840 Evo y los Samsung 850 Evo de 1 TB, integran una controladora llamada MEX.

Samsung-850-EVO-1TBPCB del Samsung 850 Evo 1 TB.

Con 3 cores ARM Cortex R4 a 400 MHz, que son los encargados de todo el procesamiento, para ello cuentan con una memoria RAM local de 256 MB a 2 GB según la capacidad del SSD.

Cortex-R4-chip-diagram-LGARM Cortex R4.

Ventajas del Overprovisioning

Aumenta la velocidad de nuestro SSD de modo importante en tareas cotidianas y especialmente en cargas de trabajo I/O sostenidas.

Reduce el fenómeno de Write Amplification (WAF), es decir, el espacio efectivo que se escribe en las celdas NAND respecto a las peticiones de escritura del sistema operativo.

Aumenta y mucho la vida útil del dispositivo.

Reduce la tasa de fallos de las celdas NAND, con lo que hace más fiable el dispositivo SSD.

NAND_chip_16nm_MICRON_24 chips NAND de 128 Gb Micron 16 nm.

Desventajas del Overprovisioning

Hay que dedicar tiempo a configurarlo, normalmente “a mano” o con utilidades como Samsung Magician.

Reduce el espacio efectivo para nuestros datos. La recomendación general es reservar un 10% del espacio del SSD para Overprovisioning, aunque con un 20% o 30% todavía sigue aumentando el rendimiento.

Conclusiones

No he montado nunca ni un solo SSD sin Overprovisioning, con eso lo digo todo, ni en las lejanas épocas de los Intel X25M de 80 GB. Allá por 2009…

Las ventajas de su implementación superan con creces sus contras y hacen que el dispositivo NAND  sea mucho más rápido y confiable.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

miércoles, 13 de enero de 2016

Intel Skylake Prime95 freeze bug – ProfessionalSAT

Prime95 y yo somos viejos conocidos…

Prime95_x64Ya hace años que utilizo asiduamente este software para garantizar la estabilidad de todos mis Sistemas de Altas Prestaciones y he escrito varios artículos sobre su funcionamiento, como por ejemplo este de 2009:

Sistemas de altas Prestaciones. Metodología de validación – ProfessionalSAT

Prime95 supone un gran stress para la máquina y un excelente método de validación de sistemas.

Además, es puede configurar la carga de proceso de coma flotante de varias maneras para someter al sistema a distintos tipos de cálculos. De este modo testeamos las cachés L1, L2, L3, más o menos memoria RAM y las unidades de coma flotante con distintos juegos de instrucciones.

El error de cáculo de Skylake en Prime95 - Skylake Prime95 freeze

El bug en cuestión, concretamente un error de cálculo (error de precisión), ocurre cuando se dan las siguientes condiciones:

Activar el juego de instrucciones AVX de 256 bit FPU en Prime95 en una CPU Intel Skylake.

Activar  HyperThreading.

De echo el error no es general en cualquier cálculo en Prime95 sino en caso de ciertos exponentes aislados y para ciertos tamaños FFT (768 KB).

Skylake incorpora unidades de coma flotante AVX2 / FMA (Fused Multiply Add), al igual que Haswell 22 nm y Broadwell 14 nm, con juego de instrucciones Intel FMA. Gracias a estas unidades FMA disponibles desde Haswell se consigue el doble de potencia FPU en cálculos combinados suma / multiplización.

AVX2_FMA3_HaswellHaswell introdujo las unidades FPU FMA que doblaron el ancho de banda en cálculo FPU.

Y redujeron la latencia (1.6 veces inferior) en operaciones combinadas suma / multiplicación respecto a las CPUs anteriores (IvyBridge 22 nm, SandyBridge 32 nm, …)

FMA3_FLOPS_LATFMA3 aporta una mejora de un factor 1.6X en latencia.

Usando AVX2 / FMA3 en Prime95 NO se produce ningún resultado erróneo en los cálculos, por ello hay que forzar el code path AVX en la configuración de Prime95 para detectar el error de cálculo.

La solución de Intel al error de Skylake

La solución propuesta consiste en una simple actualización de BIOS. Lo importante es saber si tendrá consecuencias mensurables en rendimiento. A día de hoy y sin conocer las causas hardware concretas es imposible saberlo.

Lo que está claro es que algo chirría en la implementación de las unidades FPU FMA en Skylake.

Probablemente en las loockup tables de las funciones trigonométricas empleadas en los cálculos FFT (Fast Fourier Transform) que ejecuta Prime95 para su análisis de números primos.

Algunos de mis artículos sobre Prime95:

Stress test de procesador. Prime95 2.65 X64 – SATSoftware
Sistemas de altas Prestaciones. Metodología de validación – ProfessionalSAT
Increíble pero cierto – ProfessionalSAT
Tipos de errores en Prime95
Degradación física de la memoria DDR3 en cargas de trabajo de saturación – ProfessionalSAT
Prime95. Torture test – SATSoftware

Este problema de Intel con Skylake me recuerda un affaire que tuve con Intel y Dell allá por 1994 – 1995 del que próximamente escribiré un artículo… No sé si a muchos de vosotros os sonará el asunto… el Pentium FDIV bug.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

domingo, 22 de noviembre de 2015

Windows Boot Defrag. Desfragmentación de arranque – SATSoftware

A día de hoy es común ver la mayoría de máquinas nuevas de gama media y alta con un disco SSD (en sus variantes SATA, M2, PC Express…) de más o menos capacidad para el arranque del sistema operativo.

Intel_SSD_Placa

Aquí os dejo una sencilla optimización para mejorar los tiempos de arranque especialmente indicada para aquellos que todavía no habéis llegado a la era de alta velocidad SSD y continuáis utilizando discos duros convencionales (mecánicos) en la unidad de arranque.

Los que ya dispongáis de disco SSD, también ganaréis algunos segundos aunque la mejora será más sutil.

Con este sencillo comando ejecutado en el símbolo de sistema CMD de Windows forzaremos la desfragmentación y consolidación de todos los ficheros de arranque de vuestro sistema operativo Windows.

Boot_Defrag_SSD_Core_i7_crop_1Desfragmentación de arranque: Defrag c: /b

Es crítico señalas que este comando utiliza los datos generados durante los arranques anteriores en forma de archivos Prefetch, por ello es importante NO eliminarlos con utilidades como CCleaner, Glary Utilities y similares.

BootDefrag_failSi hemos eliminado ficheros de Prefetch, Defrag c: /b nos dará un error.

Durante el arranque del sistema, Windows crea un registro, una traza, de todos los archivos accedidos y del orden de acceso. A los seis arranques aproximadamente podemos decir que quedan ya estabilizados estos logs y Windows puede crear ya un itinerario fiel de archivos de arranque.

Los archivos de Prefetch se guardan en la carpeta Windows > Prefetch.

Configuración de CCleaner 5.11

Para que CCleaner no borre nuestros archivos de Prefetch debemos desmarcar una casilla:

CCleaner_PrefechDesmarcar “Datos antiguos de Prefetch”.

Si no lo hacemos nos dará un mensaje de error al lanzar el comando Defrag c: /b.

Configuración de Glary Utilities

En Glary Utilities vamos a configuración y desmarcamos Datos Prefetch Antiguos.

GlaryUtilities_PrefetchDesmarcar “Datos Prefetch antiguos”.

En el símbolo del sistema

Si teníamos marcadas las opciones que comento más arriba en CCleaner o Glary Utilities no funcionará el comando por falta de logs de arranque.

Deberemos de reiniciar la máquina unas cuantas veces, dejando cada vez en reposo en el escritorio el equipo hasta que veamos reducida la actividad de disco (habrá terminado de cargar todos los archivos de arranque).

A los 6 reinicios aproximadamente ya podremos ejecutar el comando, dando el siguiente resultado:

Boot_Defrag_SSD_Core_i7_crop

Personalmente lo he probado en máquinas muy dispares, todas con Windows 7 X64 SP1:

  • Core 2 Duo con 4 GB y un SSD Kingston V300 120 GB.
  • Core 2 Quad con 8 GB y 4 HDs mecánicos WD 5000AAKS en RAID 10 (0+1).
  • Core i7 3770K @ 4.4 GHz con 8 GB DDR3 2400 11 11 11 30 y un SSD Samsung Evo 850 250GB.
  • Core i7 4790K @ 4.4 GHz con 32 GB DDR3 2400 11 11 11 30 y dual SSD Samsung 850 Pro 250 GB en RAID 0 + RAID 10 de 6 HDs 4 TB Seagate.

En todas ellas he notado mejora con cronómetro en mano, también en los sistemas con SSD, pese a lo que se lee por ahí.

Por ejemplo, el Ci7 3770K @ 4.4 GHz con SSD Samsung Evo 250 GB ha pasado de una media de 14 s a 10,5 s de tiempo de arranque total.

En los equipos con HD mecánico y disco duro SIN desfragmentar la mejora es espectacular, aunque el proceso puede llevar hasta 1h... No es descabellado que dividamos por 5 el tiempo de arranque. Si ya partimos de un HD mecánico desfragmentado, la mejora es más leve aunque siempre notoria.

Os animo a hacer vuestras pruebas y a comentar más abajo los resultados.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.

martes, 3 de noviembre de 2015

Optimización arranque en sistemas Windows – ProfessionalSAT

Mis Sistemas de Altas Prestaciones y todas las máquinas que pasan por mis manos se caracterizan por su alta velocidad en cálculo sostenido sin dejar de lado los tiempos de arranque, apagado, reinicio y con atención a todo el resto de medidas prestacionales.

Herramientas_AdministrativasLas Herramientas Administrativas de Windows son un potente instrumento de diagnóstico.

En este caso se trata de una estación de trabajo Dell M4500 similar a la que traté en un artículo anterior, se trata de un Core i7 Quad Core con disco SSD Samsung 850 Evo 250 GB y tarjeta gráfica nVidia Quadro.

En su día, cuando instalé el sistema operativo en el equipo (Windows 7 x64 SP1) con drivers  y actualizaciones y altamente optimizado, conseguía tiempos de arranque sobre los 20 – 25 s.

DellM4500_ext01

Esta máquina, que ya tiene unos años, es de un cliente que aprecia mucho un tiempo de arranque y reinicio breve aunque el sistema está muy cargado de software con suites ofimáticas, gran cantidad de software de retoque fotográfico profesional, etc.

El equipo llegó a mis manos con un tiempo de arranque total de Windows 7 x64 SP1 de 159.188 s, o lo que es lo mismo, más de 2 min y 39 s pese a estar razonablemente optimizado y contar con disco SSD para el sistema.

Durante varios días monitoricé decenas de arranques de Windows 7 y fui depurando la información, agregando dos vistas personalizadas al Visor de Eventos perteneciente a las Herramientas Administrativas para obtener datos.

boot 2015 10 30 10_28h 138.5s

Solamente con una optimización estricta del sistema llegué a un tiempo de arranque de 138.488 s o 2 min 18 s (una mejora de 21 s). En este punto estaba claro que algo (algún problema software) detenía durante una horquilla de entre 80 y 100 s el proceso normal de arranque del sistema operativo.

Analicé los logs del sistema en busca de problemas o anomalías, pues detecté que el incremento en los tiempos de arranque se remontaba al día 21 de Octubre.

El arranque previo al problema, día 20 de Octubre:

2015-10-20T20-22-37

Un arranque normal, unos 67 s. Por el contrario, el siguiente arranque, día 21 de Octubre:

2015-10-21T14-21-50

159.188 s, 2 min 40 s!! Realmente lento… Era curioso e incluso sospechoso, porque durante mucho tiempo durante el arranque el disco permanecía en reposo, el sistema estaba haciendo algo… pero no era leer o escribir en el SSD. Parecía un problema software.

Tras mucha investigación, al final la causa radicaba en una instalación de una actualización del driver de la tarjeta WiFi Dell. Desinstalación completa, limpieza de claves del registro, instalación de la última versión del driver y voilà!

boot 2015 10 30 12_07h 59.5s

Tiempo final de arranque 59.488 s, algo menos de un minuto. Un excelente resultado teniendo en cuenta la ingente cantidad de software instalado en la máquina.

Y el cliente… muy satisfecho. Aunque avisado de que pronto conviene instalar desde cero.

DellM4500_Core_i7

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes. Gracias de antemano.

El que tenga dudas o aportaciones tiene para ello la sección de comentarios, intentaré responder a todos y con la máxima claridad. Los Blogs deben de ser lugares de intercambio y agradezco vuestro feedback.