¿Cuál es el cuello de botella actual de un equipo informático?


El Bottleneck o Cuello de botella (Definición de Alegsa.com.ar) supone una limitación del rendimiento del equipo informático (PC) para realizar una función determinada (Por lo tanto el cuello de botella de un ordenador siempre a va ser su pieza más lenta). El cuello de botella puede ser debido a:

  • Un componente “lento” de por si (Ej: Un disco duro) que ralentiza al resto del sistema a pesar de ser actual (Los componentes electrónicos (CPU, Gráfica, Chipset,…) actualmente no suponen un cuello de botella).
  • Un desaprovechamiento de un componente “nuevo” porque el componente “base” en el que se instala es “lento” (Esto puede ocurrir por ejemplo al actualizar un equipo antiguo con piezas nuevas que sean compatibles), como por ejemplo utilizar:
    • Una tarjeta gráfica AGP 8x en un puerto 4x.
    • Una tarjeta PCIe 16x en una ranura limitada a PCIe 4x porque no existe ninguna ranura PCIe de  16x.
    • Un disco duro ATA133 en un equipo con conectores SATA300 (Normalmente disponen al menos de un conector ATA133 para conectar dispositivos antiguos y/o unidades ópticas).
    • Una memoria RAM DDR400 en una placa que admita DDR2 667 (Teniendo en cuenta que las placas base que soportan dos tipos diferentes de memoria no la admiten de forma simultánea o mezclada, es decir que sólo se puede usar un tipo de memoria u otro).
    • Una memoria RAM DDR2 1066 en una placa base que admita hasta DDR2 667 o bien el controlador de memoria del procesador (Caso de los Athlon64) este limitado a DDR2 667.

Lógicamente la sensación de lentitud (Dentro de un orden claro está) es diferente para cada usuario y por lo tanto el cuello de botella puede estar en piezas diferentes en función de la tarea a desarrollar por ejemplo para:

  • Editar video si no queremos que el proceso se “eternice” suele ser necesario tener:
    • Un buen procesador (Basicamente es el que se encarga de procesar el video).
    • Una buena cantidad de RAM.
  • Jugar de forma fluida a los últimos juegos 3D con gran resolución (Ej: Full HD ó 1080p: 1.920 x 1.080 píxeles) y buen nivel de detalle (Aplicación de filtros) será necesario tener:
    • Una buena tarjeta gráfica que sea capaz de procesar los recursos gráficos que genera el juego en cuestión.
    • Un procesador “bueno”.
    • Bastante RAM.

Hay que tener en cuenta que el cuello de botella sólo se vería reflejado en usos muy concretos (Como por ejemplo los comentados anteriormente), ya que un equipo actual para ofimática con un par de años aunque se actualizase algún componente no tendría un cuello de botella significativo ya que las aplicaciones que utiliza no requieren un gran consumo de recursos, si acaso se podría cambiar el disco duro por otro más rápido pero dado que actualmente:

  • Los equipos domésticos en general usan discos de 7.200 Rpms (Los equipos profesionales pueden usar discos de 10.000 ó 15.000 Rpms, aunque actualmente tienden a utilizar SSD, comentados en estas entradas del Blog: Guía para comprar un SSD (Solid State Device, Dispositivo de Estado Sólido) y SSD (Solid State Drive, Dispositivo de Estado Sólido): Los nuevos discos duros).
  • Los discos de 10.000 Rpms SATA están “limitados” a los Velociraptors de Western Digital, pero tienen una relacion €/GB pémisa (Los modelos de 74 y 150 GB rondan los 150 €, el de 300 GB ronda los 203 €, el de 450 GB los 280 y el de 600 GB ronda los 285 €), ya que los precios en muchos casos se acercan a de un SSD  de entre 60 y 120 GB.
  • Los SSD tienen una relación €/GB también pésima (Aunque su rendimiento es muy superior a cualquier disco duro actual de 10.000 ó 15.000 Rpms), un SSD de 60 GB ronda los 160 € y uno de 120 GB ronda los 320 €, aunque también hay SSD de 40 GB y alto rendimiento (Ej: Mushkin Callisto, comentado en esta entrada del Blog) que rondan los 108 € sin gastos de envío.

Para un uso puramente ofimático posiblemente siga interesando tirar de discos duros mecánicos por su relacion precio/prestaciones frente a los SSD.

Sin embargo existe un cuello de botella “endémico” en cualquier equipo informático actual de altas prestaciones: El disco duro, desde el inicio de la informática los sistemas de almacenamiento electro-mecánicos (Discos duros) han sido siempre el cuello de botella, un disco duro:

  • UDMA33 (ATA33) podía transmitir hasta 33 MB/Seg aunque luego su rendimiento secuencial y aleatorio era inferior (Utilizaban cables de 40 hilos y 40 contactos).
  • UDMA66 (ATA6) podía transmitir hasta 66 MB/Seg aunque luego su rendimiento secuencial y aleatorio era inferior (A partir de ATA66 hasta ATA133 se utilizaron cables de 80 hilos y 40 contactos).
  • UDMA100 (ATA100) podía transmitir hasta 100 MB/Seg aunque luego su rendimiento secuencial y aleatorio era inferior.
  • UDMA133 (ATA33) podía transmitir hasta 133 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior.
  • Serial ATA 150 (SATA150) podía transmitir hasta 150 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior (Lo normal es que el bus SATA utilice una conexión PCI express o PCIe).
  • Serial ATA 300 (SATA300 ó SATA2) transmite hasta 300 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior.
  • Serial ATA 600 (SATA600 ó SATA3) podía transmitir hasta 600 MB/Seg (Que es justamente el máximo ancho de banda del bus PCI) aunque luego su rendimiento secuencial y aleatorio era inferior.

Hay que tener en cuenta que en el caso de los discos UDMA/ATA el ancho de banda disponible se repartía entre los dos dispositivos (Master y Slave)  conectados al mismo canal (Primario o Secundario) y que el acceso a los mismos (Ej: Pasar datos de un disco duro Master en canal primario al disco Slave del mismo canal) no era simultáneo sino alterno. Con el nuevo conector Serial ATA (SATA) ha habido una mejora en este sentido ya que cada dispositivo tiene su ancho de banda propio (En el caso de SATA150, cada conector tiene hasta 150 MB/Seg de ancho de banda, en el caso de SATA300/SATA2 cada conector tiene hasta 300 MB/Seg y en el caso de SATA600/SATA3 cada conector tiene 600 MB/Seg) puesto que la conexion es “directa” desde el dispositivo (Ej: Disco Duro) al conector SATA de la placa base.

Actualmente para equipos de gama alta parece más interesante tener un SSD o dos en RAID 0 (Stripping) junto con un disco duro de alta capacidad para:

  • Instalar el Sistema Operativo y el Software (Programas y Juegos) en el SSD, acelerando así la carga del Sistema Operativo y la apertura de los programas/juegos).
  • Dejando el disco duro de gran capacidad para almacenar los datos de usuario (Documentos, Música, Videos/Películas, Descargas,…) los cuales no necesitan tener una apertura “instantánea”.

El mayor problema es que si necesitamos un SSD de cierta capacidad 120 GB o más el precio del mismo se “dispara”.

Ya que actualmente los ordenadores tienen un gran ancho de banda en los componentes puramente electrónicos como por ejemplo:

  • FSB de los procesadores, por ejemplo el bus Hyper-Transport (HTT) v3.0 de los ultimos AMD tiene una frecuencia de funcionamiento de 3,2 Ghz con 32 Bits, que se traduce en un ancho de banda bidireccional de 51,2 GB/Seg, y los primeros Intel Nehalem (Core i7 y derivados) tienen un bus similar al HTT de AMD denominado QPI (QuickPath Interconnect), el cual funciona a 3,2 Ghz con 20 Bits, que se traduce en un ancho de banda bidireccional de 25,6 GB/Seg.
  • Memoria RAM DDR2 PC1066 que tiene 8.500 MB/Seg (8,5 GB/Seg).
  • Memoria RAM DDR3 PC1600 que tiene 12.800 MB/Seg (12,8 GB/Seg).
  • Bus Serial ATA300 (Hasta 300 MB/Seg).
  • Bus Serial ATA600 (Hasta 600 MB/Seg).
  • USB 3.0 (Hasta 4,8 Gbps, unos 4.800 Mbps que equivalen a unos 600 MB/Seg).
  • Bus PCI Express (PCIe) que en su version 1.1 tiene un ancho de banda de 250 MB/Seg y por canal, es decir que un bus PCIe de 1x tendría 250 MB/Seg (El bus PCI anterior tenía como máximo 133 MB/Seg para todos los dispositivos que hubiese conectados a él), mientras que un PCIe 16x tendría 4 GB/Seg (4.000 MB/Seg) ya que serían 16 canales de 250 MB/Seg cada uno (250 MB/Seg x 16  canales = 4.000 MB/Seg). Actualmente el bus PCIe va por la versión 2.0 el cual dobla la tasa de transferencia, hastalos 500 MB/Seg y el próximo bus PCIe 3.0 la vuelve a doblar hasta los 1.000 MKB/Seg.

Sin embargo los discos duros mecánicos actuales (Lo habitual es que sean de 5.400 ó 7.200 Rpms) por muy rápidos que sean (Aun siendo de 10.000 ó 15.000 Rpms)  no pueden aprovechar al 100% el ancho de banda que proporcionan los buses de datos actuales como por ejemplo:

  • SATA o S-ATA (Serial ATA).
  • SCSI (Small Computers System Interface (Sistema de Interfaz para Pequeñas Computadoras).
  • SAS (Serial Attached SCSI que es utiliza unos conectores similares a SATA pero incompatibles con él).

Por lo que el rendimiento del sistema de almacenamiento supone un cuello de botella bastante grande, por varias razones:

  1. Alta latencia: Los discos duros de 7.200 Rpms (Los más comunes en entornos domésticos) tiene un tiempo de busqueda según fabricante en el mejor de los casos de unos 9 ms aproximadamente (Mientras que un disco de 10.000 Rpms segun datos de los fabricantes tienen el mejor de los casos 4,2 ms y los discos de 15.000 Rpms tienen entre 3,4 y 3,5 ms), esto se traduce en una pérdida de rendimiento debido a que para buscar un dato es necesario invertir bastante “tiempo” si se compara con un SSD los cuales tienen latencias (Tiempo de Acceso) inferiores a 1 ms.
  2. Tasa de transferencia: Que en el caso de los discos duro no se mantiene sostenida sino que fluctua entre un maximo y un minimo, de hecho las gráficas de los Benchmark de disco duro como: HD Tach y HD Tune, muestran que un disco duro SATA300 de 500 GB y 7.200 Rpms actual puede tener una tasa media de transferencia de datos de unos 100 MB/Seg pero esta tasa no es sostenida a lo largo de toda la superficie del plato sino que suele empezar por una tasa ligeramente superior a la media para ir bajando progresivamente hasta por debajo de la media pudiendo llegar a ser la tasa mínima aproxidamente entre el 50 (En torno a los 50 MB/Seg) ó el 60% (En torno a los 60 MB/Seg) de la velocidad media.
  3. IOPS (Input Output Per Second, Operaciones de Entrada – Salida Por Segundo): Los discos duros tienen muy bajo rendimiento en este sentido.

Estos problemas y otros derivados de la propia arquitectura de los discos duros inicialmente se “resolvieron” con los niveles RAID (Hay más información en esta entrada del Blog) que permitian mejorar:

  • El rendimiento del sistema de almacenamiento (Ej: RAID 0, Stripping)
  • La seguridad física de los datos, como es el caso de RAID 1 (Mirroring o Espejo).
  • El rendimiento y la seguridad física de los datos, como es el caso de RAID 5 y RAID 10.

Sin embargo aun utilizando sistemas RAID los discos duros tienen una latencia alta, por lo que los SSD (Solid State Device, Dispositivos de Estado Sólido) basados en memorias Nand Flash como las que se utilizan en las memorias flash USB o las tarjetas de memoria, son los que realmente proporcionaran al usuario un gran rendimiento ya que apenas tienen latencia (Es inferior a 1 ms) y sus tasas de transferencia de datos son muy altas (Si queremos mayor rendimiento aún se puede optar por un RAID 0 con dos o más SSD); sin embargo hasta que no sus precios sean “asequibles” (Actualmente un SSD “bueno” de entre 60 y 80 GB ronda los 160 – 225 €) no se podrá eliminar el lastre de rendimiento que suponen los discos duros para los sistemas operativos actuales y sus programas/juegos.

De hecho en el futuro no sería raro ver equipos de altas prestaciones con Un SSD para el Sistema (Incluyendo los Programas y Juegos) para que le de “rapidez” al equipo, mientras que los datos de usuario se guardan en:

  • Discos duro electro-mecánicos de gran capacidad (Actualmente existen discos de hasta 2 TB y ya que comenta que en breve saldrán los discos de 3 TB).
  • Discos duros híbridos (HHD: Hybrid Hard Drive, Discos Duro Híbrido que son discos electro-mecánicos pero con algo de memoria Flash para acelerar el rendimiento, en esta entrada del Blog hay más información)  de gran capacidad (Actualmente Seagate tiene un modelo con estas caracteristicas denominado Seagate Momentus XT, es un disco duro de 2,5″ (Tamaño de disco duro de portátil) que esta disponible en tres capacidades: 250 GB, 320 GB y 500 GB que cuenta con 4 GB de memoria Nand Flash SLC, pero teniendo en cuenta que el modelo de 320 GB ronda los 123 € y el modelo de 500 GB los 148 € parece mejor opción este último ya que por unos 30 € más se consiguen 180 GB “extras”).
Anuncios