[Gfoss] OT: upload lento su Win7

>io personalmente sulla mia LAN sono riuscito a passare 
>da 20-40 KB/s a 5000-7000 KB/s dopo avere applicato
>questa ottimizzazione :-)

Sono sincero,
mentre leggevo questo post dubitavo che fosse vero ...

Anche perche' sapevo che l'adsl e' notoriamente asimmetrica
veloce in download e più lenta in upload, e pensavo che in realtà fosse quella la causa della differenza di velocità,
non il sistema operativo.

Ma visto che sono state fatte prove e l'incremento e' avvenuto, devo ricredermi.
Accidenti!

Anche perche' se questo fosse vero, allora le implicazioni sono molteplici.
Ad esempio, penso a una condivisione di file via rete. La classica condivisione di cartelle che si effettua su windows

(protocollo cifs o peer2peer).
Anche in quel caso a livello di operatività sebbene sembri che sia il computer ospite a "tirar via" il file, in realtà e' il computer che condivide 
a effettuare la spedizione, e quindi siamo ancora nel caso dell' upload.

Questo vuol dire che con la correzione che viene suggerita si puo' migliorare anche in questo caso.

E' una informazione veramente importante.

Ora il mio Windows sarà ancora piu' performante... :)))

(è una battuta), 

Vorrei dire che personalmente apprezzo molto l'impostazione di condividere anche questo genere di informazioni.

E poi per rientrare nel mondo GIS, questa info aiuta senz'altro a condividere dei files "spatialite" in rete locale.

Andrea Peri
. . . . . . . . .
qwerty àèìòù

On Sat, 10 Jul 2010 13:02:22 +0200, Andrea Peri wrote

> ... sapevo che l'adsl e' notoriamente asimmetrica

> veloce in download e più lenta in upload, e pensavo 

> che in realtà fosse quella la causa della differenza di 

> velocità, non il sistema operativo.

> 

> Ma visto che sono state fatte prove e l'incremento e' 

> avvenuto, devo ricredermi.

> 

Andrea, qui l'ADSL non c'entra nulla: stiamo parlando di connessioni LAN.

Addirittura anche di connessioni "interne" tra VM diverse che girano sul 

medesimo host

> Anche perche' se questo fosse vero, allora le implicazioni sono molteplici.

> Ad esempio, penso a una condivisione di file via rete. 

> La classica condivisione di cartelle che si effettua su windows

> (protocollo cifs o peer2peer).

> Anche in quel caso a livello di operatività sebbene sembri che sia 

> il computer ospite a "tirar via" il file, in realtà e' il computer che 

> condivide a effettuare la spedizione, e quindi siamo ancora nel caso 

> dell' upload.

> 

Non so dirti se anche la condivisione files e cartelle

nativa di Windows è affetta dal problema: non ho verificato

[anche perchè ho un'unica piattaforma Win: tutte le altre 

sono Linux]

Quello che è certo è che con gli strumenti 'normali'

come FTP, Samba, Putty etc andava lento da fare pietà.

N.B. non è un problema generalizzato di Windows.

fino a quando usavo WinXP tutto andava perfettamente bene.

da quanto ho riscontrato sui vari forum (questo specifico

problema è molto "popolare") i guai sono cominciati da

quando Vista e Win7 hanno introdotto uno stack TCP/IP 

completamente riscritto da zero

molto probabilmente dipende anche dai drivers del NIC:

la direttiva DisableTaskOffload=1 semplicemente impedisce

di utilizzare i checksum calcolati dal NIC, trasferendo

questo compito alla CPU

http://social.msdn.microsoft.com/Forums/en/wfp/thread/e8af7b69-5d45-4ace-903c-084f31a8c90b

la configurazione che a me dava problemi è:

CPU Core i5 3,46 GHz / 4 GB Ram

Win7 64 bit Professional

NIC Intel 82578DM Gigabit Ethernet

ciao Sandro

Ho indagato un po’ sulla questione…

>1) lanciare Regedit
>2) posizionarsi sulla chiave
>   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
>3) creare una una nuova chiave:

>   nome=DisableTaskOffload
>   tipo=DWORD
>   valore=1
>4) spengere e riavviare Win7

A me sembrerebbe che Il valore da inserire per velocizzare e’ 0 e non 1.

Con il valore 1, il lavoro di Check viene fatto eseguire alla CPU, con il valore 0
viene eseguito semmai dalla scheda di rete.

Di default Win7 ritiene di far fare tale lavoro alla CPU, per questo mette 1.

Andando a indagare su cosa questo settaggio rappresenti, ho ricavato qualche informazione, e mi spinge a ritenere che la ragione piu’ plausibile di questa scelta, operata da Microsoft risieda nella ricerca della massima compatibilita’.

Infatti questo settaggio probabilmente non funziona con tutte le schede di rete.

Infatti essa si basa sulla presenza del TOE (TCP Offload Engine) uno strato di intelligenza elaborativa presente direttamente sulla scheda di rete,
che gli consente di effettuare lei stessa delle operazioni di controllo sui dati in ricezione, in modo da sgravare di tale compito
la CPU del computer. Una capacita’ elaborativa certamente utile, ma che alza decisamente il costo dell’hardware della scheda di rete.

Un po’ come la scheda video, che se e’ dotata di acceleratore grafico, sgrava la CPU principale del compito di calcolare il rendering a video.

Una delle cose piu’ interessanti di questo TOE e’ che in sua assenza piu’ la scheda di rete era veloce, (10MB, 100MB, 1GB) , piu’ aumentavano i pacchetti in transito e la CPU doveva dedicarsi a questo compito distraendosi dagli altri compiti.

Se poi si tiene conto che nel protocollo ethernet ogni cpu che sta’ in una rete si deve controllare tutti i pacchetti che transitavano nella rete stessa,
al fine di rilevare eventuali pacchetti destinari a lei, si fa’ presto a capire come mai piu’ la rete andava veloce e piu’ il computer (privo di strato TOE) diventava lento … :slight_smile:

Direi che e’ proprio un ottimo suggerimento …

Andrea Peri
. . . . . . . . .
qwerty àèìòù