Pregunta ¿Son las redes ahora más rápidas que los discos?


Esta es una pregunta de diseño de software

Solía ​​trabajar en la siguiente regla para la velocidad.

cache memory > memory > disk > network

Cada paso es 5-10 veces el paso anterior (por ejemplo, la memoria caché es 10 veces más rápida que la memoria principal).

Ahora, parece que Gigabit Ethernet tiene una latencia menor que el disco local. Por lo tanto, tal vez las operaciones para leer en una base de datos remota grande en memoria sean más rápidas que las lecturas de discos locales. Esto se siente como una herejía para un viejo cronómetro como yo. (Acabo de dedicar un tiempo a crear una memoria caché local en el disco para evitar tener que hacer viajes de ida y vuelta a la red, de ahí mi pregunta)

¿Alguien tiene alguna experiencia / números / consejos en esta área?

Y sí, sé que la única forma real de averiguarlo es construir y medir, pero me preguntaba acerca de la regla general.

editar:

Estos son los datos interesantes de la respuesta superior:

  • Ida y vuelta dentro del mismo centro de datos 500,000 ns.

  • Búsqueda de disco 10,000,000 ns

Esto es un shock para mí; Mi modelo mental es que un viaje de ida y vuelta en red es inherentemente lento. Y no es - es 10 veces más rápido que un disco 'ida y vuelta'.

Jeff attwood publicó este buen blog sobre el tema. http://blog.codinghorror.com/the-infinite-space-between-words/


118
2018-02-21 23:46


origen


Aveces si aveces no. Que red Que disco - John Gardeniers
Los otros datos interesantes de la respuesta principal: 1 MB de lectura secuencial de la red en comparación con el disco. Sospecho que el tiempo de "ida y vuelta" omite cualquier transferencia de datos significativa. - Paul
Paul: Depende de tu MTU, estoy seguro. (1MB MTU? Impresionante!) - Matt Simmons
Me encantaría ver algunas de estas respuestas reconsideradas a la luz de que los equipos de red de 10Gbps están ampliamente disponibles. - chicks
¿Red gigabit vs raid 5? - SoilSciGuy


Respuestas:


Aquí hay algunos números que probablemente esté buscando, como lo cita Jeff Dean, un miembro de Google:

Números que todos deberían saber

L1 cache reference                             0.5 ns
Branch mispredict                              5 ns
L2 cache reference                             7 ns
Mutex lock/unlock                            100 ns (25)
Main memory reference                        100 ns
Compress 1K bytes with Zippy              10,000 ns (3,000)
Send 2K bytes over 1 Gbps network         20,000 ns
Read 1 MB sequentially from memory       250,000 ns
Round trip within same datacenter        500,000 ns
Disk seek                             10,000,000 ns
Read 1 MB sequentially from network   10,000,000 ns
Read 1 MB sequentially from disk      30,000,000 ns (20,000,000)
Send packet CA->Netherlands->CA      150,000,000 ns

Es de su presentación titulada. Diseños, lecciones y consejos de la construcción de grandes sistemas distribuidos y puedes conseguirlo aquí:

La charla fue dada en Sistemas distribuidos a gran escala y middleware (LADIS) 2009.

Otra información


Está dicho ese gcc -O4 envía su código por correo electrónico a Jeff Dean para que lo reescriba.



127
2018-02-22 07:38



+1 Muy interesante! - 9dan
Algunas presentaciones tienen diferentes valores indicados entre paréntesis. Supongo que el uno en el soporte era incorrecto y él actualizó los valores. - David d C e Freitas
¿Es esta toda la era pre-SSD? ver aquí para más números actualizados. - matt
En realidad usé estos números para construir una Presentación que muestra por qué las unidades SSD se pagan por sí mismas., para convencer a nuestro gerente de oficina de que sí, necesitábamos máquinas más rápidas para trabajar. Incluyó los números de la información técnica, pero lo orientó hacia la gestión no tecnológica lo más posible. - brichins


Hay muchas variables cuando se trata de la red en comparación con el disco, pero en general, el disco es más rápido.

Los buses SATA 3.0 y SAS son de 6 Gbps, frente a una sobrecarga de protocolo de 1 Gbps menos de redes. Con RAID-10 15k SAS, la red parecerá lenta. Además, tiene caché de disco y también la posibilidad de discos duros de estado sólido, lo que, dependiendo del escenario, también podría aumentar la velocidad. El acceso de datos aleatorio vs. secuencial juega un factor, así como el tamaño del bloque en el que se transfieren los datos. Todo depende de la aplicación que se utiliza para acceder al disco.

Ahora, ni siquiera me he referido al hecho de que todo lo que está transportando a través de la red va o viene del disco de todos modos ... así que ... nuevamente, el disco es más rápido.


19
2018-02-22 01:41



Puntos por mencionar RAID que le brinda lecturas paralelas, algo que es poco probable que obtenga en una red en el corto plazo. Por supuesto, si estamos hablando de discos duros de computadoras portátiles locales, entonces la combinación de SAN rápida y red rápida podría ser más rápida. Especialmente con los SSDs en esa SAN. - Michael Dillon
Las redes son inherentemente paralelizables, ¿de qué estás hablando? Es increíblemente trivial leer de varios sistemas en una red en conjunto; Este es todo el punto detrás de sistemas como Hadoop y MPI, sin mencionar el obvio BitTorrent. - jgoldschrafe
Con SONET / SDH puedes tener 38Gbps aún más rápido que SAS. Y la agregación de red se puede hacer con algo como en.wikipedia.org/wiki/Link_aggregation - Mircea Vutcovici
@Jake Cuando se habla de 6 Gbps, es posible que desee hacer una clara distinción entre el ancho de banda de la interfaz y la velocidad a la que un disco puede suministrar datos. - NPE
Dije en mi pregunta que estaba hablando de un remoto en la base de datos de memoria en comparación con un local en el caché de disco - pm100


Bueno, eso depende de si el recurso de red tiene los datos que solicita fácilmente disponibles (en memoria o similar) o si, a su vez, simplemente los leería desde un disco.

En cualquier caso, el rendimiento puede ser mayor en algunos casos, pero creo que la latencia será mayor.


10
2018-02-21 23:51



¿Quiere decir que el tiempo de búsqueda en el disco es mayor que una solicitud de 10 Gbit / s? - Mircea Vutcovici
@Mircea, quiere decir que la red de 10 Gbit tiene que obtener sus datos de algún lugar, por lo que se limitará a la latencia de esa fuente, más la latencia de la red. - Chris S
El almacenamiento podría ser un disco RAM. Ver: en.wikipedia.org/wiki/Solid-state_drive#DRAM-based - Mircea Vutcovici


IMX el disco es aún más rápido. La tasa de transferencia teórica de la red es alta, pero en la práctica no te acercas a eso.

Hace aproximadamente dos años tuve problemas con el disco duro de mi computadora portátil y el DMA se apagó. Esto hizo que el disco duro fuera mucho más lento y, en particular, más lento que la red. Pero cuando cambié a otra computadora, volví a mi estado original de HDD más rápido que a Internet.


2
2018-02-21 23:50





Mi experiencia con las redes gigabit es, dado el servidor correcto, que puede mejorar el rendimiento local en términos de rendimiento y latencia. Ver Pruebas de red: ¿Estamos obteniendo un rendimiento de Gigabit?

Para todos los propósitos prácticos, recomendaría tratar la red y el almacenamiento local como equivalentes y solo usar cachés de memoria.

La advertencia estándar que mencionó es cierta en el sentido de que no hay reglas generales; y que en realidad la mayor parte del tiempo uno debería estar trabajando con servidores bien configurados y usar métricas para evaluar el mejor método de transferencia de datos.

Si está utilizando una máquina de gama baja con un disco duro lento, casi con toda seguridad será más rápido utilizar una conexión de red gigabit a un servidor con una matriz de almacenamiento rápido.

Del mismo modo, si trabaja con dos máquinas de hardware casi idéntico, la latencia y la sobrecarga de la red harán que el almacenamiento local sea más rápido; es de sentido común realmente


2
2018-02-22 00:18





Depende. Si su E / S es principalmente de acceso aleatorio, su rendimiento plano probablemente no sea tan bueno en comparación con el ancho de banda de la red que podría estar disponible. Sin embargo, la mayoría del tráfico de red se genera en última instancia por procesos que implican I / O. Si el conjunto de trabajo de cualquier proceso está generando el tráfico de red se ajusta al caché, entonces no estará limitado por el ancho de banda del disco. Si golpea el caché, entonces el disco se convertirá en un cuello de botella.

Trabajo en sistemas de almacenamiento de datos, y la consulta de DW canónica es una exploración de tabla. Si su consulta alcanza más que un pequeño porcentaje de las filas en la tabla de hechos (o partición), una exploración de la tabla o partición con E / S secuencial será más eficiente que un plan de consulta de acceso aleatorio con búsquedas de índice y búsquedas.

El almacenamiento en red (es decir, las SAN) tiende a no funcionar bien en la transmisión de cargas de trabajo a menos que se sintonice adecuadamente. Si la SAN se está utilizando para un entorno de consolidación de propósito general, es casi seguro que se sintonizará de manera sub-óptima para una transmisión de datos, como un almacén de datos. He visto un informe del proveedor que sugiere que necesita aproximadamente 3 veces la cantidad de discos para obtener el mismo rendimiento en una SAN que no está sintonizada para la E / S de transmisión como para la que sí lo está.

Mi experiencia concuerda con eso. De hecho, nunca he implementado un almacén de datos en un entorno de consolidación en el que no podría ejecutar el mismo proceso ETL significativamente más rápido en mi PC de escritorio.  También he tenido representantes de ventas de un importante proveedor de equipos SAN que dicen extraoficialmente que muchos de sus clientes usan almacenamiento de conexión directa para el sistema DW porque las SAN no son lo suficientemente rápidas.

El almacenamiento en red es al menos un orden de magnitud más costoso por IOPS que el almacenamiento de conexión directa para cargas de trabajo de acceso aleatorio y más cercano a dos órdenes de magnitud más caros para la transmisión.


2
2018-02-27 21:11





La experiencia que tengo con esto es que cuando estás en una conexión de 1 Gbit y tratas de descargar un archivo, tu disco duro suele ser el cuello de botella. Sin embargo, una cosa que hay que tener en cuenta es que primero debe configurar una conexión, lo que también requiere tiempo. Por lo tanto, para enviar grandes trozos de red de datos podría ser más rápido que el disco.


1
2018-02-21 23:49



A menos que el disco también sea el cuello de botella en el otro lado de la conexión de red ...
@Argote: Es cierto, pero si el software del servidor se escribió correctamente, se almacenará en la memoria antes de escribir en el disco. - amphetamachine


Sí, en general, las redes ahora son más rápidas que los discos duros, pero esto puede cambiar con el tiempo.

Pienso, luego existo

Cuando una aplicación se está ejecutando, significa que la máquina host está funcionando, mientras que trabajar a través de la red necesita un protocolo común, verificando la disponibilidad de los compañeros, la seguridad del canal ... y si los compañeros usan diferentes plataformas, es más difícil lograr lo que puede hacer en una sola máquina.

Prefiero ver esto en los términos de las compensaciones en lugar de quién es el más fuerte ...


1
2018-02-22 00:00



Dudo, por lo tanto podría ser. - John Gardeniers


Tienes que describir un caso de uso exacto para esta comparación. Los discos duros tienen tiempo de búsqueda + velocidad de transferencia y caché. Las redes tienen latencia, tasa de transferencia y sobrecarga de protocolo ...

Creo que su memoria caché original> memoria> disco> red sigue siendo cierta en general, aunque


1
2018-02-22 00:02





El disco está conectado con la CPU a través de bus SCSI, SAS o IDE. Que es una red interna que ejecuta un protocolo específico: SCSI o ATAPI. Ethernet está diseñado para funcionar en distancias más largas y puede ser mucho más lento que SAS / SCSI / IDE. Entonces, cuál es más rápido, depende de qué tecnologías estás comparando. Si compara una unidad de disco duro portátil de 20 años con una memoria RAM de 10Gbps, el ganador siempre será la red. Y cuando compra un almacenamiento, debe compararlo con el precio y la capacidad de administración.


0
2018-02-22 02:13





Bueno, hay Pico de luz que apunta a una velocidad de red de 100GBps, que se acerca a las velocidades de RAM. Por supuesto, la red solo puede entregar datos tan rápido como el remitente puede generar los datos, es decir, si el remitente está leyendo los datos desde un disco duro, entonces el receptor solo obtendrá los datos a la misma velocidad que el disco leído, incluso con una red ultrarrápida.


0
2018-02-22 15:32