1

We have a central Samba fileserver running on Debian 6, the clients are almost all Windows 7. The server has 7 2TB SATA drives in a RAID 5. The clients are connected to the server with 100 Mbit.

What we noticed was that if one user is performing a large operation, copying gigabytes of data onto the server, that other users were experiencing timeouts and intermittent errors when accessing the share. The share can become almost unusable for some users in such cases.

I checked the network usage on the server with nload and it shows long stretches with 93 Mbit of incoming traffic, which point towards the network being the bottleneck in this case.

The Samba configuration is pretty much the Debian default, except for the actual share definitions.

Is there any way to prevent one Samba user from causing such an impact on the other users? If multiple users are accessing the server, the available bandwith should be divided reasonably fairly, and one user should not be able to hog so much that other users are severely affected.

3
  • 1
    RAID 5 across 7 2TB SATA disks is a really really really bad idea. There is an extremely high chance of a second disk failure during rebuilding.
    – Grant
    Aug 18, 2014 at 12:16
  • 1
    Second that. With the current error rate from most SATA drivers, it's almost guaranteed you'll get a bit-error and the whole rebuild will fail.
    – gtirloni
    Aug 18, 2014 at 12:47
  • Throw a gigabit switch in there and see if it improves?
    – Keith
    Aug 18, 2014 at 21:00

1 Answer 1

1

I doubt Samba can do this. Dividing available resources like CPU, IOPS, Bandwidth etc. is not as easy as you might think. You would atleast need support from the OS for that. For example only the filesystem can really schedule IO requests in a nice and "fair" way (with fair being a subjective term).

I think realistically your only option is to rate limit CIFS traffic for each client via iptables.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .