Python监控服务器显卡使用情况程序

说明:该程序能够实时监控服务器的显卡运行情况,当达到设定的条件时,会发送邮件进行通知。建议打开微信邮件助手功能,可以实时收到通知信息。
改代码需要发送邮件部分,按要求写入自己的信息即可。

import pynvml
import time
import sys
import smtplib
from email.mime.text import MIMEText
from email.header import Header
pynvml.nvmlInit()

def send_msg(target_add, msg):
  # 发信方的信息:发信邮箱,QQ邮箱授权码
  from_addr = ''
  password = ''
  # 收信方邮箱
  # 发信服务器
  smtp_server = 'smtp.163.com'
  # server = smtplib.SMTP_SSL()
  server=smtplib.SMTP_SSL('smtp.163.com')
  server.connect(smtp_server,465)
  server.login(from_addr, password)
  # 发送邮件
  message = MIMEText(msg, 'plain', 'utf-8')
  server.sendmail(from_addr, target_add, message.as_string())
  # 关闭服务器
  server.quit()
  
  
def watch_nvidia_new(nvidia_ids):
  flag = [1 for i in nvidia_ids]
  free_space_list = [0, 0]

  for i in nvidia_ids:
    handle = pynvml.nvmlDeviceGetHandleByIndex(i)
    meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
    free_space = meminfo.free * 1.0 /(1024**3)
    free_space_list[i] = free_space
    print("Card {} free memory is {:2f}GB".format(i,free_space))
  return free_space_list


nvidia_ids = [0,1] # 显卡id

min_memory = 5

while True:
  free_space_list = watch_nvidia_new(nvidia_ids)
  for i in free_space_list:
      if i > min_memory:
            send_msg("目标邮箱","系统检测到有一张显卡空闲{:.2f}GB, 未设置自动启动指令,\n".format(i)
                     + "请上线查看原因并重新启动!"
                     +"为防止邮件打扰,本检测程序即将自动停止!")
            print("Send email success!")
            sys.exit(0)
      else:
            print("The graphics card is working normally. The program will retest after 60 seconds!")       
  time.sleep(60)
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值