Gå til innhold
Trenger du hjelp med internett og nettverk? Still spørsmål her ×

Snodig nettproblem, kun ved bruk av CopyFileEx


Anbefalte innlegg

Har et uttrolig snodig problem. Har et gigabit nett mellom 2 maskiner (XP Pro SP2 og Gentoo Linux med Samba 3.0.22) (+ 3 andre maskiner på 100Mbit). Bruker Intel 1000GT (win xp) og Marvel 88E8001 (linux). En test med netperf mellom de 2 maskinene viser at nettstacken er kapabel til load på ca 80MB/s.

 

Har ikke hatt noen problemer med hastigheten mellom de 2 da jeg ikke har drevet og kopiert ting til serveren, men pakket ut til den med winrar (se nedenfor hvorfor dette er forskjellig).

 

Får ultradårlig hastighet på kopiering når jeg bruker cmd.exe, explorer.exe eller noe annet program til å kopiere filer med som bruker CopyFileEx i Windows XP SP2. Programmer som ikke bruker CopyFileEx går derimot på høy hastighet, f.eks. utpakking med winrar.

Laget meg selv et testprogram selv med CopyFileEx et med CreateFile/Writefile og fikk følgende tall:

 

CopyFileEx: 2% netload

CreateFile/WriteFile: 30% netload.

 

30% (37,5MB/s) er ikke så ille da det er disk i/o som er bottlenecken.

 

Men hvorfor så dårlig ytelse på explorer.exe copy og andre som bruker CopyFileEx?

Andre med samme problem?

Endret av johneinar
Lenke til kommentar
Videoannonse
Annonse

Noen testresultater.

 

Laget meg et program som brukte Windows' CopyFileEx, min egen naive implementasjon med CreateFile på inn og ut fil med ReadFile/WriteFile par med forskjellige buffersizes, samt en implementasjon med en memory mapped files (både source og dest, kan prøve med bare source eller dest senere om jeg orker) med forskjellig antall subsections av mapping. Memory mapping er hvordan jeg har hørt at CopyFileEx skal være implementert i XP kernelen. Har ikke testet en kernel debug for å verifisere dette.

 

Noen tall

 

naive(8) - Used 10.56 seconds (33.14 MB/s)
naive(8) - Used 10.61 seconds (33.00 MB/s)
naive(16) - Used 10.50 seconds (33.34 MB/s)
naive(16) - Used 10.52 seconds (33.29 MB/s)
naive(32) - Used 10.47 seconds (33.44 MB/s)
naive(32) - Used 10.48 seconds (33.39 MB/s)
naive(64) - Used 10.50 seconds (33.34 MB/s)
naive(64) - Used 15.30 seconds (22.89 MB/s)
memmapped(1) - Used 11.31 seconds (30.94 MB/s)
memmapped(1) - Used 12.94 seconds (27.06 MB/s)
memmapped(2) - Used 12.81 seconds (27.32 MB/s)
memmapped(2) - Used 13.13 seconds (26.67 MB/s)
memmapped(4) - Used 12.83 seconds (27.29 MB/s)
memmapped(4) - Used 12.81 seconds (27.32 MB/s)
memmapped(8) - Used 12.97 seconds (26.99 MB/s)
memmapped(8) - Used 12.86 seconds (27.22 MB/s)
memmapped(16) - Used 13.70 seconds (25.55 MB/s)
memmapped(16) - Used 12.80 seconds (27.36 MB/s)
xpbuiltin(0) - Used 80.28 seconds (4.36 MB/s)
xpbuiltin(0) - Used 83.42 seconds (4.20 MB/s)

 

Alle tester gjort 2 ganger med samme innstilling. Filen var en 350MB .avi fil.

Tall i paranteser er antall subsections som ble brukt, aka for for memmapped(1) ble begge filene mapped in som et continous mapped segment,, memmapped(2) ble 50% av filene mapped av gangen. For naive impl. var det ved (8) 1/8 av filsize som ble lest/skrevet av gangen, ved (32) 1/32 del av filesize.

 

Som tallene viser så er faktisk min tidligere kalte naive utgave raskest på testdataene på den aktuelle filen. Hvorfor memapped er noe tregere kan vel kanskje forklares ved at windows faktisk ikke leser inn ting og skriver ut ting som faktiske 1 section med pagefaulter veldig ofte. Kan hende også selve pagetable oppsettet tar veldig lang tid. Men skjønner fortsatt ikke hvorfor Microsofts egen CopyFileEx er så treg.

 

Som sagt; ikke et kablingsproblem, ikke I/O begrensning, ikke server (Samba) eller klientbegrensning (SMB stacken i windows), ikke TCP/IP stack limit i Windows (se første post med netperf resultater).

 

Bare for å komme med noe som gjør resultatene enda vanskeligere å forså: samme windows XP, men mot annen maskin med samme software oppsett, men 100Mbit/s; da får jeg nesten max speed også med CopyFileEx.

 

Skulle ønske jeg kunne teste med linux til linux med gbit eller xp til xp med gbit og mot en annen linux med gbit enn den jeg har.

 

Skal se om jeg får rasket sammen noe hw i morgen for å teste.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...