因为最近服务器前端虽然加了负载均衡,但是后端windows主机偶尔还有因为服务进程cpu到99这种情况导致服务不可用,虽然这个不用第一时间处理,但是也需要手工登录进行进程的kill,windows下可以通过dos脚本写个.bat脚本实现这个功能,并通过配置调用这个.bat脚本,但是我试过几次感觉不太适合我
所以通过python写一个脚本并用py2exe转换成.exe程序放在几台windows上,因为不可能每台server都手工部署下python环境。
代码如下:
import psutil
import smtplib
import socket,time
from email.mime.text import MIMEText
hostname=socket.gethostname()
subject=hostname+‘服务器‘+‘ w3wp进程Cpu占比大于95%‘
#监听w3wp的进程cpu占比并杀进程功能函数
def moniter_w3wp():
for proc in psutil.process_iter(): #通过迭代器遍历进程
try:
if proc.name()==‘w3wp.exe‘ and proc.cpu_percent(interval=2)/24>=95:
cpu_threshold=proc.cpu_percent(interval=2)/24 #此处需要除以处理cpu的核心个数
proc_name=proc.name()
c_percent=cpu_threshold
s_cpu_percent=str(c_percent)
#prin