[linux-cifs-client] CIFS slow on gigabit, doesn't support sockopt=TCP_NODELAY ?

Timothy Normand Miller theosib at gmail.com
Mon Aug 24 12:36:37 MDT 2009


On Mon, Aug 24, 2009 at 9:50 AM, Jeff Layton<jlayton at redhat.com> wrote:
> On Sun, 23 Aug 2009 20:21:10 -0400
> Timothy Normand Miller <theosib at gmail.com> wrote:
>
>> Hi, everyone.
>>
>> I've noticed that the cifs client for Linux is slow over gigabit
>> ethernet.  It seems to max out at about 10 megs/sec, while the drives
>> can go a lot faster.  Also, if I mount the same network share from a
>> Mac, it's a lot faster.  When _sharing_ via samba, one can set the
>> TCP_NODELAY option (among others), which fixes the problem.  But with
>> the cifs client, I find that there appears to be no way to set the
>> option.  When mounting manually, you can use "-o sockopt=TCP_NODELAY",
>> and you can also put that into /etc/fstab.  Either way, the option
>> appears to be ignored.
>>
>
> Yeah. The sockopt= option is completely ignored. I proposed a patch
> to remove it not too long ago...
>
> I'm unclear...so you're saying here that turning on TCP_NODELAY on the
> server it helps throughput when using the Linux CIFS client?

No.  I think I'll give you excess detail just to make sure that I
don't leave out something important.  :)

I have a Linux server, an Apple AEBS with disks hanging off of it, and
various clients (some Macs).  On the Linux server, I can configure the
SMB server to enable those options so that when a client accesses the
server, it's fast.  The AEBS is also a server, but I cannot configure
it with those options.  I can get a Mac to get fast access to the AEBS
by configuring those TCP options on the client side.

The problem pertains to having the Linux box access the disks on the
AEBS.  In that case, I can't configure the TCP options on either the
client (the Linux box in this case) or the server (the AEBS), so
transfers are slow.  This is important, because a large part of my
large file copies are between the Linux box and the AEBS.

On the Linux server, SMB configuration has no impact on CIFS performance.

>
> It seems to be that there are probably bottlenecks you'll hit sooner
> before Nagle's algorithm becomes an issue (lack of parallelism in
> writes for one thing), but it may be worth experimenting with that flag
> if you've seen a measurable throughput increase.

Yeah.  I've noticed that multiple independent writers are serialized.
I can't tell if reading and writing interfere.

Thanks!


-- 
Timothy Normand Miller
http://www.cse.ohio-state.edu/~millerti
Open Graphics Project


More information about the linux-cifs-client mailing list