[Samba] nmbd causing very high CPU utilization

Windsor Dave (AdW/MOE2.1) Dave.Windsor at us.bosch.com
Wed Jun 26 19:47:01 GMT 2002


The patch has proven very helpful!  It has reduced the
nmbd CPU usage by approximately one third or more.  We still 
haven't found the cause of our problem, but by temporarily
isolating our production network from our site backbone, we
have proven that the packets are coming from somewhere else
in our network.  We are currently looking closely at the
configurations of all our Cisco switches.

I'll provide an update when we discover the origin of the udp
packets, for anyone that is interested.

Thanks to you and the entire Samba Team for providing such a
great product and for taking such an interest in solving
problems such as this!

Dave Windsor
Team Leader, Test Systems Engineering
Robert Bosch Corporation
Anderson, SC, USA
Voice: (864) 260-8459
Fax:   (864) 260-8142
email: mailto:Dave.Windsor at us.bosch.com

-----Original Message-----
From: jra at samba.org [mailto:jra at samba.org]
Sent: Wednesday, June 26, 2002 8:10 PM
To: Windsor Dave (AdW/MOE2.1)
Cc: 'jra at samba.org'; 'samba at samba.org'
Subject: Re: [Samba] nmbd causing very high CPU utilization

On Wed, Jun 26, 2002 at 06:11:10PM -0400, Windsor Dave (AdW/MOE2.1) wrote:
> OK, attached is the output of the trace command on nmbd.  I'm not sure
> how helpful it will be, but there are quite a few lseeks and reads
> taking place.
> Summary of software versions:
> Samba 2.2.4
> HP-UX 10.20
> trace 1.6
> Thanks and Best Regards,

Ok, the lseek/read pairs are searching within a tdb for free
space on a system that doesn't support mmap correctly.

My guess is that you are being hit with a lot of unexpected
udp packets on port 137, you may want to look into what is
causing this on your network.

To make the tdb space allocation more efficient you might
want to increase the hash size in libsmb/unexpected.c by
using the following patch :

Hope this helps,


Index: libsmb/unexpected.c
RCS file: /data/cvs/samba/source/libsmb/unexpected.c,v
retrieving revision
diff -u -r1.4.8.6 unexpected.c
--- libsmb/unexpected.c 2002/01/23 03:15:04
+++ libsmb/unexpected.c 2002/06/27 00:09:47
@@ -47,7 +47,7 @@
        int len=0;

        if (!tdbd) {
-               tdbd = tdb_open_log(lock_path("unexpected.tdb"), 1,
+               tdbd = tdb_open_log(lock_path("unexpected.tdb"), 1024,
                               O_RDWR | O_CREAT, 0644);
                if (!tdbd) {

More information about the samba mailing list