17. maj 2008 - 13:52Der er
3 kommentarer og 1 løsning
Service: CPU-forbrug og restart
Nu er jeg total n00b med vb.net (og windows-programmering i det hele taget), så jeg er lidt lost i øjeblikket mht. hvad jeg skal søge efter.
Jeg har et problem med en en process (httpd) der ind imellem går amok, og konstant kører 50% eller 97% på cpu'en. Den eneste måde at rette op på dette er ved at genstarte wampapache servicen. Der er selvfølgelig et eller andet galt somewhere, men jeg har indtil videre ikke kunnet identificere hvad.
Nu kom jeg så til at tænke på, at som en midlertidig løsning kunne jeg lave en service der checkede processens cpu-forbrug, og hvis den var for høj i en vis periode, så genstarte servicen.
Som total n00b er der så nogle ting jeg ikke ved hvordan jeg gør:
1) Checke cpu-forbrug på en process 2) Genstarte en "fremmed" service 3) Tage tid
Imports System Imports System.Diagnostics Imports System.Threading
Namespace E Public Class Program Public Shared Sub Main(args As String()) While True Dim p As Process() = Process.GetProcessesByName("firefox") If p.Length > 0 Then Dim p0 As Process = p(0) Dim t1 As Long = DateTime.Now.Ticks Dim p0t1 As Long = p0.TotalProcessorTime.Ticks Thread.Sleep(100) Dim t2 As Long = DateTime.Now.Ticks Dim p0t2 As Long = p0.TotalProcessorTime.Ticks Dim pct As Integer = CInt((100 * (p0t2 - p0t1) \ (t2 - t1))) Console.WriteLine(pct) Else Exit While End If End While End Sub End Class End Namespace
hey, lige hvad jeg skulle bruge for at komme videre - tak :) Til ServiceController skal jeg så blot huske at tilføje en reference til System.ServiceProcess, og så kan jeg sandsynligvis bruge .WaitForStatus til at afgøre hvornår det er muligt at starte servicen igen :)
Og med processen fik jeg lige det input jeg skulle bruge for at finde det hul jeg skulle bruge :) httpd står på listen to gange, men med hjælp af det du gav mig, kunne jeg finde frem til at lave min egen liste, med process id, og så kan jeg checke cpu-forbruget på begge processer via id'en (.GetProcessesById)
Takker mange gange :) Smider du et svar, så er der point :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.