Bekijk Volledige Versie : reden hoge load achterhalen?
Goedendag,
Ik blijk op mijn server soms een extreem hoge load te hebben.
Gisteravond was dit op een gegeevn moment: load average: 4.96, 4.17, 2.50
vanmorgen was dit echter weer 0.16, 0.18, 0.18
Ik zoek nu een tooltje die de load gedurende een paar dagen kan loggen om te zien hoe dit verloopt.
Maar wat misschien nog wel belangrijker is: waar deze hoge load precies vandaan komt.
Dus dat dat programma op het moment dat er een hoge load is ook aangeeft vanaf welke website dat komt en bij voorkeur ook de map waaruit het komt.
Op die manier kan ik het script achterhalen wat dit veroorzaakt en het probleem verhelpen.
Iemand enig idee of er een dergelijk programma bestaat dat dit kan?
mvg
Daniël
cronjobs? of een backup script dat een hele rits bestanden tarred?
gebruik anders cacti om een monitoring uit te voeren en even te kijken wanneer, waar en door wie (als je php pr user draiit bv) de load wordt veroorzaakt
er zijn naar mijn idee een drietal opties waardoor het veroorzaakt kan worden:
1. klant heeft een script geschreven waarin een inf loop zit
2. er draait een (backup) cron die nogal wat load veroorzaakt
3. een verkeerd geconfigureerd proces loopt uit de hand (denk aan apache of een van de andere LAMP onderdelen)
dit zijn natuurlijk niet de enige opties maar wel wat ik zo direct als grootste kanshebbers zou bestempelen
verder is een load van 4+ af en toe niet erg, als je load over een hele dag maar een normale waarde heeft (tussen 0.10 en 0.50 afhankelijk van de drukt van de server)
Goedendag,
Ik blijk op mijn server soms een extreem hoge load te hebben.
Gisteravond was dit op een gegeevn moment: load average: 4.96, 4.17, 2.50
vanmorgen was dit echter weer 0.16, 0.18, 0.18
Ik zoek nu een tooltje die de load gedurende een paar dagen kan loggen om te zien hoe dit verloopt.
Maar wat misschien nog wel belangrijker is: waar deze hoge load precies vandaan komt.
Dus dat dat programma op het moment dat er een hoge load is ook aangeeft vanaf welke website dat komt en bij voorkeur ook de map waaruit het komt.
Op die manier kan ik het script achterhalen wat dit veroorzaakt en het probleem verhelpen.
Iemand enig idee of er een dergelijk programma bestaat dat dit kan?
mvg
Daniël
Ik zou zodra je merkt dat er een hoge load is het commando 'top' invoeren. Dan kan je zien welke commando de cpu load veroorzaakt. Je kan dan ook de PID zien van dat commando, en daarmee achterhalen welk bestandje de veroorzaker is.
Je kan wel een tooltje zoals MRTG installeren en de CPU load in een grafiek zien, maarja.. dan weet je nogsteeds niet waar hij vandaan komt. Je zou daarmee wel kunnen zien of het iedere dag rond hetzelfde tijdstip voorkomt (en achterhalen of het misschien een cron job is zoals Daniël aangaf).
Succes ermee!
Hallo,
Op de server draaien 2 bedrijven. mijn eigen bedrijf en die van mijn broer.
Verder draaien er geen andere klanten op de server (in totaal een 6tal websites).
De scripts zouden goed moeten zijn maar tweiffel daar dus nu toch een beetje aan).
Er draait nog geen backup proces wat de load zou kunnen veroorzaken.
Maar in elkgeval heeft catci in mijn situatie wat ik van je begrijp geen nut.
Ik ga in elkgeval gedurende de dag en avond even de load in de gaten houden en op het moment van een hoge load het commando top geven om eens te kijken of ik dan iets kan zien.
Indien iemand dus nog een programma weet die mij smorgens gewoon ene log kan laten zien van de afgelopen 24 uur inclusief de oorzaak hoor ik dat uiteraard graag, ben namelijk savonds niet steeds achter de pc en snachts al helemaal niet.
Daniël
Indien iemand dus nog een programma weet die mij smorgens gewoon ene log kan laten zien van de afgelopen 24 uur inclusief de oorzaak
Zo werkt dat helaas niet ;)
Mijn inziens kan je prima cacti (of welke loadmonitor dan ook) installeren, zodat je kan kijken of de load een momentopname is, of gedurende wat langere tijd.
Verder: lsof -p PID zogauw je het proces gevonden hebt wat de load veroorzaakt.
Heb je geen sysadmin die een en ander eens kan nalopen? Lijkt me handiger dan zelf wat gaan aanrommelen (no offense). Voor hetzelfde geldt draait er een leuk perl proces mee :)
net zag ik dat de load even 10 minuten lang naar rond de 1.5 ging.
Ik heb toen top gedaan in ssh en een screenshot gemaakt:
http://www.worldnetshops.nl/load.jpg
Lijkt dat mysql en apache even erg veel cpu gebruikten.
Maar heb verder geen flauw idee hoe ik nu dus er achter moet gaan komen welke website het probleem veroorzaakt en dan dus nog welk script....
en voordat ik het gebruik... wat doet lsof -p PID precies?
Schakeld dat het uit? en wat nu als het mysql of apache is, is geen optie om dat uit te schakellen natuurlijk.
Opzich niet vreemd dat apache en mysql wat trekken, ik neem aan dat er vooral hosting op je server draait. Wellicht moet je eens kijken naar optimaliseren van apache en mysql zodat deze minder cpu kracht gebruiken.
er draaien op mijn server 2 belangrijke sites plus een 3tal minder belangrijke.
Alles is in eigen beheer, zijn geen externe klanten op de server dus.
Wat mij voornamelijk zorgen baart zijn de onverklaarbare pieken dus.
van 0.09 naar 1.5 in paar seconden zonder verklaarbare reden. en gister dus zelfs met pieken (gedurende minimaal 30 minuten) van 4.5.
Maar of dat dus aan apache/mysql ligt of aan 1 van de scripts op de server is mij onbekend.
En dat vind ik wel heel erg belangrijk om te weten omdat als het een script is ik dat gewoon wil laten aanpassen zodat dat niet meer gebeurd.
In MySQL kun je met 'show processlist' en 'status' zien wat je daemon doet. Bij apache kun je dat doen middels hostname/server-status (indien enabled in je config). Dan zie je wat er gebeurt bij welk PID/proces.
Overigens is de genoemde load (zeker op een multi processor machine) niet zo heel erg spannend hoor. :) Maar als 'ie weinig doet wel natuurlijk. ;)
met top en mytop moet je al een stuk verder komen.
wat doet de mail? exim -bp en exim -bpc b.v.?
Zoals Geert-Jan al aangeeft, neem eens een kijkje via top.
Dat was dus ondertussen bekend. De load vind ik inderdaad niet schrikbarend hoog. Check even in mysql met "full processlist" wat er precies gaande is.
Tevens kan je een slowquery-log aanzetten, waarmee je kan kijken welke queries langer doen dan normaal.