Det är så att jag har en samling processer som ibland får för sig att få spatt, jag tror det kan vara minnesläckage eller något liknande, för efter ett tag äter de upp ~100MB (från att kräva 10 från början), sedan med tiden käkar de upp 100% CPU och gör hela systemet instabilt.
Detta inträffar sporadiskt dock, jag kan ha en uptime på 4 veckor utan att något händer, då plötsligt detta inträffar.
Nu undrar jag om man kan övervaka resursanvändningen hos vissa PID's, eller vissa processer och automatiskt starta om dem om de går över en viss gräns?
Resursätande processer, autoterminering?
Resursätande processer, autoterminering?
Aotearoa - tino rangatiratanga
Följande script skulle nog kunna sköta jobbet .. - bara att lägga i cron och sedan rätta till variablerna ..
OBS! om programmet använder mycker mer än man väntar sig så kommer scriptet inte att funka .. typ om programmets minnes användning börjat skrivas med nytt postfix ..
OBS! om programmet använder mycker mer än man väntar sig så kommer scriptet inte att funka .. typ om programmets minnes användning börjat skrivas med nytt postfix ..
Code: Select all
#!/usr/bin/perl -w
$PNAME = "mplayer";
$MLIMIT = 10;
$POSTFIX = "K"; # K for kilobyte, M for megabyte and G for giga...
$RESTART = "mplayer abc.mp3";
open(PIDS,"-|","top | grep $PNAME") or die "w00t?";
while (<PIDS>) {
@_ = split();
if ($_[5] =~ /^([0-9]*)$POSTFIX$/) {
if ($1 > $MLIMIT) {
print($_[0] . " uses over $MLIMIT ${POSTFIX}B !\n");
system("echo kill -9 $_[0]");
system("echo " . $RESTART);
}
}
}
ulimit lär fungerar bra för att terminera processer som tar för mycket resurser, men för att starta de igen... Möjligtvis att daemontools passar för det jobbet.
Re: Resursätande processer, autoterminering?
På just den här frågan är svaret "ulimit" ja, givet att din process kan startafisk wrote: Nu undrar jag om man kan övervaka resursanvändningen hos vissa PID's, eller vissa processer och automatiskt starta om dem om de går över en viss gräns?
om sig vid eventuella fel. Du kan ställa in hur många cpu-sekunder eller
hur mycket minne de får öda innan de dödas av systemet. Det är iofs inte
något fint sätt de dör på, men om valet är 100% cpu och det gör datorn
oanvändbar så kanske det är bättre ändå.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!