Hans Otto Lunde
2008-Aug-26 15:57 UTC
[Samba] Hig cpu-usage on 3.0.24 on 64bit Debian etch
I'm having an issue with cpu-spikes on the following setup
Samba 3.0.24 as PDC with cups as the printing system on a Debian Etch 64 bit
version Intel dual-core system
My main problem is, that everything works just fine, there are no serious errors
in the log files, even if i step the log level up to level 3. What happens is
that the processes belonging to the guest-account have occasional high
cpu-values, up to 10-60%, then they slow down again, but there are many of them
and all in all that gives too much cpu-usage. File transfers, printing etc.
doesn't slow the machine down at all.
The documentation says, that the guest-account should be defined, although I
have "guest ok = no" in the smb.conf.
Default for that account is the "nobody-user". Mine is called sambody
and has a home-directory etc.
It seems, that samba uses the guest-user for sleeping connections, but I
can't figure out, where that high cpu-usage comes from.
I could use a tip on this. I have also thought that it might be a 64bit-issue,
that maybe is fixed in Lenny. I've considered swithing to Lenny although
it's not stable yet. I've also considered compiling samba myself, but
the machine is critical, and since the server runs fine, I decided to ask the
experts.
Anybody got an idea what is going on???
Here is a quick dump of some of the processes involved, below is my smb.conf:
sambody 19094 2.5 0.2 42644 5628 ? S 10:36 2:36 /usr/sbin/smbd
-D
root 19133 1.4 0.2 42536 5412 ? S 10:41 1:21 /usr/sbin/smbd
-D
ma 19138 0.2 0.2 42484 5396 ? S 10:41 0:13 /usr/sbin/smbd
-D
root 19306 0.0 0.2 42804 5580 ? S 10:57 0:03 /usr/sbin/smbd
-D
root 19367 0.2 0.2 42380 5012 ? S 11:04 0:11 /usr/sbin/smbd
-D
sambody 19412 4.5 0.2 42528 5304 ? S 11:10 3:01 /usr/sbin/smbd
-D
sambody 19476 12.5 0.2 42492 5276 ? S 11:17 7:28 /usr/sbin/smbd
-D
root 19491 0.0 0.2 42928 5624 ? S 11:19 0:02 /usr/sbin/smbd
-D
sambody 19520 4.2 0.2 42636 5464 ? S 11:21 2:19 /usr/sbin/smbd
-D
sambody 19639 4.2 0.2 42636 5492 ? S 11:37 1:40 /usr/sbin/smbd
-D
root 19667 0.0 0.2 42160 4612 ? S 11:40 0:00 /usr/sbin/smbd
-D
sambody 19811 4.6 0.2 42272 4960 ? S 11:58 0:51 /usr/sbin/smbd
-D
root 19830 0.0 0.1 41412 3448 ? S 11:59 0:00 /usr/sbin/smbd
-D
root 19845 0.0 0.1 35888 2704 ? Ss 12:00 0:00 sshd:
root@pts/0
root 19853 0.0 0.0 11532 1980 pts/0 Ss 12:01 0:00 -bash
root 19872 0.0 0.1 41412 3464 ? S 12:02 0:00 /usr/sbin/smbd
-D
root 19874 0.3 0.1 41516 3700 ? S 12:02 0:03 /usr/sbin/smbd
-D
sambody 19977 0.1 0.1 41500 3712 ? S 12:06 0:00 /usr/sbin/smbd
-D
jn 19985 0.2 0.2 42028 4496 ? S 12:07 0:01 /usr/sbin/smbd
-D
root 20010 0.1 0.1 41660 3640 ? S 12:10 0:00 /usr/sbin/smbd
-D
jy 20014 0.6 0.2 42204 4592 ? S 12:11 0:02 /usr/sbin/smbd
-D
sambody 20053 4.6 0.1 41608 3488 ? S 12:16 0:00 /usr/sbin/smbd
-D
sambody 20056 11.0 0.1 41412 3388 ? S 12:16 0:00 /usr/sbin/smbd
-D
smb.conf:
[global]
workgroup = EGMONT
netbios name = ESERVER
server string = Samba
interfaces = eth0 lo
hosts allow = 127.0.0.1 192.168.194.0/24
hosts deny = 0.0.0.0/0
passdb backend = smbpasswd
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:*
%n\n *password\supdated\ssuccessfully* .
password server =
null passwords = no
invalid users = root daemon, bin, sys, sync, man, games, lp, mail, news, uucp,
proxy, backup list, gnats,
Debian-exim, statd, identd, sshd, ftp
guest account = sambody
guest ok = no
unix charset = UTF8
display charset = LOCALE
dos charset = CP850
log level = 2
log file = /var/log/samba/%m.log
max log size = 0
name resolve order = lmhosts wins bcast
socket options = TCP_NODELAY
logon script = %G.bat
logon path = \\%N\%U\.wincfg
logon drive = h:
domain logons = yes
os level = 65
preferred master = yes
domain master = yes
local master = yes
security = user
dns proxy = no
wins support = yes
printing = cups
printcap name = cups
# lpq command = lpq -P%p
# lprm command = lprm -P%p %j
[netlogon]
comment = Login Scripts
path = /home/netlogon
browseable = no
[afdeling]
comment = Afdelings-drev
path = /home/afdeling
valid users = +edb
admin users = +edb
read only = no
[apps]
comment = Programmer
path = /home/apps
read only = yes
[bruger]
comment = Bruger-drev
path = /home/bruger
valid users = +edb
admin users = +edb
read only = no
[cdrom]
comment = Server cdrom
path = /mnt/cdrom
valid users = +edb
read only = yes
browseable = no
[edb]
comment = Edb
path = /home/afdeling/edb
valid users = +edb
force group = edb
read only = no
create mask = 0660
directory mask = 0770
[felles]
comment = Faelles drev
path = /home/felles
valid users = +felles
force group = felles
read only = no
create mask = 0660
directory mask = 0770
# [filmlinie]
# comment = Medie drev
# path = /home/medie
# valid users = +medie, +mediel, +edb
# force group = medie
# read only = no
# create mask = 0660
# directory mask = 0770
[hha]
comment = Hjemmehjaelp
path = /home/afdeling/hha
valid users = +hha, +edb
force group = hha
read only = no
create mask = 0660
directory mask = 0770
[homes]
comment = Home Directories
read only = no
create mask = 0600
directory mask = 0700
browseable = no
public = no
csc policy = disable
[hsc]
comment = Soesportscenter
path = /home/afdeling/hsc
valid users = +kontor
force group = kontor
read only = no
create mask = 0660
directory mask = 0770
[install]
comment = Installations-drev
path = /home/install
valid users = +edb
force group = edb
read only = no
create mask = 0660
directory mask = 0770
[koekken]
comment = Koekken
path = /home/afdeling/koekken
valid users = +koekken, +edb
force group = koekken
read only = no
create mask = 0660
directory mask = 0770
[kontor]
comment = Kontor
path = /home/afdeling/kontor
valid users = +kontor
force group = kontor
read only = no
create mask = 0660
directory mask = 0770
[pedel]
comment = Pedel
path = /home/afdeling/pedel
valid users = +pedel, +edb
force group = pedel
read only = no
create mask = 0660
directory mask = 0770
[publikation]
comment = Publikation
path = /home/publikation
valid users = +kontor
force group = kontor
read only = no
create mask = 0660
directory mask = 0770
[underviser]
comment = Underviser
path = /home/afdeling/underviser
valid users = +underviser, +hjunderviser, +edb
force group = underviser
read only = no
create mask = 0660
directory mask = 0770
#[printers]
# comment = All Printers
# path = /var/spool/samba
# browseable = no
# guest ok = no
# writable = no
# printable = yes
[BRAILLE]
comment = Braille Printer (Jetd. 170X)
path = /var/spool/samba
valid users = +edb
printable = yes
default devmode = no
use client driver = yes
[EDB1]
comment = Brother HL 2070N
path = /var/spool/samba
printable = yes
default devmode = no
use client driver = yes
[EDB2]
comment = Brother HL 1470N
path = /var/spool/samba
printable = yes
default devmode = no
use client driver = yes
[ITKONTOR]
comment = HP Laserjet 4050
path = /var/spool/samba
valid users = +edb, +kontor, +underviser
printable = yes
default devmode = no
use client driver = yes
[KONTOR-AN]
comment = HP Laserjet 4000
path = /var/spool/samba
valid users = +kontor
printable = yes
default devmode = no
use client driver = yes
[KONTOR-EC]
comment = HP Laserjet 2430
path = /var/spool/samba
valid users = +kontor
printable = yes
default devmode = no
use client driver = yes
[KONTOR-LD]
comment = HP Laserjet 2100
path = /var/spool/samba
valid users = +kontor
printable = yes
default devmode = no
use client driver = yes
[KOPI-FARVE]
comment = Minolta Bizhub 451
path = /var/spool/samba
valid users = +edb, +hha, +hjunderviser, +koekken, +kontor, +pedel, +underviser
printable = yes
default devmode = no
use client driver = yes
[KOPI-PLOT]
comment = HP Deskjet 650C (Jetd. ExPlus 3)
path = /var/spool/samba
valid users = +edb
printable = yes
default devmode = no
use client driver = yes
[KOPI-PRUM]
comment = Minolta Bizhub 250
path = /var/spool/samba
valid users = +edb, +hha, +hjunderviser, +koekken, +kontor, +pedel,
+underviser, p-rum, akl, vic
printable = yes
default devmode = no
use client driver = yes
[KOPI-SH]
comment = Minolta Bizhub 600
path = /var/spool/samba
valid users = +edb, +hha, +hjunderviser, +koekken, +kontor, +pedel, +underviser
printable = yes
default devmode = no
use client driver = yes
[MEDIE]
comment = Brother HL 5070N
path = /var/spool/samba
printable = yes
default devmode = no
use client driver = yes
[PLEJE]
comment = Brother HL 1470N
path = /var/spool/samba
valid users = +edb, +hha, +hjunderviser, +koekken, +kontor, +pedel, +underviser
printable = yes
default devmode = no
use client driver = yes
[SORT]
comment = Brother HL 2170DN
path = /var/spool/samba
printable = yes
default devmode = no
use client driver = yes
On Tuesday 26 August 2008, Hans Otto Lunde wrote:> The documentation says, that the guest-account should be defined, > although I have "guest ok = no" in the smb.conf. Default for that > account is the "nobody-user". Mine is called sambody and has a > home-directory etc."guest ok = " is a share level parameter although it can be used in the global section thereby affecting all shares that do not explicitly reset it. It doesn't effect the actual guest account itself. Typical default guest account is "nobody", although it can be virtually anything (even "sambody"), but it does need to be a real 'nix user (needs an entry in /etc/passwd). The Windows "guest" account has to be mapped to the 'nix guest account in your username map file, which is /etc/samba/smbusers in my case and the global parameter tells samba where it is: "username map = /etc/samba/smbusers". In my case it contains: #==============root = administrator nobody = guest #============== Yours should probably at the least contain: #==============sambody = guest #==============Again, where "sambody" is a valid 'nix account. Also the global parameter "map to guest = " should be added to your smb.conf, "map to guest = bad user" works for general guest usage. -- Chris
Hans Otto Lunde
2008-Aug-26 23:25 UTC
[Samba] Hig cpu-usage on 3.0.24 on 64bit Debian etch
On the 26th of august Chris wrote:>> "guest ok = " is a share level parameter although it can be used in the >> global section thereby affecting all shares that do not explicitly >> reset it. It doesn't effect the actual guest account itself. >> Typical default guest account is "nobody", although it can be virtually >> anything (even "sambody"), but it does need to be a real 'nix user >> (needs an entry in /etc/passwd). >> The Windows "guest" account has to be mapped to the 'nix guest account >> in your username map file, which is /etc/samba/smbusers in my case and >> the global parameter tells samba where it is: >> "username map = /etc/samba/smbusers". >> In my case it contains: >> #==============>> root = administrator >> nobody = guest >> #============== >> Yours should probably at the least contain: >> #==============>> sambody = guest >> #==============>> Again, where "sambody" is a valid 'nix account.>> Also the global parameter "map to guest = " should be added to your >> smb.conf, "map to guest = bad user" works for general guest usage.Thanks, Chris, for your answer. I forgot to mention that almost all my clients are XP professional with SP3. No "Guest" user on them by the way. I've made the changes you suggested, the problem persists. The spikes seem to be related to samba changing the owner of a smb-process, from the user to sambody(guest account), from sambody to root or the other way round. Could anyone explain what controls these ownership-changes, except inactivity? Also the spikes seem to happen to processes that are doing nothing, no file-copying, printing etc. As if samba is somehow talking to itself...?#! I have a feeling that it's a bug of some kind, related to the 64bit version. But i don't really have something to back it up with, since everything is ok, except for the load spikes that accummulate to a lot of cpu-usage with many users working. Maybe I should take a deep breadth and upgrade to Lenny(debian testing), with samba 3.2 or recompile samba 3.2.2 myself. Any suggestions? :-) Hans Otto Lunde