目前业务上有几台windows的老机器,经常IIS使用过高。导致服务器down机,上次查过一次,是IIS占用cpu过高引起的,至于为什么是IIS占用资源过高,自己脑补。。。。。最傻瓜的方式就是:iisreset /restart。
工作日的时候,一般都是在自动化管理平台上去重启一下就可以了,但是周末有时候人在外面,旁边没有电脑,这几台机器cpu又高的话,只能选择用脚本来控制。
下面分享两个脚本,一个是bat的 一个是python的。可以根据各自的需求来修改下面的脚本。
python脚本
[sourcecode language="plain"]
-*- coding:utf-8 -*-
Author:Blacksmith
import psutil
import os
def getcpu():
cpu_percent = psutil.cpu_percent(interval=10,percpu=False)
return cpu_percent
def restart_iis():
cpu_percent = getcpu()
if cpu_percent > 80:
os.system('iisreset /restart')
if name == 'main':
restart_iis()
[/sourcecode]
bat脚本
[sourcecode language="plain"]
@echo off
for /f "tokens=2 delims==" %%a in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value^|findstr "PercentProcessorTime"') do (
set UseCPU=%%a
)
echo CPU使用率:%UseCPU%%%
if %UseCPU% gtr 90 (iisreset /start)
pause
[/sourcecode]