How to reduce Samba CPU usage on CentOS server?

We run a small CentOS server as a test environment with staff connecting to it via Samba shares (from a combination of Macs and PCs).

The smbd service is utilising 5-10% CPU per user - which seems excessive. Especially as the server is a new quad-core.

Mac users seem to be causing higher CPU loads (closer to 10%) and having more problems with connection speed.

Are there any setting or configuration changes that can be made to lower CPU (and hopefully speed up connection for the Macs)

Contents of /etc/samba/smb.conf

# Global Parameters
[global]
        workgroup = Foo
        netbios name = Bar
;       encrypt passwords = yes
        username map = /etc/samba/smbusers
        socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536

[websites]
        path = /var/www/sites
;       browseable = yes
        write list = foobar, barfoo
;       writeable = no
        valid users = foobar, barfoo

have you checked the wait time? what does iostat say? If your have a storage bottleneck, it sometimes appear as high CPU usage.

I have a busy fileserver with Samba for 30-50 simultaneous Mac clients (all with Gigabit Ethernet, working with huge Photoshop files) on a modest dual core CPU. The biggest factor was RAM (for cache). Each time the number or workload of users increased, I added some extra RAM, and the CPU usage, as reported from most tools decreased dramatically and responsivity stayed high.