Very bad performance when copying large files from windows to samba-share

Lars Heineken Lars.Heineken at gmx.de
Tue Jul 9 05:07:02 GMT 2002


I've put up the files on Anonymous-FTP on ftp://heineken.dyndns.ws

The files are Snipplets from the beginning of the transaction, covering the timeout, and ending during normal copying.

verybadperformance1.txt is a brief text-output from etherreal (1.4MB) Frame 0-10018
verybadperformance2.txt is a detailed text-output from etherreal (5.9MB) Frame 0-3012
verybadperformance3.txt is a detailed text-output from etherreal (22.9MB) Frame 0-1248

The last transaction before the timeout is a write Request to the last byte of the target-file, at about 700MB. 
This is a typical move of windows-applications to check if enough space is available for the target.
During the timeout my linux-box writes a tempfile to disk at size of the source-file. This is due to the write request from the client. If this lasts too long, the whole connection times out.

Samba has a swith to prevent these temp-file-creation it's called "strict allocate" and I set it to "OFF" just to be shure.

I'm really out of ideas, I don't know how to check sambas behaviour when it gets the write-request !

On Tue, 9 Jul 2002 13:29:19 +0200
"Ulf Bertilsson" <ulf.bertilsson at adcomdata.no> wrote:

> Please do lookup and hint me to url, registry or related info.
> I still have a dream that I mange to fix this :)
>  
> Funny tho, one way it's all fine, just seems like "explorer" sends
> anoying dos packets.
>  
> --
> Ulf
> 
> -----Original Message-----
> From: Dan Barrett [mailto:dan.barrett at storigen.com]
> Sent: Monday, June 24, 2002 9:31 PM
> To: Esh, Andrew; Lars Heineken
> Cc: Ulf Bertilsson
> Subject: RE: Very bad performance when copying large files from windows
> to samba-share
> 
> 
> I've seen a problem similar to Ulf's.  Reading data from a samba share
> to a Win2k machine over a GigE network was slow.  Turned out that the
> app was issuing 64k reads, which with the SMB  proto overhead would end
> up as two SMB requests, 1 large and 1 very small ~65 byte transfer.  So
> every other SMB request was for only 65 bytes.
>  
> This caused two problems. 
>  1. Too much SMB proto overhead since 50% of the SMB requests were only
> transferring 65 bytes. We took a hint from Microsoft and changed the
> app's readsize to 64420? bytes.  Same as you seen when copying files
> with Windows Explorer.
>  
>  2. Delayed TCP Acking of the 65 byte packets since the TCP window
> wasn't full.  This delayed sambaserver from sending the 64k.  If
> anything similar is happening to Ulf I can lookup what we did to get
> around this.
>  
> Daniel  Barrett
> Storigen Systems
> 
> -----Original Message-----
> From: Esh, Andrew [mailto:AEsh at tricord.com]
> Sent: Monday, June 24, 2002 2:59 PM
> To: 'Lars Heineken'; samba-technical at lists.samba.org
> Cc: ulf.bertilsson at adcomdata.no
> Subject: RE: Very bad performance when copying large files from windows
> to samba-share
> 
> 
> 
> This doesn't appear to me to be the same problem Ulf posted. When
> looking at those captures, I saw no leading pauses in the data flow.
> There was the usual directory information gathering, and then the first
> write request at offset zero, right after that. The performance appeared
> to be affected by the one or two second pauses near the end of nearly
> every 64KB transfer chunk.
> 
> -----Original Message----- 
> From: Lars Heineken [ mailto:Lars.Heineken at gmx.de] 
> Sent: Monday, June 24, 2002 1:19 PM 
> To: samba-technical at lists.samba.org 
> Cc: ulf.bertilsson at adcomdata.no 
> Subject: Re: Very bad performance when copying large files from windows 
> to samba-share 
> 
> 
> This the summary: 
> 
> Most interresting is the gap between the beginning of the transaction
> and the actual writing (writing begins at about 45sec)
> 
> Any traffic above this point is just minor. After the 45sec the "real"
> transfer begins. 
> 
> As I found no way to search for checksum errors, I didn't found any.. 
> 
> The graph looks like this: 
> 
>             -- 
>           -- 
>         -- 
> -------| 
>        |      
> .......45s 
> 
> Or that in Bandwith: 
> 
>        ###### 
>        ------ 
>        ###### 
>        ------ 
> -------| 
>        | 
> .......45s 
> 
> I can attach screenshots if interested. 
> 
>     No. Time        Source                Destination           Protocol
> Info 
>       1 0.000000    lars-heineken.lan     192.168.10.255        CUPS
> ipp://192.168.10.1:631/printers/HPLaserjet6L (idle)
> 
>       2 10.996660   www.heineken.lan      192.168.10.255        CUPS
> ipp://heineken.lan:631/printers/HPLaserJet6L (idle)
> 
>       3 11.999360   lars-heineken.lan     arne-heineken.lan     TCP
> hostname > boomerang [PSH, ACK] Seq=1926846500 Ack=1568123 Win=6432
> Len=28
> 
>       4 12.009310   lars-heineken.lan     arne-heineken.lan     TCP
> hostname > boomerang [PSH, ACK] Seq=1926846528 Ack=1568123 Win=6432
> Len=36
> 
>       5 12.009479   arne-heineken.lan     lars-heineken.lan     TCP
> boomerang > hostname [ACK] Seq=1568123 Ack=1926846564 Win=7704 Len=0
> 
>       6 13.987759   arne-heineken.lan     lars-heineken.lan     SMB
> Tree Connect AndX Request, Path: \\LARS-HEINEKEN\IPC$
> 
>       7 13.989816   lars-heineken.lan     arne-heineken.lan     SMB
> Tree Connect AndX Response 
>       8 13.990034   arne-heineken.lan     lars-heineken.lan     LANMAN
> NetWkstaGetInfo Request 
>       9 13.990220   lars-heineken.lan     arne-heineken.lan     LANMAN
> NetWkstaGetInfo Response 
>      10 13.990568   arne-heineken.lan     lars-heineken.lan     LANMAN
> NetServerGetInfo Request 
>      11 13.990865   lars-heineken.lan     arne-heineken.lan     LANMAN
> NetServerGetInfo Response 
>      12 13.991240   arne-heineken.lan     lars-heineken.lan     LANMAN
> NetWkstaGetInfo Request 
>      13 13.991362   lars-heineken.lan     arne-heineken.lan     LANMAN
> NetWkstaGetInfo Response 
>      14 13.992297   arne-heineken.lan     lars-heineken.lan     LANMAN
> NetShareEnum Request 
>      15 13.992524   lars-heineken.lan     arne-heineken.lan     LANMAN
> NetShareEnum Response 
>      16 13.993013   arne-heineken.lan     lars-heineken.lan     LANMAN
> NetWkstaGetInfo Request 
>      17 13.993125   lars-heineken.lan     arne-heineken.lan     LANMAN
> NetWkstaGetInfo Response 
>      18 14.045036   arne-heineken.lan     lars-heineken.lan     SMB
> Open AndX Request, Path: \The Man Who Sued God
> (2001).XPD.ShareReactor.avi
> 
>      19 14.046435   lars-heineken.lan     arne-heineken.lan     SMB
> Open AndX Response, FID: 0x1ba0 
>      20 14.046757   arne-heineken.lan     lars-heineken.lan     SMB
> Write Request, FID: 0x1ba0, 0 bytes at offset 719970304, 0 bytes at
> offset 719970304
> 
>      21 14.079254   lars-heineken.lan     arne-heineken.lan     TCP
> netbios-ssn > pe-mike [ACK] Seq=1974177356 Ack=1615097 Win=5840 Len=0
> 
>      22 15.895193   www.heineken.lan      192.168.10.255        RIPv1
> Response 
>      23 16.048326   arne-heineken.lan     lars-heineken.lan     SMB
> Transaction2 Request FIND_FIRST2, Pattern: \* 
>      24 16.048429   lars-heineken.lan     arne-heineken.lan     TCP
> netbios-ssn > pe-mike [ACK] Seq=1974177356 Ack=1615182 Win=5840 Len=0
> 
>      25 16.173695   arne-heineken.lan     lars-heineken.lan     SMB
> Tree Disconnect Request 
>      26 16.173765   lars-heineken.lan     arne-heineken.lan     TCP
> netbios-ssn > pe-mike [ACK] Seq=1974177356 Ack=1615221 Win=5840 Len=0
> 
>      27 26.109439   lars-heineken.lan     192.168.10.255        BROWSER
> Host Announcement LARS-HEINEKEN, Workstation, Server, Print Queue
> Server, Xenix Server, NT Workstation, NT Server
> 
>      28 27.989388   lars-heineken.lan     192.168.10.255        CUPS
> ipp://192.168.10.1:631/printers/HPDJ520 (idle) 
>      29 27.989448   lars-heineken.lan     192.168.10.255        CUPS
> ipp://192.168.10.1:631/printers/lp (idle) 
>      30 30.989599   lars-heineken.lan     192.168.10.255        CUPS
> ipp://192.168.10.1:631/printers/HPLaserjet6L (idle)
> 
>      31 41.977621   www.heineken.lan      192.168.10.255        CUPS
> ipp://heineken.lan:631/printers/HPLaserJet6L (idle)
> 
>      32 45.886424   www.heineken.lan      192.168.10.255        RIPv1
> Response 
>      33 57.336317   lars-heineken.lan     arne-heineken.lan     SMB
> Write Response, 0 bytes 
>      34 57.345345   arne-heineken.lan     lars-heineken.lan     SMB
> Write Request, FID: 0x1ba0, 65487 bytes at offset 0, 65487 bytes at
> offset 0
> 
>      35 57.345429   lars-heineken.lan     arne-heineken.lan     TCP
> netbios-ssn > pe-mike [ACK] Seq=1974177397 Ack=1616681 Win=8760 Len=0
> 
>      36 57.345464   arne-heineken.lan     lars-heineken.lan     NBSS
> NBSS Continuation Message 
>      37 57.345485   lars-heineken.lan     arne-heineken.lan     TCP
> netbios-ssn > pe-mike [ACK] Seq=1974177397 Ack=1618141 Win=7300 Len=0
> 
>      38 57.345588   arne-heineken.lan     lars-heineken.lan     NBSS
> NBSS Continuation Message 
>      39 57.345611  
> 
> 
> On Mon, 24 Jun 2002 10:03:59 +0200 
> "Ulf Bertilsson" <ulf.bertilsson at adcomdata.no> wrote: 
> 
> > > I did the ethereal-capturing. What looks very strange on 
> > > first sight: About 6 of 10 packest are described as: NBSS 
> > > Continuation Message. 
> > > Sometimes there are 6 of them one after another. 
> > > Is this normal ? 
> > 
> > Lars, 
> > 
> > Do you see any checksum errors in NBSS packet ? 
> > 
> > If you use the TCP Stream Analysis in Ethereal, 
> > how to the graphs look ? 
> > 
> > -- 
> > Ulf 
> > 
> 
> 




More information about the samba-technical mailing list