Kami memiliki server Windows 2003 di mana 3 layanan berjalan terus-menerus. Terkadang layanan ini mengonsumsi lebih dari 90% CPU. Restart layanan ini mengembalikan normal. Saya membutuhkan skrip / program yang akan terus memantau penggunaan CPU dan jika penggunaannya tinggi maka restart layanan tersebut.
Setelah sedikit riset saya menemukan skrip ini untuk memantau penggunaan CPU dari Technet .
Script untuk memantau penggunaan CPU:
(get-counter -Counter "\Processor(_Total)\% Processor Time"
-SampleInterval 1 -MaxSamples 10 |
select -ExpandProperty countersamples | select -ExpandProperty
cookedvalue | Measure-Object -Average).average
Ini memantau penggunaan CPU selama 10 detik dan kemudian menampilkan output rata-rata.
Juga dari Stack Overflow dan Server Fault saya menemukan skrip untuk me-restart layanan Windows. ( Mana yang lebih baik? )
Sekarang yang saya butuhkan adalah skrip penggunaan CPU untuk memanggil skrip restart layanan ketika kondisi penggunaan> 90% terpenuhi. Bantuan apa pun akan dihargai.
sumber
mpstat -A | grep all | head -1
akan memberi Anda penggunaan CPU dan berdasarkan nilainya Anda dapat memulai kembali layanan. Di windows saya akan menyarankan untuk menggunakan PowerShellGet-WmiObject win32_processor | select LoadPercentage |fl
yang akan memberi Anda penggunaan CPU dan untuk me-restart layanan menggunakan perintahsc
dengan switch / parameter yang tepat.Jawaban:
Hanya sebagai catatan .. ada jawabannya :
Powershell benar-benar membuat hidup lebih sederhana!
sumber
Jika solusi komersial OK, periksa Pelindung Layanan kami . Ini akan menjaga setiap layanan windows dan memulai kembali jika terlalu lama memakan CPU.
sumber