PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was tun bei Überlastung?



der_Behr
10.10.04, 17:11
Ich hab mich ein bisschen im Bash-Scripting versucht, wobei mein Rechner bei einem Skript mit ner Testschleife schon sehr stark ins Schwitzen gekommen ist. Ne ganze Zeit lang lief alles noch prima und ich dachte mir: "Der braucht halt seine Zeit."

Aber langsam lief auch der swap voll und als nur noch ein paar kb frei waren hat die Festplatte nicht mehr aufgehört zu arbeiten. CPU-Last konnte ich nicht mehr checken, weil X (ausgenommen die Mausbewegungen, die gingen noch, mit 10sek Verzögerung) nicht mehr reagiert hat. Ich hab erst mal ne ganze Zeit lang gewartet und dann alles Mögliche ausprobiert: Alt+F4 (hab KDE), Strg+C, Power-Knopf (ist auf shutdown eingestellt). Ja, irgendeine von diesen Möglichkeiten hat dann auch mit ein paar Minuten Verzögerung auch gewirkt und das Skript abgebrochen, sowie die Sitzung bei KDE beendet. Der Anmelde-Bildschirm kam und alles lief wieder wie geschmiert.

Windows wäre da bestimmt abgestürzt :-) Aber so ideal ist es ja auch nicht, wenn man so lange nicht auf den Rechner zugreifen kann. Kann man denn vielleicht ein Skript schreiben, das den Prozess anhält, der die höchste Last verursacht, wenn der swap voll ist? Das Szenario ist nämlich reproduzierbar. Fragt nicht warum ;-)

realemu
10.10.04, 17:21
Nur mal so ne Frage: Was soll denn das Script leisten?

Grüße, realemu

der_Behr
11.10.04, 15:51
Sinn: Keiner.
Zweck: Lernen.

;-)

taylor
11.10.04, 15:54
Warscheinlich kommst Du da mit PAM und der Datei /etc/security/limits.conf weiter.

Ist leider ziemlich schwer, Doku darüber zu finden.

der_Behr
11.10.04, 19:22
Ja, es ist auch nicht wirklich schlimm, im normalen Betrieb läuft ja alles. Mich hätte nur mal interessiert, woran es liegt.

taylor
11.10.04, 19:30
Na Dein Programm läuft z.B. in eine Endlosschleife und belegt mit jedem Durchgang mehr Speicher. Der ist dann irgendwann voll, die Kiste swappt, Load steigt ins Unbenutzbare und irgendwann killt der Kernel unwichtige Prozesse, vorzugsweise die, die Du am liebsten behalten hättest. :)

michael.sprick
11.10.04, 19:37
poste doch mal Dein Skript... vielleicht gibt es ja elegantere Lösungen. ;)

realemu
11.10.04, 19:52
Na Dein Programm läuft z.B. in eine Endlosschleife und belegt mit jedem Durchgang mehr Speicher. Der ist dann irgendwann voll, die Kiste swappt, Load steigt ins Unbenutzbare und irgendwann killt der Kernel unwichtige Prozesse, vorzugsweise die, die Du am liebsten behalten hättest. :)


Deswegen meine Frage, was das Skript denn können soll. ;)


Grüße, realemu

der_Behr
12.10.04, 20:22
Nein, um das nochmal klarzustellen: Das Skript hat keinen Zweck, ich will mich nur mit der Bash-Syntax vertraut machen (und spiel dabei ein bisschen rum). Mich hat nur interessiert, wie taylor es beschrieben hab, warum der pc dann so reagiert. Bei meinen php-skripten ist halt bei 8mb oder 60s Schluss, da wird nix vom Sys gekillt.

n0bbi
12.10.04, 21:47
Bei mir war in der /etc/security/limits.conf eigentlich ne ganz gute Erklärung:



#Each line describes a limit for a user in the form:
#
#<domain> <type> <item> <value>
#
#Where:
#<domain> can be:
# - an user name
# - a group name, with @group syntax
# - the wildcard *, for default entry
# - the wildcard %, can be also used with %group syntax,
# for maxlogin limit
#
#<type> can have the two values:
# - "soft" for enforcing the soft limits
# - "hard" for enforcing hard limits
#
#<item> can be one of the following:
# - core - limits the core file size (KB)
# - data - max data size (KB)
# - fsize - maximum filesize (KB)
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
# - cpu - max CPU time (MIN)
# - nproc - max number of processes
# - as - address space limit
# - maxlogins - max number of logins for this user
# - priority - the priority to run user process with
# - locks - max number of file locks the user can hold
#
#<domain> <type> <item> <value>
#
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
# End of file



Vielleicht bringts ja was, kA!

MfG

Destroyer69
13.10.04, 19:51
Hallo,
ein ähnliches Problem hatte ich mit "e-donkey" , das ganze System hing und alles dauerte ewigkeiten. Die Lösung war ein einloggen per ssh auf meinem Linuxrechner und diesen dann rebooten zu lassen, klappt(e) wunderbar :) evtl. hilft es Dir ja auch , vorausgesetzt Du hast die Möglichkeit Dich per ssh einzuloggen ;)