Here’s what you can expect from read performance using the Linux CIFS kernel module prior to kernel 3.2.
See the ‘rsync’ graph in the lower right.
Relevant context:
- Each of the colors in the rsync graph represent remote WAN sites. Each data point represents a transfer of ~200MB.
- No amount of dickering with the
cifs.ko
kernel module options improved anything - All sites have at least 1.5Mbps links
- An HTTP get to each remote site ran at ~900kbps
- Using a Windows 2008 client to each remote site’s CIFS share gave ~940kbps
- Performance did not improve when using
cp
in place ofrsync
, nor did it improve with tweaks to the rsync options. - The client of the CIFS shares was 96% CPU idle. A textbook case for illustrating to novices the reduced value of looking at load averages (see graph) to indicate how hard a host is working. The CPU graph was removed as it was irrelevant.
Thankfully, this is a largely solved issue and we’ll see it in future distributions. Here is the thread from the linux-cifs list.