Próbuję przesyłać dane o wyjątkowo dużej szybkości z jednej aplikacji do drugiej przy użyciu 64-bitowego CentOS 6. Zrobiłem następujące testy porównawcze, używając dd
, aby odkryć, że rury mnie powstrzymują, a nie algorytm w moim programie. Moim celem jest osiągnięcie około 1,5 GB/s.Czy istnieje sposób na zwiększenie wydajności przewodów linuxowych?
Po pierwsze, bez rur:
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
Następny, rurę pomiędzy dwoma procesami 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
Czy istnieją jakieś szczypie mogę zrobić do jądra lub cokolwiek innego, co przyczyni się do poprawy wydajności uruchamianie danych przez potok? Próbowałem również nazwanych potoków i uzyskałem podobne wyniki.
Dzięki za zrozumienie tego! Zrobiłem kilka dodatkowych testów i odkryłem, że tak naprawdę liczy się tylko szybkość zapisu. – KyleL
IMO, pytanie nie pasuje do tekstu pytania ani odpowiedzi. Chcę poznać odpowiedź na to samo pytanie. :RE –