CIFS read performance on Linux < 3.2

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.

Abysmal CIFS read performance

Relevant context:

  1. Each of the colors in the rsync graph represent remote WAN sites. Each data point represents a transfer of ~200MB.
  2. No amount of dickering with the cifs.ko kernel module options improved anything
  3. All sites have at least 1.5Mbps links
  4. An HTTP get to each remote site ran at ~900kbps
  5. Using a Windows 2008 client to each remote site’s CIFS share gave ~940kbps
  6. Performance did not improve when using cp in place of rsync, nor did it improve with tweaks to the rsync options.
  7. 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.

Another case for in-place file editing in CM tools

Our UNIX/Linux directory services (nss) data was migrated from NIS in LDAP in 2009. Those who never administered a NIS domain may not even know what a netgroup[1] is, but we continue to make significant use of netgroups (stored in LDAP) to define groups of users and hosts for various needs. They’ve worked great for decades and serve a good purpose. Continue reading

Solarized and Modern PuTTY Defaults

I pushed this today: A Windows registry (.reg) file for setting the “Default Settings” PuTTY profile to Solarized Dark PuTTY coloring and most modern sane PuTTY default settings that most would want. Continue reading


Stolen directly from one of Theo Schlossnagle’s presentation slides:

Discipline is important in any job.

Discipline is “controlled behavior resulting from training, study, and practice”

In my experience, discipline is the most frequently missing ingredient in the field of web operations.

I believe this to be caused by a lack of focus, laziness, that it is a job instead of an art.

As in any trade:

To be truly excellent, one must treat it as a craft
One must become a craftsman
Through experience learn discipline
And through practice achieve excellence

The full presentation, should you be interested: Scalable Internet Architectures on YouTube

Also awesome: Career Development presentation by Theo.

Safer yum

We got sick of yum hanging on corrupt RPM databases.

Though @scoot suggests, instead, running a rebuild-if-needed cron job on all hosts instead of wrapping the yum command:

0 * * * * /usr/lib/rpm/rpmdb_verify /var/lib/rpm/[A-Z]* > /dev/null 2>&1 || rpm --rebuilddb

Pick your poison.