Böringer, Heiko
2004-Jul-29 18:18 UTC
[Samba] Samba 3.0.x and high processor utilication caused by /etc/passwd access
Hello together, since upgrading on samba 3.0.x (issue happens with all 3.0. release) the cpu-load on my samba PDC ist constantly near 100%. The cpu power ist consumed by all running smb-processes. Systrace shows me that the smb processes tried to access to /etc/passwd on a permanent basis. My question is: Why tries samba to access etc/passwd so often and produces this high cpu-load? Regards, Heiko B?ringer Rights for smbpasswd are set as following ################################################################ -rw-r--r-- 1 root root 5540 Jul 27 15:15 passwd Systemconfiguration ################################################################ - Debian 3.0 (Woddy) - Samba with an the samba3.0.5.deb from the unstable tree (but happends with all other versions too) - Configured als PDC with SMBPASSWD Authentification (no windbind, kerberos, ldap..) TOP shows the following ################################################################ PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 19094 nobody 18 0 3872 3872 3440 R 8.7 0.7 43:22 smbd 5213 nobody 18 0 3784 3784 3400 R 8.7 0.7 29:43 smbd 9345 nobody 17 0 4100 4100 3628 R 8.7 0.7 29:24 smbd 10237 nobody 19 0 3772 3772 3400 R 8.7 0.7 29:06 smbd 17121 nobody 17 0 4140 4140 3632 R 8.7 0.8 28:02 smbd 20776 nobody 18 0 3668 3668 3324 R 8.7 0.7 27:48 smbd 17915 nobody 18 0 3768 3768 3388 R 8.7 0.7 46:35 smbd 18441 nobody 17 0 4128 4128 3640 R 8.5 0.7 45:16 smbd 25605 nobody 18 0 3784 3784 3400 R 8.5 0.7 6:38 smbd 1065 root 16 0 5504 5504 3928 R 7.1 1.0 0:59 smbd 28475 root 9 0 4280 4280 3700 S 0.3 0.8 0:02 smbd Systrace on one of the smbd processes shows the following: ################################################################ open("/etc/passwd", O_RDONLY) = 26 fcntl64(26, F_GETFD) = 0 fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 _llseek(26, 0, [0], SEEK_CUR) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 _llseek(26, 5540, [5540], SEEK_SET) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 munmap(0x40510000, 5540) = 0 close(26) = 0 open("/etc/passwd", O_RDONLY) = 26 fcntl64(26, F_GETFD) = 0 fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 _llseek(26, 0, [0], SEEK_CUR) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 _llseek(26, 5540, [5540], SEEK_SET) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 munmap(0x40510000, 5540) = 0 close(26) = 0 open("/etc/passwd", O_RDONLY) = 26 fcntl64(26, F_GETFD) = 0 fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 _llseek(26, 0, [0], SEEK_CUR) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 _llseek(26, 5540, [5540], SEEK_SET) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 munmap(0x40510000, 5540) = 0 close(26) = 0 socket(PF_UNIX, SOCK_STREAM, 0) = 26 connect(26, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ECONNREFUSED (Connection refused) close(26) = 0 open("/etc/passwd", O_RDONLY) = 26 fcntl64(26, F_GETFD) = 0 fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 _llseek(26, 0, [0], SEEK_CUR) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 _llseek(26, 5540, [5540], SEEK_SET) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 munmap(0x40510000, 5540) = 0 close(26) = 0 open("/etc/passwd", O_RDONLY) = 26 fcntl64(26, F_GETFD) = 0 fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 _llseek(26, 0, [0], SEEK_CUR) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 _llseek(26, 5540, [5540], SEEK_SET) = 0 fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 munmap(0x40510000, 5540) = 0 close(26) = 0 And here?s the smb.conf ################################################################## [global] unix charset = ISO8859-1 display charset = ISO8859-1 workgroup = RVMO.DE server string = %h obey pam restrictions = Yes # unix password sync = false # encrypt passwords = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . #For verbose debug: 5 log level = 3 syslog = 3 # End logging section log file = /var/log/samba/log.%m log file = /var/log/samba/log.%m max log size = 1000 logon script = netlogon.cmd logon path logon drive = L: logon home domain logons = Yes os level = 40 preferred master = Yes domain master = Yes dns proxy = No ldap ssl = no panic action = /usr/share/samba/panic-action %d idmap uid = 100-20000 idmap gid = 100-20000 admin users = @smb-o-admin-it hosts allow = 127.0.0.1, 192.168.1.0/255.255.0.0 printing = cups printer admin = @smb-o-basisarbeitsplatz printcap name = /etc/printcap.cups # print command = lpr-cups -P %p -o raw %s -r load printers = Yes use client driver = No the rest are share definitions.... ________________________________________ http://www.epost.de - das Kommunikationsportal der Deutschen Post
Jeremy Allison
2004-Jul-29 18:22 UTC
[Samba] Samba 3.0.x and high processor utilication caused by /etc/passwd access
On Thu, Jul 29, 2004 at 08:18:22PM +0200, B?ringer, Heiko wrote:> Hello together, > > since upgrading on samba 3.0.x (issue happens with all 3.0. release) the > cpu-load on my samba PDC ist constantly near 100%. The cpu power ist > consumed by all running smb-processes. Systrace shows me that the smb > processes tried to access to /etc/passwd on a permanent basis. My question > is: Why tries samba to access etc/passwd so often and produces this high > cpu-load? > > Regards, > Heiko B?ringer > > Rights for smbpasswd are set as following > ################################################################ > -rw-r--r-- 1 root root 5540 Jul 27 15:15 passwd > > Systemconfiguration > ################################################################ > - Debian 3.0 (Woddy) > - Samba with an the samba3.0.5.deb from the unstable tree (but happends > with > all other versions too) > - Configured als PDC with SMBPASSWD Authentification (no windbind, kerberos, > ldap..) > > TOP shows the following > ################################################################ > PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND > 19094 nobody 18 0 3872 3872 3440 R 8.7 0.7 43:22 smbd > 5213 nobody 18 0 3784 3784 3400 R 8.7 0.7 29:43 smbd > 9345 nobody 17 0 4100 4100 3628 R 8.7 0.7 29:24 smbd > 10237 nobody 19 0 3772 3772 3400 R 8.7 0.7 29:06 smbd > 17121 nobody 17 0 4140 4140 3632 R 8.7 0.8 28:02 smbd > 20776 nobody 18 0 3668 3668 3324 R 8.7 0.7 27:48 smbd > 17915 nobody 18 0 3768 3768 3388 R 8.7 0.7 46:35 smbd > 18441 nobody 17 0 4128 4128 3640 R 8.5 0.7 45:16 smbd > 25605 nobody 18 0 3784 3784 3400 R 8.5 0.7 6:38 smbd > 1065 root 16 0 5504 5504 3928 R 7.1 1.0 0:59 smbd > 28475 root 9 0 4280 4280 3700 S 0.3 0.8 0:02 smbd > > > Systrace on one of the smbd processes shows the following: > ################################################################ > open("/etc/passwd", O_RDONLY) = 26 > fcntl64(26, F_GETFD) = 0 > fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 > _llseek(26, 0, [0], SEEK_CUR) = 0 > fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 > mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 > _llseek(26, 5540, [5540], SEEK_SET) = 0 > fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 > munmap(0x40510000, 5540) = 0 > close(26) = 0 > open("/etc/passwd", O_RDONLY) = 26 > fcntl64(26, F_GETFD) = 0 > fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 > _llseek(26, 0, [0], SEEK_CUR) = 0 > fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 > mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 > _llseek(26, 5540, [5540], SEEK_SET) = 0 > fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 > munmap(0x40510000, 5540) = 0 > close(26) = 0 > open("/etc/passwd", O_RDONLY) = 26 > fcntl64(26, F_GETFD) = 0 > fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 > _llseek(26, 0, [0], SEEK_CUR) = 0 > fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 > mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 > _llseek(26, 5540, [5540], SEEK_SET) = 0 > fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 > munmap(0x40510000, 5540) = 0 > close(26) = 0 > socket(PF_UNIX, SOCK_STREAM, 0) = 26 > connect(26, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 > ECONNREFUSED (Connection refused) > close(26) = 0Looks like a nsswitch bug whilst talking to nscd. Turn off nscd from nsswitch.conf and see if the problem still occurs. Jeremy.
Heiko Boeringer
2004-Jul-29 23:04 UTC
[Samba] Samba 3.0.x and high processor utilication caused by /etc/passwd access
Jeremy, seems not to help. I have disabled nscd with /etc/init.d/nscd stop but the situation keeps unchanged. A few minutes after stopping and starting samba I have the same situation. Here is may nsswitch.conf. What should I change in it? Do you have any other idea? regads, Heiko /etc/nsswitch.conf ########################################################################## passwd: compat group: compat shadow: compat hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis Jeremy Allison wrote:>On Thu, Jul 29, 2004 at 08:18:22PM +0200, B?ringer, Heiko wrote: > > >>Hello together, >> >>since upgrading on samba 3.0.x (issue happens with all 3.0. release) the >>cpu-load on my samba PDC ist constantly near 100%. The cpu power ist >>consumed by all running smb-processes. Systrace shows me that the smb >>processes tried to access to /etc/passwd on a permanent basis. My question >>is: Why tries samba to access etc/passwd so often and produces this high >>cpu-load? >> >>Regards, >>Heiko B?ringer >> >>Rights for smbpasswd are set as following >>################################################################ >>-rw-r--r-- 1 root root 5540 Jul 27 15:15 passwd >> >>Systemconfiguration >>################################################################ >>- Debian 3.0 (Woddy) >>- Samba with an the samba3.0.5.deb from the unstable tree (but happends >>with >>all other versions too) >>- Configured als PDC with SMBPASSWD Authentification (no windbind, kerberos, >>ldap..) >> >>TOP shows the following >>################################################################ >> PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND >>19094 nobody 18 0 3872 3872 3440 R 8.7 0.7 43:22 smbd >> 5213 nobody 18 0 3784 3784 3400 R 8.7 0.7 29:43 smbd >> 9345 nobody 17 0 4100 4100 3628 R 8.7 0.7 29:24 smbd >>10237 nobody 19 0 3772 3772 3400 R 8.7 0.7 29:06 smbd >>17121 nobody 17 0 4140 4140 3632 R 8.7 0.8 28:02 smbd >>20776 nobody 18 0 3668 3668 3324 R 8.7 0.7 27:48 smbd >>17915 nobody 18 0 3768 3768 3388 R 8.7 0.7 46:35 smbd >>18441 nobody 17 0 4128 4128 3640 R 8.5 0.7 45:16 smbd >>25605 nobody 18 0 3784 3784 3400 R 8.5 0.7 6:38 smbd >> 1065 root 16 0 5504 5504 3928 R 7.1 1.0 0:59 smbd >>28475 root 9 0 4280 4280 3700 S 0.3 0.8 0:02 smbd >> >> >>Systrace on one of the smbd processes shows the following: >>################################################################ >>open("/etc/passwd", O_RDONLY) = 26 >>fcntl64(26, F_GETFD) = 0 >>fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 >>_llseek(26, 0, [0], SEEK_CUR) = 0 >>fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 >>mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 >>_llseek(26, 5540, [5540], SEEK_SET) = 0 >>fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 >>munmap(0x40510000, 5540) = 0 >>close(26) = 0 >>open("/etc/passwd", O_RDONLY) = 26 >>fcntl64(26, F_GETFD) = 0 >>fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 >>_llseek(26, 0, [0], SEEK_CUR) = 0 >>fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 >>mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 >>_llseek(26, 5540, [5540], SEEK_SET) = 0 >>fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 >>munmap(0x40510000, 5540) = 0 >>close(26) = 0 >>open("/etc/passwd", O_RDONLY) = 26 >>fcntl64(26, F_GETFD) = 0 >>fcntl64(26, F_SETFD, FD_CLOEXEC) = 0 >>_llseek(26, 0, [0], SEEK_CUR) = 0 >>fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 >>mmap2(NULL, 5540, PROT_READ, MAP_SHARED, 26, 0) = 0x40510000 >>_llseek(26, 5540, [5540], SEEK_SET) = 0 >>fstat64(26, {st_mode=S_IFREG|0644, st_size=5540, ...}) = 0 >>munmap(0x40510000, 5540) = 0 >>close(26) = 0 >>socket(PF_UNIX, SOCK_STREAM, 0) = 26 >>connect(26, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 >>ECONNREFUSED (Connection refused) >>close(26) = 0 >> >> > >Looks like a nsswitch bug whilst talking to nscd. Turn off >nscd from nsswitch.conf and see if the problem still occurs. > >Jeremy. > > >