[Samba] 1 byte writes
Thomas Limoncelli
limoncelli at web.de
Wed Mar 8 18:06:58 GMT 2006
After migrating a particular W2K file service to Samba 3.0.21c on SuSE
9.3 Pro (a DMS with winbindd against a W2K3 ADS), the W2K clients are
suffering performance issues (in a switched LAN).
Looking at the traffic with Ethereal (latest SVN), it looks like the
client writes the data in *1 byte* pieces likes this (c=client, s=server):
c->s NT Create AndX Request
c<-s NT Create AndX Response
c->s Trans2 Request, SET_FILE_INFO
c<-s Trans2 Response
c->s Trans2 Request, QUERY_FILE_INFO, Query File Basic Info (1004)
c<-s Trans2 Response
c->s Write AndX Request, 1 byte at offset 119 <-- sigh
c<-s Write AndX Response, 1 byte
c->s Trans2 Request, QUERY_FILE_INFO, Query File Standard Info (258)
c<-s Trans2 Response
c->s Write AndX Request, 1 byte at offset 155 <-- sigh again
c<-s Write AndX Response, 1 byte
c->s Trans2 Request, QUERY_FILE_INFO, Query File Standard Info (258)
c<-s Trans2 Response
c->s Write AndX Request, 1 byte at offset 191 <-- see above
c<-s Write AndX Response, 1 byte
...
c->s Write AndX Request, 1 byte at offset 6629781 <-- 100 secs later!!
c<-s Write AndX Response, 1 byte
c->s Trans2 Request, QUERY_FILE_INFO, Query File Standard Info (258)
c<-s Trans2 Response
c->s Write AndX Request, 4096 bytes at offset 0 <-- the file header?
c<-s Write AndX Response, 4096 bytes
c->s Write AndX Request, 2454 bytes at offset 6627328 <-- strange
c<-s Write AndX Response, 2454 bytes
c->s Flush Request
c<-s Flush Response
c->s Close Request
c<-s Close Response
resulting in incredibly poor write performance. Does this ring a bell
with anyone?
Searching the list archives, this issue seems to be only known with
particular poorly-written applications:
http://groups.google.com/group/mailing.unix.samba/browse_thread/thread/89c619c8ea1e48/256e1ebf227819cc
but we're running none of those mentioned there (but may have found yet
another ;-)).
Then, still, there haven't been any noticeable performance issues with
the same application against the original W2K file server, so /me ends
up as the one being pointed at. :-(
smb.conf global settings are the same as in an earlier thread
(http://lists.samba.org/archive/samba/2006-February/118057.html) plus
the following share-level settings:
[grp$]
path = /cifs/grp
valid users = +XXX\mygroup
read only = No
create mask = 0770
directory mask = 0770
nt acl support = Yes
acl group control = Yes
map acl inherit = Yes
Any ideas?
-TL
More information about the samba
mailing list