Estoy tratando de canalizar datos de alta velocidad de una aplicación a otra usando CentOS de 64 bits 6. He hecho los siguientes puntos de referencia usando dd
para descubrir que las tuberías me están frenando y no el algoritmo en mi programa. Mi objetivo es alcanzar alrededor de 1.5 GB/s.¿Hay alguna manera de mejorar el rendimiento de las tuberías de linux?
En primer lugar, sin tuberías:
dd if=/dev/zero of=/dev/null bs=8M count=1000
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 0.41925 s, 20.0 GB/s
A continuación, una tubería entre dos procesos de DD:
dd if=/dev/zero bs=8M count=1000 | dd of=/dev/null bs=8M
1000+0 records in
1000+0 records out
8388608000 bytes (8.4 GB) copied, 9.39205 s, 893 MB/s
¿Hay ajustes que pueda hacer para el kernel o cualquier otra cosa que mejorará el rendimiento de ejecutar datos a través de una tubería? También probé tubos con nombre y obtuve resultados similares.
¡Gracias por resolver esto! Hice algunas pruebas de seguimiento adicionales y descubrí que en realidad solo importa la velocidad de escritura. – KyleL
IMO, la pregunta no coincide con el texto de la pregunta ni la respuesta. Quiero aprender la respuesta a la pregunta real, yo mismo. :RE –