Hello,

I have a machine that serves files to a rather needy audio application.
The audio workstation uses a buffering scheme to buffer about 300k of
linear audio.

This means that at 44,100 samples/sec and 16bit stereo audio, 300k is
about 1 sec give or take of audio.

The problem I am having is that I am getting buffer underruns from the
audio application. So I am assuming that I am getting unavailability for
about one second via samba.

When I use a test workstation and set the buffers to 30k, I get more
buffer underruns.

The underruns sometimes correspond to logged activity from C programs
and expect scripts that I have written that support other services on
the server. These processes are spawned (forked) from a mod_perl
application, and are "re-parented" from httpd to init.

It seemed that smbd is being overrun by these other processes, so I
reniced smbd to -5. This sorta worked, but I still had some buffer
underruns.

I already have two NICs in the server (the audio workstations are on a
private network) so I created an instance of smbd and nmbd just for the
second NIC using the interfaces keyword and upgraded to samba 2.2.9

I now get less underruns, but they still occur. Today I specifically
nice these forked processes to +5, but I still had a few underruns.

My question is: how can I ensure that smbd is going to be able to serve
files in a consistent fashion?

Has anyone else had any issues with samba like this? Is it possible that
this is a disk access issue? How would I diagnose this?

This is on 2.4.32 SMP on a HP server with Dual 3.4 Xeons, 4G RAM, an LSI
Logic U320 RAID card, and U320 10k HDs.

Torleiv Ringer