• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[WORKAROUND] Samba Server beansprucht 100% CPU

dragon75

Newbie
Hallo,
ich habe hier einen Server auf dem läuft Opensuse 11.1 in der 32 Bit Version. Der Server wird nur als Fileserver in einer Windows Umgebung genutzt. Der Samba Dienst beansprucht aber zu unterschiedlichen Zeiten 100% der CPU und damit sind die Freigaben nicht mehr erreichbar. Kurz nachdem die CPU Last bei 100% liegt kann man nicht mehr auf die Freigaben zugreifen. Eine Anmeldung Peer SSH oder Lokal funktioniert dann auch nicht mehr. In den Logdatein kann ich nichts besonderes finden. Ich weiß nicht woran es liegen könnte?
Weiß einer von euch vielleicht wo ich ansetzen könnte um dieses Problem zu lösen?

Hardware:
  • Mainbord: Asus PQ5
    CPU: Intel DualCore mit 2,5 GHz
    RAM: 2GB
 
OP
D

dragon75

Newbie
Hallo jengelh,
hier ist meine smb.conf
Code:
[global]
	workgroup = Arbeitsgruppe
	os level = 2
	time server = Yes
	unix extensions = Yes
	encrypt passwords = Yes
	log level = 1
	syslog = 0
	wins support = No
	veto files = /*.nws/riched20.dll/*.{*}/
	netbios name = linux
	server string = linux
[install]
	comment = Allgemeines Verzeichniss
	path = /home/install
	valid users = s3 root
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777

[buero]
	comment = Buero
	path = /home/buero
	valid users = s1 s2 s3 s4 s9 s5 cad3 cad4 cad5 wb cad6 cad7
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777
	vfs object = recycle
	recycle:repository = Papierkorb
	recycle:exclude = *.tmp|*.temp|~$*
	recycle:keeptree = Yes
	browseable = Yes
	guest ok = No
	vfs objects = recycle

[winter]
	comment = Termine
	path = /home/winter
	valid users = s1 s2 s3 s4 s9 s5 cad3 cad4 cad5 wb cad6 cad7
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777
	vfs object = recycle
	recycle:repository = Papierkorb
	recycle:exclude = *.tmp|*.temp|~$*
	recycle:keeptree = Yes
	browseable = Yes
	guest ok = No
	vfs objects = recycle

[honorare]
	comment = Honorare
	path = /home/honorare
	valid users = s9 wb
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777
	vfs object = recycle
	recycle:repository = Papierkorb
	recycle:exclude = *.tmp|*.temp|~$*
	recycle:keeptree = Yes

[nodupd]
	comment = Nod update
	path = /home/nodupd
	valid users = s1 s2 s3 s4 s9 s5 cad3 cad4 cad5 wb cad6
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777
[heitker]
	comment = Stunden Heitker
	path = /home/heitker
	valid users = s1 s2 s3 s4 s9 s5 cad3 cad4 cad5 wb cad6
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777
	vfs object = recycle
	recycle:repository = Papierkorb
	recycle:exclude = *.tmp|*.temp|~$*
	recycle:keeptree = Yes

[nem]
	comment = Nem Allplan 2005
	path = /home/nem
	valid users = s1 s2 s3 s4 s9 s5 wb cad3 cad4 cad5 cad6 cad7
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777
	vfs object = recycle
	recycle:repository = Papierkorb
	recycle:exclude = *.tmp|*.temp|~$*
	recycle:keeptree = Yes
	browseable = Yes
	guest ok = No
	vfs objects = recycle

[sicherung]
	comment = Externe Platte an Linux
	path = /media/sicherung
	valid users = s3
	public = No
	browsable = Yes
	read only = No
	force group = busch
	create mask = 0777
	force create mode = 0777
	directory mask = 0777
	force directory mode = 0777

[orca]
	comment = Software
	inherit acls = Yes
	path = /home/orca/
	read only = No
	valid users = s1 s2 s3 s4 s9 s5 cad6 cad3 cad4 cad5 cad7 wb
 
Hm, nichts ungewöhnliches. Wo siehst du denn die 100%? In `top`? Wenn dem so ist kannst du ja mal versuchen den Prozess in der Priorität runterzusetzen (nice hoch).. denn wenn selbst SSH-Login nicht mehr geht (der Key-Exchange kann u.U. länger dauern wenn die CPU beschäftigt oder langsam ist) ist da mehr im Busch los. Steckt smbd vielleicht im Status 'D' fest? Ist es nur ein smbd-Prozess oder mehrere die Ärger machen? Sonst kill den einen doch mal...
 
OP
D

dragon75

Newbie
Das der Dienst 100% beansprucht sehe ich über top. Führe ich den Befehl ps ax | grep smbd bzw. ps aux | grep smbd aus, dann sehe ich das mehrere smbd's laufen. Dieses konnte ich aber nur machen wenn die CPU nicht unter Volldampf läuft. Mit Top habe ich auch immer nur einen Prozess gesehen der die 100% beansprucht.
Das hatte ich vergessen zu erwähnen, das ich den Prozess mit einem kill xxxx nicht beenden konnte.


Ausgabe bei ps ax | grep smbd
Code:
 3334 ?        Ss     0:00 /usr/sbin/smbd -D -s /etc/samba/smb.conf
 3360 ?        S      0:00 /usr/sbin/smbd -D -s /etc/samba/smb.conf
 5219 ?        R    1770:24 /usr/sbin/smbd -D -s /etc/samba/smb.conf

Was bedeutet der Status D und wie kann ich diesen erkennen?
 
Mir ist in einem Großnetzwerk unter SUSE 10.3 aufgefallen, dass hin und wieder ein smbd aus der Reihe tanzt.. meist passiert sowas wenn der Client einfach disconnected, aber es war selten genug dass mich das nie gestört hat. Zumal die Kiste dabei auch nicht dran zugrunde ging.
 
OP
D

dragon75

Newbie
Hallo jengelh,
es wird immer verückter. Nachdem ich in die konfiguraion keep alive=30 eingefügt habe und mit rcsmb stop den Dienst gestopt habe. Muß ich feststellen das bei einem "ps aux | grep smbd"
folgender Dienst noch läuft:
Code:
root      5219 90.6  0.2  17132  5096 ?        R    Jan23 2754:51 /usr/sbin/smbd -D -s /etc/samba/smb.conf
Ein anschliesendes top sagt mir das dieser Dienst mal wieder 100% der CPU beansprucht.
Ausgabe top:
Code:
5219 root      19  -1 17132 5096 3940 R  100  0.2   2777:09 smbd
Ein smbstatus gibt an das kein Client verbunden ist und den Dienst konnte ich auch nicht killen. Ein rcsmb start sagt zwar ok. Eine anschliesende Kontrolle mit rcsmb status bringt mir als Ergebnis unused.
Das beste ist ein init 6 bringt auch nichts da der Server nicht rebootet.
 

stka

Guru
Poste mal die oberen Ausgaben von "top" also die Zeilen in den die CPU Auslastung angezeigt wir und der freie Speicher angezeigt wird.
 
OP
D

dragon75

Newbie
Hier ist die komplette Ausgabe von top:
Code:
top - 11:39:44 up 2 days, 15:04,  2 users,  load average: 17.00, 17.00, 16.08
Tasks: 125 total,   5 running, 112 sleeping,   0 stopped,   8 zombie
Cpu(s):  0.0%us, 50.1%sy,  0.0%ni, 49.6%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2048856k total,  1586292k used,   462564k free,   237708k buffers
Swap:  2104472k total,        0k used,  2104472k free,   724284k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5219 root      19  -1 17132 5096 3940 R  100  0.2   2804:57 smbd
    1 root      20   0  1008  364  308 S    0  0.0   0:01.48 init
    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT  -5     0    0    0 R    0  0.0   0:00.00 migration/0
    4 root      15  -5     0    0    0 S    0  0.0   0:00.50 ksoftirqd/0
    5 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/1
    6 root      15  -5     0    0    0 S    0  0.0   0:00.32 ksoftirqd/1
    7 root      15  -5     0    0    0 R    0  0.0   0:01.36 events/0
    8 root      15  -5     0    0    0 S    0  0.0   0:02.28 events/1
    9 root      15  -5     0    0    0 S    0  0.0   0:00.00 khelper
   10 root      15  -5     0    0    0 S    0  0.0   0:00.00 kintegrityd/0
   11 root      15  -5     0    0    0 S    0  0.0   0:00.00 kintegrityd/1
   12 root      15  -5     0    0    0 R    0  0.0   0:00.04 kblockd/0
   13 root      15  -5     0    0    0 S    0  0.0   0:00.06 kblockd/1
   14 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpid
   15 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpi_notify
   16 root      15  -5     0    0    0 S    0  0.0   0:00.00 cqueue
 

stka

Guru
Was hast du denn da für Zombiprozesse auf deinem System? Schau mal nach welche Prozesse den Status "Z" haben. Hast du dein System jetzt mal neu gestartet?
 
OP
D

dragon75

Newbie
Als dieser Fehler zum ersten Mal aufgetreten ist und ich diesen nicht beheben konnte habe ich den Server neu installiert, die User neu eingerichtet und den Samba neu eingerichtet. Mehr läuft auf diesem System nicht. Soweit ich weiß kann ich Dienste mit kill -9 bzw. kill -15 xxxx beenden. Oder gibt es noch eine andere Möglichkeit?
Da ich erst ab Montag einen direkten Zugriff auf den Server habe und ein init 6 kein Erfolg brachte, konnte ich den Server noch nicht neu starten.
 
OP
D

dragon75

Newbie
Folgende Zombie Prozesse habe ich auf dem System
Code:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      6766  0.0  0.0      0     0 ?        Z    Jan23   0:00 [tail] <defunct>
root     25690  0.0  0.0      0     0 ?        Zsl  10:57   0:00 [blogd] <defunct>
root     25697  0.0  0.0      0     0 ?        Z    10:57   0:00 [smb] <defunct>
root     25721  0.0  0.0      0     0 ?        Zsl  10:57   0:00 [blogd] <defunct>
root     25729  0.0  0.0      0     0 ?        Z    10:57   0:00 [syslog] <defunct>
root     25741  0.0  0.0      0     0 ?        Z    10:57   0:00 [dbus] <defunct>
root     25742  0.0  0.0      0     0 ?        Z    10:57   0:00 [fbset] <defunct>
root     25743  0.0  0.0      0     0 ?        Z    10:57   0:00 [random] <defunct>
 

LoWang

Member
hi dragon75,

ich kann da ein Lied von singen....
ich habe einen Server der SMBClient ist ( SLES10 Linux version 2.6.16.60-0.27 ) und auf eine Freigabe auf einer SAN (Zugriffsrechte per ADS) zugreift..... tut er auch, nur hin und wieder (6 Stunden auf einmal 2 wochen lang ohne Probleme ) will er nicht.
In Top heist es SMBIO hat 100%
Unter /var/log/warn sieht man nur einige timeout Meldungen sonst nix.
Den dämon kann ich auch nicht killen ??!?!? Samba neu starten bringst auch nicht, da heist es dann nur device is busy und das wars.
Sobald man ls , df .... aufrufen will kann man praktisch die ssh Konsole schliesen und sich neu connecten.
Das witzige (leider nicht wirklich) ist das es diesen server noch ein zweites mal (identische Hardware Installation Einrichtung usw.) gibt und dieser nicht das selbe Problem hat.

:???:

PS: bin root auf den kisten
 

LJet

Newbie
Habe das gleiche Problem, jedoch auf der 64-bit Version. Ein smbd Prozess tanzt aus der Reihe und belegt 100% CPU. So sieht bei mir die Ausgabe bei ps ax | grep smbd:

Code:
root    3328  0.0  0.1  79188  2820 ?        Ss   Jan26   0:00 /usr/sbin/smbd -D -s /etc/samba/smb.conf
root    3639  0.0  0.0  79060  1272 ?        S    Jan26   0:00 /usr/sbin/smbd -D -s /etc/samba/smb.conf
root    4860  0.0  0.2  80104  4308 ?        S    07:58   0:01 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        4905  0.0  0.2  86556  4672 ?        S    08:05   0:02 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        4973  0.0  0.2  86792  4808 ?        S    08:13   0:04 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        5036  0.0  0.2  86440  4524 ?        S    08:24   0:01 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        5234  0.0  0.2  86900  5064 ?        S    08:35   0:11 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        5264  0.0  0.2  80448  4632 ?        S    08:41   0:07 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        5394  0.0  0.2  86784  4872 ?        S    09:01   0:09 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?        8753  0.0  0.1  80004  3520 ?        S    Jan26   0:43 /usr/sbin/smbd -D -s /etc/samba/smb.conf
?      10556  3.0  0.2  86160  4364 ?        S    10:33   4:14 /usr/sbin/smbd -D -s /etc/samba/smb.conf
root  11601  0.0  0.0   7360   872 pts/0    S+   12:53   0:00 grep smbd
root  28999 69.7  0.2  80664  4844 ?        R    Jan28 1195:20 /usr/sbin/smbd -D -s /etc/samba/smb.conf

Wobei die Ausgabe von top Zeigt, dass 48,1% "idle" sind:
Code:
top - 12:58:12 up 3 days,  3:20,  1 user,  load average: 4.56, 4.21, 4.04
Tasks: 102 total,   4 running,  98 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us, 50.1%sy,  0.0%ni, 48.1%id,  1.7%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2054648k total,  1437752k used,   616896k free,    71880k buffers
Swap:  1060280k total,       80k used,  1060200k free,  1024048k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
28999 root      20   0 80664 4844 3352 R  100  0.2   1199:58 smbd

Hat jemand das Problem gelöst?
 

LJet

Newbie
Heute früh stellte ich fest, dass smbd wieder aus der Reihe tanzt. Da ich wusste wie lange das betroffene Prozess schon läuft, fand ich heraus, dass es gestern Abend um 18:09 Uhr anfing. Hier ist der Auszug von "/var/log/messages" für diese Zeit. Weiß jemand, was das sein kann und was dazu führt, dass smbd den CPU mit 100% beansprucht?

Code:
Feb  2 18:09:48 server smbd[21893]: [2009/02/02 18:09:48,  0] lib/util_sock.c:read_socket_with_timeout(939)
Feb  2 18:09:48 server smbd[21893]: [2009/02/02 18:09:48,  0] lib/util_sock.c:get_peer_addr_internal(1607)
Feb  2 18:09:48 server smbd[21893]:   getpeername failed. Error was Der Socket ist nicht verbunden
Feb  2 18:09:48 server smbd[21893]:   read_socket_with_timeout: client 0.0.0.0 read error = Keine Route zum Zielrechner.
Feb  2 18:10:16 server smbd[3644]: [2009/02/02 18:10:16,  0] lib/util_sock.c:read_socket_with_timeout(939)
Feb  2 18:10:16 server smbd[3644]: [2009/02/02 18:10:16,  0] lib/util_sock.c:get_peer_addr_internal(1607)
Feb  2 18:10:16 server smbd[3644]:   getpeername failed. Error was Der Socket ist nicht verbunden
Feb  2 18:10:16 server smbd[3644]:   read_socket_with_timeout: client 0.0.0.0 read error = Keine Route zum Zielrechner.
 

Martin_2

Newbie
Hallo,

hatte die selben Probleme, hört sich nach dem Kernel-Bug an:

http://forums.opensuse.org/network-internet/404613-samba-md0_raid1-opensuse-11-1-a.html

Kernelupdate ist am einfachsten über yast möglich indem man das folgende Kernelrepository hinzufügt:
http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_Factory/

Ich benutze nun den Kernel kernel-pae-2.6.27.10-7.1

Die andere Möglichkeit, als Workaround ist in Samba unter [global]
notify:inotify=false

hinzuzufügen.

Grüße
Martin
 

LJet

Newbie
Hallo Martin2,

danke für den Vorschlag. Ich werde heute nachmittag den neuen Kernel installieren und danach berichten.
 
Oben