[Linuxtrent] Netcat, dd e colli di bottiglia

  • From: "Daniele P." <linuxtrent-79252@xxxxxxxx>
  • To: <linuxtrent@xxxxxxxxxxxxx>
  • Date: Sun, 14 Dec 2003 13:13:03 +0100

Salve a tutti,
qualche tempo fa si era parlato di netcat per copiare intere partizioni
via rete.
Ho fatto qualche test per misurare quanto sia la banda passante su una 
rete a 100Mbit e ho scoperto che in situazione reale non riesco a 
saturare la rete nonostante i singoli passi lo permettano.
In pratica in lettura posso andare oltre 100Mbit al secondo e in 
scrittura anche. Il canale permette 100Mbit quasi reali. Quando però 
concateno tutti i passi rimango a circa 80Mbit.
In pratica digitando su sorgente
netcat destinazione 3333 < /dev/hda
e su destinazione
netcat -l -p 3333 >/dev/null
saturo la rete, se su destinazione scrivo realmente con
netcat -l -p 3333 >/dev/hda
o anche con
netcat -l -p 3333 >/mnt/hda1/file
il traffico si riduce a circa 80 Mbit.
Ho provato infinite varianti come
dd if=/dev/hda bs=8192 | netcat ...
netcat ... | dd of=/dev/hda
netcat ... | cat >/dev/hda
Ho provato anche diversi netcat e cugini (due netcat, socat)
senza nessuna variazione significativa.
Chiaramente su destinazione un
dd if=/dev/zero of=/dev/hda
raggiunge qualche decina di MByte al secondo, anche se a guardare bene 
in realtà la velocità raggiunta in scrittura dipende fortemente dalla 
dimensione del blocco.
E credo che qui sia il problema, infatti se filtro con dd l'output di 
netcat su destinazione ottengo entrati x+y record dove y è circa x/2
Per cui credo che l'inghippo sia nei resti.

Devo rassegnarmi al fatto che la dimensione del blocco ottimale
per saturare la rete è diversa dalla dimensione del blocco
ottimale da scrivere su disco oppure si può mediare/forzare qualcosa?
O addirittura l'inghippo sta da un'altra parte?
Ho anche provato a ricompilare al volo su un knoppix un netcat
cambiando la dimensione del blocco, ma non funzionava più e penso
anche di sapere il perché ma mi dilungherei troppo.

Buona Domenica,
Daniele P.

--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: