sintomas que preocupaciones preocupacion las excesiva enfermedades enferman causan performance hardware io hard-drive

performance - excesiva - que enfermedades causan las preocupaciones



¿Las unidades de estado sólido son lo suficientemente buenas como para dejar de preocuparse por los cuellos de botella del disco IO? (11)

Tengo un programa de prueba de concepto que está haciendo una comunicación entre procesos simplemente escribiendo y leyendo desde la HD. Sí, sé que esto es realmente lento; pero fue la forma más fácil de poner en marcha las cosas. Siempre había planeado regresar e intercambiar esa parte del código con un mecanismo que hace todo el IPC (comunicación entre procesos) en la RAM.

Con la llegada de discos de estado sólido, ¿cree que es probable que ese cuello de botella se vuelva insignificante?

Notas: Es un software de servidor escrito en C # que llama a algunas librerías de análisis de números de metal puro escritas en FORTRAN.


pero fue la forma más fácil de poner en marcha las cosas. Normalmente encuentro que es mucho más barato pensar bien una vez con tu propia cabeza, que hacer que la CPU piense millones de veces en vano.


¿Qué le parece usar una unidad ram en lugar del disco? No tendrías que volver a escribir nada. Simplemente apúntalo a un sistema de archivos diferente. Windows y Linux los tienen. Asegúrese de tener mucha memoria en la máquina y crear un disco virtual con suficiente espacio para su procesamiento. Hice esto para un sistema que escuchaba múltiples protocolos en un toque de red. Nunca volví a saber qué paquete iba a obtener y había demasiados datos para mantenerlo en la memoria. Lo escribiría en la unidad RAM y cuando algo se completara, lo movería y dejaría que otro proceso lo sacara de la unidad RAM y lo llevara a un disco físico. Pude mantenerme al día con las tarjetas de red de clase de servidor realmente ocupadas de esta manera. ¡Buena suerte!


Algo para tener en cuenta aquí:

Si la comunicación involucra mensajes frecuentes y está en el mismo sistema, obtendrá un muy buen rendimiento porque Windows en realidad no escribirá los datos en primer lugar.

Tuve que recurrir a él una vez y descubrí esto: la luz de conducción NO se encendió mientras los datos se siguieron escribiendo.


Creo que descubrirá que los cuellos de botella se acaban de mover . Como esperamos un mayor rendimiento, escribimos programas con mayores demandas.

Esto empuja los cuellos de botella a los buses, cachés y partes que no sean el mecanismo de lectura / escritura (que es el último de la cadena de todos modos).

Con un proceso no vinculado a E / S de disco, entonces creo que es posible que el planificador lo limite, lo que limita la cantidad de instrucciones de lectura / escritura (como con todas las instrucciones de proceso).

Para aprovechar al máximo la velocidad de E / S ilimitada, necesitaría una respuesta en tiempo real y una gestión muy agresiva de las memorias caché, etc.

Cuando los discos se vuelven más rápidos , también lo hacen la RAM y los procesadores, y la demanda en los dispositivos . El cuello de botella es el mismo, la carga de trabajo simplemente se hace más grande.


Joel on Software tiene un artículo sobre su experiencia de actualización a estado sólido. No es exactamente el mismo problema que tiene, pero mi conclusión fue:

Las unidades de estado sólido pueden acelerar significativamente las operaciones vinculadas de E / S, pero muchas cosas (como la compilación) siguen estando vinculadas a la CPU.


La respuesta corta es probablemente no. Un famoso investigador llamado Jim Gray dio una charla sobre almacenamiento y rendimiento que incluía esta gran analogía . Suponiendo que tu cerebro es el procesador, acceder a un registro requiere 1 tic (los números a la izquierda) que equivale aproximadamente a esa información en tu cerebro. Acceder a la memoria requiere 100 tics de reloj, lo que equivale aproximadamente a obtener datos en algún lugar de la ciudad donde vives. Acceder a un disco estándar toma aproximadamente 10 ^ 6 ticks, que es el equivalente a los datos que están en plutón. ¿Dónde encaja el estado sólido? La tecnología actual de SSD está entre 10 ^ 4-10 ^ 5 dependiendo de a quién le preguntes. Si bien pueden ser un orden de magnitud más rápido, todavía hay una gran brecha entre la lectura de la memoria y la lectura del disco. Esta es la razón por la que la respuesta a su pregunta es probable que no, ya que tan pronto como se conviertan en SSD, seguirán siendo significativamente más lentos que el disco (al menos en un futuro previsible).


Las unidades de estado sólido son una mejora importante para el rendimiento IO, y ese es el hecho de que en los discos de estado sólido, la ubicación del bloque es un problema menor a partir de la rotación de los medios. Esto significa que las aplicaciones de E / S de alto rendimiento pueden cambiar su enfoque de las estructuras que organizan los datos accedidos para las estructuras que optimizan las E / S de otras maneras, como al mantener los datos en un solo bloque por medio de la compresión. Dicho esto, incluso las unidades de estado sólido se benefician de los patrones de acceso lineal porque pueden captar previamente los bloques subsiguientes en una caché de lectura antes de que la aplicación lo solicite.

Una regresión notable en los discos de estado sólido es que las escrituras tardan más tiempo que las lecturas, aunque ambas siguen siendo generalmente más rápidas que las unidades rotativas, y la diferencia se está estrechando con los discos de estado sólido de gama alta más nuevos.


No creo que cambie la forma en que las aplicaciones vinculadas de E / S se escriben un poquito. Tener procesadores más rápidos tampoco hacía que la gente escogiera el bubblers como un algoritmo de clasificación.

Las jerarquías de la memoria externa son un problema inherente de la informática.


No, lamentablemente no. Sin embargo, lo hacen aún más interesante: las unidades SSD tienen lecturas muy rápidas y no tienen tiempo de sincronización, pero sus escrituras son casi tan lentas como los discos duros normales. Esto significa que querrá leer la mayor parte del tiempo. Sin embargo, cuando escriba en la unidad, debe escribir tanto como sea posible en el mismo lugar, ya que las unidades SSD solo pueden escribir bloques completos a la vez.


No. Las SSD actuales están diseñadas como reemplazos de disco. Cada capa, desde el controlador SATA hasta el controlador del sistema de archivos, los trata como almacenamiento.

Este no es un problema de la tecnología subyacente, flash NAND. Cuando el flash NAND se asigna directamente a la memoria y utiliza un sistema de almacenamiento de registro rotativo en lugar de un sistema de archivos basado en archivos nombrados, puede ser bastante rápido. El problema fundamental es que NAND Flash solo se desempeña bien en las actualizaciones de bloque. Las actualizaciones de metadatos de archivos provocan costosas operaciones de lectura, modificación y escritura. Además, los bloques NAND son mucho más grandes que los bloques de disco típicos, lo que tampoco ayuda al rendimiento.

Por estas razones, el futuro de las SSD será una mejor SSD en caché. DRAM ocultará la sobrecarga de la mala asignación y una pequeña copia de seguridad supercap le permitirá a la SSD escribir escrituras más rápido.


Tengo una unidad de estado sólido, y no, esto no eliminará la E / S como un cuello de botella. La SSD es agradable, pero no es tan bonita.

En realidad, no es difícil dominar las primitivas IPC de su sistema o construir algo encima de TCP. Pero si quiere seguir con su disco duro y hacerlo más rápido, ramdisk o tmpfs pueden hacer el truco.