Ich versuche, extrem schnelle Daten von einer Anwendung zur nächsten zu übertragen, indem ich CentOS 6 verwende. Ich habe die folgenden Benchmarks mit dd
durchgeführt, um festzustellen, dass die Pipes mich zurückhalten und nicht den Algorithmus in meinem Programm. Mein Ziel ist es, irgendwo rund 1,5 GB / s zu erreichen.
Erstens, ohne Pfeifen:
%Vor%Als nächstes eine Pipe zwischen zwei dd-Prozessen:
%Vor%Gibt es irgendwelche Optimierungen, die ich am Kernel vornehmen kann, oder irgendetwas anderes, das die Leistung beim Ausführen von Daten durch eine Pipe verbessert? Ich habe auch Named Pipes ausprobiert und ähnliche Ergebnisse erhalten.
Haben Sie es mit kleineren Blöcken versucht?
Wenn ich meine eigene Workstation anwende, bemerke ich eine sukzessive Verbesserung, wenn die Blockgröße verringert wird. Es ist nur in dem Bereich von 10% in meinem Test, aber immer noch eine Verbesserung. Sie suchen nach 100%.
Wie sich herausstellen sollte, scheinen wirklich kleine Blockgrößen den Trick zu erfüllen:
Ich habe es versucht
%Vor%Und mit deinem Original
%Vor%5,0 / 1,3 = 3,8, das ist ein beträchtlicher Faktor.
Tags und Links named-pipes linux performance pipe