File copy speed differences... writing to SAMBA is faster than
reading from it??!
PayPC System Mail Subscriber
spammail at quanta.paypc.com
Tue Sep 22 11:27:45 GMT 1998
Here's an interesting thing I notice between NTSP3 and Linux 2.0.33+ w/samba
1.9.18p8 [TCP_NODELAY, read prediction on, SND and RCV buffers to 64k, though
I've tried 16k, 32K, 64k, max size 2k, 4k, 8k, 16k, no difference]
When I copy a file from any share to my NT's HD, I get perhaps 280KB/sec.
When I copy from NT HD to Samba share, I get almost 1MB/sec. Doesn't matter
where the file lives, whether or not it's in cache (on the Linux box), or
what.
The network cards in both are 3Com's PCI 10/100BaseTX cards (3c905), both
machines are AMD-K6-200 or better (the Linux box has the slower CPU, being
200Mhz, the NT box has a 250Mhz AMD-K6-233 overclocked at 83Mhz x 3 --
naturally of course, the Linux box seems to do everything faster despite the
"handicap"). Anyhow... it's very strange. Even the old Macintoshes on my
LAN outcopy NT (~700KB/sec thru netatalk). I've enclosed some packet sniffer
logs, where you can see the vast differences in the way the data is being
thrown around the wire.
Note, it's strange because it's clear there's something kooky going on with
the sequence # and ack# stuff, as well as the payload area itself. On the
fast direction (NT->UNIX), the proto analyser gives clean NetBIOS area
decodes. But on the SAMBA->NT one, it warns about an invalid type, and a
"probably continuation of prior transaction" message.
I suspect this is a clue as to why I observe this behaviour. Has anyone else
seen this behaviour? I can't be the first person to have noticed this
disparity in performance, however I see no mention of it in the FAQs or "bug
lists". I must say, that otherwise, samba is nothing but tip-top perfect in
its operation otherwise - I have no real complaints about its operation.
View this message with a fixed-spaced font for better clarity.
Relevant portions of smb.conf:
socket options = TCP_NODELAY (I've also tried IPTOS_THROUGHPUT, no
differences)
read prediction = True (does this actually help?)
time server = True
preserve case = yes
short preserve case = yes
delete veto files = yes
max xmit = 65535 (tried from 8k on up... doesn't make significant
differences)
read size = 8192 (tried from 2k to 16k, again, no differences)
mangle case = no
read raw = yes (these aren't actually obeyed anymore, are they?)
write raw = yes
dead time = 5
getwd cache = Yes
Note: the large quantities of ACK traffic in the UNIX->NT log as compared to
the NT->UNIX one. Also interesting is the Seq# changing in the UNIX->NT case
while the Ack# is the same [for the "payload" packets that are 1518 bytes],
while the opposite is true in the UNIX->NT case.
The 122 byte packets coming from the copy-target are the SMB command blocks.
(in case it doesn't make it, the µ is the mu symbol for micro).
Thanks,
Robert
--------
>From UNIX to NT (slow):
Destination Size Time-Stamp Protocol Plug-In Details
IP UNIX BOX 122 00s 014098µ IP TCP Seq#: 8062832 Ack#: 3354657519
IP NT4SP3 BOX 1518 00s 004303µ IP TCP Seq#: 3354657519 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001269µ IP TCP Seq#: 3354658979 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001220µ IP TCP Seq#: 3354660439 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001259µ IP TCP Seq#: 3354661899 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001481µ IP TCP Seq#: 3354663359 Ack#: 8062896
IP UNIX BOX 64 00s 000186µ IP TCP Seq#: 8062896 Ack#: 3354660439
IP UNIX BOX 64 00s 000133µ IP TCP Seq#: 8062896 Ack#: 3354663359
IP NT4SP3 BOX 1518 00s 000894µ IP TCP Seq#: 3354664819 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001217µ IP TCP Seq#: 3354666279 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001511µ IP TCP Seq#: 3354667739 Ack#: 8062896
IP UNIX BOX 64 00s 000199µ IP TCP Seq#: 8062896 Ack#: 3354664819
IP NT4SP3 BOX 1518 00s 000850µ IP TCP Seq#: 3354669199 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001255µ IP TCP Seq#: 3354670659 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001666µ IP TCP Seq#: 3354672119 Ack#: 8062896
IP UNIX BOX 64 00s 000186µ IP TCP Seq#: 8062896 Ack#: 3354664819
IP UNIX BOX 64 00s 000132µ IP TCP Seq#: 8062896 Ack#: 3354664819
IP UNIX BOX 64 00s 000131µ IP TCP Seq#: 8062896 Ack#: 3354664819
IP UNIX BOX 64 00s 000123µ IP TCP Seq#: 8062896 Ack#: 3354664819
IP NT4SP3 BOX 1518 00s 192684µ IP TCP Seq#: 3354664819 Ack#: 8062896
IP UNIX BOX 64 00s 000212µ IP TCP Seq#: 8062896 Ack#: 3354673579
IP NT4SP3 BOX 1518 00s 001046µ IP TCP Seq#: 3354673579 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001481µ IP TCP Seq#: 3354675039 Ack#: 8062896
IP UNIX BOX 64 00s 173042µ IP TCP Seq#: 8062896 Ack#: 3354675039
IP NT4SP3 BOX 1518 00s 001132µ IP TCP Seq#: 3354676499 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001486µ IP TCP Seq#: 3354677959 Ack#: 8062896
IP UNIX BOX 64 00s 000188µ IP TCP Seq#: 8062896 Ack#: 3354675039
IP UNIX BOX 64 00s 000131µ IP TCP Seq#: 8062896 Ack#: 3354675039
IP NT4SP3 BOX 1518 00s 191410µ IP TCP Seq#: 3354675039 Ack#: 8062896
IP UNIX BOX 64 00s 000733µ IP TCP Seq#: 8062896 Ack#: 3354679419
IP NT4SP3 BOX 1518 00s 000494µ IP TCP Seq#: 3354679419 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001251µ IP TCP Seq#: 3354680879 Ack#: 8062896
IP UNIX BOX 64 00s 000192µ IP TCP Seq#: 8062896 Ack#: 3354682339
IP NT4SP3 BOX 1518 00s 001179µ IP TCP Seq#: 3354682339 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001346µ IP TCP Seq#: 3354683799 Ack#: 8062896
IP UNIX BOX 64 00s 000187µ IP TCP Seq#: 8062896 Ack#: 3354685259
IP NT4SP3 BOX 1518 00s 001191µ IP TCP Seq#: 3354685259 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001356µ IP TCP Seq#: 3354686719 Ack#: 8062896
IP UNIX BOX 64 00s 000184µ IP TCP Seq#: 8062896 Ack#: 3354688179
IP NT4SP3 BOX 1518 00s 001191µ IP TCP Seq#: 3354688179 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001229µ IP TCP Seq#: 3354689639 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001372µ IP TCP Seq#: 3354691099 Ack#: 8062896
IP UNIX BOX 64 00s 000186µ IP TCP Seq#: 8062896 Ack#: 3354691099
IP NT4SP3 BOX 1518 00s 001078µ IP TCP Seq#: 3354692559 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001360µ IP TCP Seq#: 3354694019 Ack#: 8062896
IP UNIX BOX 64 00s 000189µ IP TCP Seq#: 8062896 Ack#: 3354694019
IP NT4SP3 BOX 1518 00s 001341µ IP TCP Seq#: 3354695479 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001098µ IP TCP Seq#: 3354696939 Ack#: 8062896
IP UNIX BOX 64 00s 000198µ IP TCP Seq#: 8062896 Ack#: 3354696939
IP NT4SP3 BOX 1518 00s 001049µ IP TCP Seq#: 3354698399 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001361µ IP TCP Seq#: 3354699859 Ack#: 8062896
IP UNIX BOX 64 00s 000194µ IP TCP Seq#: 8062896 Ack#: 3354699859
IP NT4SP3 BOX 1518 00s 001075µ IP TCP Seq#: 3354701319 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001365µ IP TCP Seq#: 3354702779 Ack#: 8062896
IP UNIX BOX 64 00s 000190µ IP TCP Seq#: 8062896 Ack#: 3354702779
IP NT4SP3 BOX 1518 00s 001001µ IP TCP Seq#: 3354704239 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001452µ IP TCP Seq#: 3354705699 Ack#: 8062896
IP UNIX BOX 64 00s 000193µ IP TCP Seq#: 8062896 Ack#: 3354705699
IP NT4SP3 BOX 1518 00s 001051µ IP TCP Seq#: 3354707159 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001220µ IP TCP Seq#: 3354708619 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001558µ IP TCP Seq#: 3354710079 Ack#: 8062896
IP UNIX BOX 64 00s 000188µ IP TCP Seq#: 8062896 Ack#: 3354708619
IP UNIX BOX 64 00s 000133µ IP TCP Seq#: 8062896 Ack#: 3354711539
IP NT4SP3 BOX 1518 00s 000867µ IP TCP Seq#: 3354711539 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001210µ IP TCP Seq#: 3354712999 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001792µ IP TCP Seq#: 3354714459 Ack#: 8062896
IP UNIX BOX 64 00s 000209µ IP TCP Seq#: 8062896 Ack#: 3354714459
IP NT4SP3 BOX 1518 00s 000851µ IP TCP Seq#: 3354715919 Ack#: 8062896
IP NT4SP3 BOX 1518 00s 001335µ IP TCP Seq#: 3354717379 Ack#: 8062896
IP UNIX BOX 64 00s 000183µ IP TCP Seq#: 8062896 Ack#: 3354717379
IP UNIX BOX 64 00s 170989µ IP TCP Seq#: 8062896 Ack#: 3354718839
IP NT4SP3 BOX 178 00s 000193µ IP TCP Seq#: 3354718839 Ack#: 8062896
Example payload packet:
Flags: 0x00
Status: 0x00
Packet Length:1518
Timestamp: 19:53:44.912916 09/22/98
Ethernet Header
Destination: 00:60:08:a0:d1:d0 [0-5]
Source: 00:60:08:a0:d1:c1 [6-11]
Protocol Type:0x0800 [12-13] IP
IP Header - Internet Protocol Datagram
Version: 4 [14 Mask 0xf0]
Header Length: 5 [14 Mask 0x0f]
Precedence: 0 [15 Mask 0xe0]
Type of Service: %0000 [15 Mask 0x1e]
Unused: %0 [15 Mask 0x01]
Total Length: 1500 [16-17]
Identifier: 2005 [18-19]
Fragmentation Flags: %000 [20 Mask 0xe0]
Fragment Offset: 0 [20-21 Mask 0x1fff]
Time To Live: 64 [22]
IP Type: 0x06 [23] TCP
Header Checksum: 0x89e5 [24-25]
Source IP Address: yy.yy.yy.yy [26-29]
Dest. IP Address: xx.xx.xx.xx [30-33]
No Internet Datagram Options
TCP - Transport Control Protocol
Source Port: 139 [34-35] NETBIOS Session Service
Destination Port: 1039 [36-37]
Sequence Number: 3355523554 [38-41]
Ack Number: 8064496 [42-45]
Offset: 5 [46 Mask 0xf0]
Reserved: %000000 [46 Mask 0x00]
Code: %010000 [47 Mask 0x3f]
Ack is valid
Window: 32736 [48-49]
Checksum: 0x523d [50-51]
Urgent Pointer: 0 [52-53]
No TCP Options
NetBIOS Session Service - Network Basic Input/Ouput System
Invalid Packet Type: 10 (Probably a continuation of previous transaction)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^
All payload packets from samba->NT say this in the protocol analyser
NetBIOS Data:
-----
>From NT to UNIX (fast)
Destination Size Time-Stamp Proto Plug-In Details
IP NT4SP3 BOX 64 00s 491536µ IP TCP Seq#: 1453961822 Ack#: 8984086
IP UNIX BOX 1518 00s 001148µ IP TCP Seq#: 8994306 Ack#: 1453961822
IP UNIX BOX 1518 00s 001686µ IP TCP Seq#: 8995766 Ack#: 1453961822
IP UNIX BOX 1518 00s 002074µ IP TCP Seq#: 8997226 Ack#: 1453961822
IP UNIX BOX 1518 00s 000226µ IP TCP Seq#: 8998686 Ack#: 1453961822
IP UNIX BOX 1518 00s 001247µ IP TCP Seq#: 9000146 Ack#: 1453961822
IP NT4SP3 BOX 64 00s 000194µ IP TCP Seq#: 1453961822 Ack#: 8995766
IP UNIX BOX 1518 00s 000941µ IP TCP Seq#: 9001606 Ack#: 1453961822
IP UNIX BOX 1518 00s 001278µ IP TCP Seq#: 9003066 Ack#: 1453961822
IP UNIX BOX 1518 00s 001212µ IP TCP Seq#: 9004526 Ack#: 1453961822
IP UNIX BOX 1518 00s 001229µ IP TCP Seq#: 9005986 Ack#: 1453961822
IP UNIX BOX 1518 00s 001412µ IP TCP Seq#: 9007446 Ack#: 1453961822
IP NT4SP3 BOX 64 00s 000209µ IP TCP Seq#: 1453961822 Ack#: 9005986
IP UNIX BOX 1518 00s 001067µ IP TCP Seq#: 9008906 Ack#: 1453961822
IP UNIX BOX 1518 00s 001394µ IP TCP Seq#: 9010366 Ack#: 1453961822
IP UNIX BOX 1518 00s 001080µ IP TCP Seq#: 9011826 Ack#: 1453961822
IP UNIX BOX 1518 00s 001258µ IP TCP Seq#: 9013286 Ack#: 1453961822
IP UNIX BOX 1518 00s 001247µ IP TCP Seq#: 9014746 Ack#: 1453961822
IP UNIX BOX 1518 00s 001465µ IP TCP Seq#: 9016206 Ack#: 1453961822
IP UNIX BOX 1518 00s 001148µ IP TCP Seq#: 9017666 Ack#: 1453961822
IP NT4SP3 BOX 64 00s 000199µ IP TCP Seq#: 1453961822 Ack#: 9017666
IP UNIX BOX 1518 00s 001044µ IP TCP Seq#: 9019126 Ack#: 1453961822
IP UNIX BOX 1518 00s 001225µ IP TCP Seq#: 9020586 Ack#: 1453961822
IP UNIX BOX 1518 00s 001226µ IP TCP Seq#: 9022046 Ack#: 1453961822
IP UNIX BOX 1518 00s 001306µ IP TCP Seq#: 9023506 Ack#: 1453961822
IP UNIX BOX 1518 00s 001207µ IP TCP Seq#: 9024966 Ack#: 1453961822
IP UNIX BOX 1518 00s 001196µ IP TCP Seq#: 9026426 Ack#: 1453961822
IP UNIX BOX 1518 00s 001249µ IP TCP Seq#: 9027886 Ack#: 1453961822
IP UNIX BOX 1518 00s 001229µ IP TCP Seq#: 9029346 Ack#: 1453961822
IP UNIX BOX 1518 00s 001259µ IP TCP Seq#: 9030806 Ack#: 1453961822
IP UNIX BOX 1518 00s 001419µ IP TCP Seq#: 9032266 Ack#: 1453961822
IP NT4SP3 BOX 64 00s 000195µ IP TCP Seq#: 1453961822 Ack#: 9029346
IP UNIX BOX 1518 00s 001056µ IP TCP Seq#: 9033726 Ack#: 1453961822
IP UNIX BOX 178 00s 000177µ IP TCP Seq#: 9035186 Ack#: 1453961822
IP NT4SP3 BOX 99 00s 004000µ IP TCP Seq#: 1453961822 Ack#: 9035306
IP UNIX BOX 162 00s 000186µ IP TCP Seq#: 9035306 Ack#: 1453961863
IP NT4SP3 BOX 99 00s 000410µ IP TCP Seq#: 1453961863 Ack#: 9035410
Example payload packet:
Flags: 0x00
Status: 0x00
Packet Length:1518
Timestamp: 20:07:51.745372 09/22/98
Ethernet Header
Destination: 00:60:08:a0:d1:c1 [0-5]
Source: 00:60:08:a0:d1:d0 [6-11]
Protocol Type:0x0800 [12-13] IP
IP Header - Internet Protocol Datagram
Version: 4 [14 Mask 0xf0]
Header Length: 5 [14 Mask 0x0f]
Precedence: 0 [15 Mask 0xe0]
Type of Service: %0000 [15 Mask 0x1e]
Unused: %0 [15 Mask 0x01]
Total Length: 1500 [16-17]
Identifier: 57211 [18-19]
Fragmentation Flags: %010 [20 Mask 0xe0] Do Not Fragment
Fragment Offset: 0 [20-21 Mask 0x1fff]
Time To Live: 128 [22]
IP Type: 0x06 [23] TCP
Header Checksum: 0x323e [24-25]
Source IP Address: xx.xx.xx.xx [26-29]
Dest. IP Address: yy.yy.yy.yy [30-33]
No Internet Datagram Options
TCP - Transport Control Protocol
Source Port: 1041 [34-35]
Destination Port: 139 [36-37] NETBIOS Session Service
Sequence Number: 9240482 [38-41]
Ack Number: 1453962150 [42-45]
Offset: 5 [46 Mask 0xf0]
Reserved: %000000 [46 Mask 0x00]
Code: %010000 [47 Mask 0x3f]
Ack is valid
Window: 8060 [48-49]
Checksum: 0x9827 [50-51]
Urgent Pointer: 0 [52-53]
No TCP Options
NetBIOS Session Service - Network Basic Input/Ouput System
Packet Type: 0x00 [54] Session Message
Flags: 0x00 [55] Length Extension Off
Length: 0
User Data:
note, no "continued transaction" message - EVER in any payload packet from
NT->SAMBA.
More information about the samba
mailing list