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. > > >