前言

共用服务器,有时候自己需要显卡被别人占用了…本脚本可以监控显卡显存情况,如果发现空闲会发送email到邮箱进行提醒。

代码

import pynvml
pynvml.nvmlInit()
import time
import os
#from send_email import send_msgimport smtplib
from email.mime.text import MIMEText
from email.header import Headerdef send_msg(target_email,msg):sender = 'from@runoob.com'receivers = [target_email]  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码message = MIMEText(msg, 'plain', 'utf-8')subject = 'nvidia显卡监控'message['Subject'] = Header(subject, 'utf-8')try:smtpObj = smtplib.SMTP('localhost')smtpObj.sendmail(sender, receivers, message.as_string())print("邮件发送成功")except smtplib.SMTPException:print("Error: 无法发送邮件")def watch_nvidia(nvidia_ids,min_memory):flag = [1 for i in nvidia_ids]for i in nvidia_ids:handle = pynvml.nvmlDeviceGetHandleByIndex(i)meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)print("card {} free memory is {}GB".format(i,meminfo.free * 1.0 /(1024**3)))if meminfo.free * 1.0 /(1024**3) > min_memory:flag[i-1]=0else:flag[i-1]=1if 0 in flag:free_num = 0for i in flag:if i == 0:free_num += 1return free_numelse:print("no free card!")return -1nvidia_ids = [0,1,2,3] # 显卡id
min_memory = 8 # 最小可用显存 GB
while True:flag = watch_nvidia(nvidia_ids,min_memory)if flag >= 4:send_msg("XXXXXXXX@qq.com","{}张显卡空闲,自动启动训练".format(flag))os.system("sh veri.sh") # your commandbreaktime.sleep(10)

运行

保存成py文件在服务器上:

nohup python3 -u watch_nvidia.py > tmp.txt 2>&1 &

本代码仅仅是发邮件提醒,其实可以将send_msg()换成启动你训练任务的命令,这样显卡空闲就自动启动你的训练任务了。

使用python脚本监控服务器显卡使用情况相关推荐

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

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

  2. python统计行号_如何使用Python脚本分析CPU使用情况的?

    用以分析Python中CPU使用情况.CPU分析是通过分析CPU执行代码的方式来测量代码的性能,以此找到代码中的不妥之处,然后处理它们. 接下来我们将看看如何跟踪Python脚本使用时CPU使用情况, ...

  3. graphviz python_工具推荐|我是如何使用Python脚本分析CPU使用情况的?

    在这篇文章中,我将讨论一个工具,用以分析Python中CPU使用情况.CPU分析是通过分析CPU执行代码的方式来测量代码的性能,以此找到代码中的不妥之处,然后处理它们. 接下来我们将重点关注以下几个方 ...

  4. Jython-在JAVA调用Python脚本使用方法详解+示例代码

    目录 前言 一.Jython简介 1.场景 2.下载 二.运用示例 构建Maven项目 构建java,运行python语句: 运行python脚本: 运行带有第三方库的Python脚本 转为jar包 ...

  5. rf运行python脚本报错_GNUradio与USRP折腾指南之环境搭建

    其实这篇文章我想用摩斯电码写,但是由于我不会,所以我只能敲汉字了. 我五月份的时候拿到了两台USRP,是由国内山黑制作的.没想到居然出差一个多月,耽误了很多事情,现在我已经返回到我的家中,在折腾了很长 ...

  6. Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本

    [本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...

  7. python在命令端口运行脚本_扫描端口占用情况的python脚本

    之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况.由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结. 一.python脚本实现扫描 ...

  8. python实时脚本_web 监控 python 脚本

    Redis监控工具,命令和调优 Redis监控工具,命令和调优1.图形化监控 因为要对Redis做性能测试,发现了GitHub上有个python写的RedisLive监控工具评价不错.结果鼓捣了半天, ...

  9. python脚本编写_【PyQGIS】编写用于处理框架(QGIS3)的Python脚本

    可以编写可通过QGIS中的Python控制台运行的独立pyqgis脚本.进行一些调整,即可使您的独立脚本通过处理框架运行.这具有几个优点.首先,获取用户输入和写入输出文件要容易得多,因为Process ...

最新文章

  1. 2017.6.26小学期1
  2. C语言深度剖析书籍学习记录 第六章 函数
  3. 百度Ueditor编辑器wordimage踩坑
  4. odoo 对 many2many one2many的操作
  5. vue设置isactive_Vue 编码风格指南!
  6. 用CIL写程序:从“call vs callvirt”看方法调用
  7. JAVA学习 第5天
  8. 基因组Denovo组装原理、软件、策略及实施
  9. html放大镜小图标,图片放大镜jquery.jqzoom.js使用实例附放大镜图标
  10. 大数据零基础学习并不难,从0到1你需要的不仅仅是努力!
  11. es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章
  12. Tcl/Tk快速入门
  13. NKOI 3590 循环赛日程表
  14. 数据高位和低位的分离
  15. bestcoder 百度之星 1002 列变位法解密
  16. Google Earth Engine(GEE)最全632个数据集在哪里找?文章末含名称!
  17. 利用快手抖音做小吃培训,年入100000+
  18. 如何访问网络上其他计算机,电脑怎么连接别的网络
  19. Notion 出现白屏的处理
  20. if(a>b>c)的一个c语言易错题

热门文章

  1. 转载HTML实体字符
  2. Centos 7 matlab2018a安装及键盘无法输入的问题
  3. 英语大师们讲解英语学习方法
  4. oracle group by 10minite
  5. 2020Java后端开发面试题总结(春招+秋招+社招)
  6. 干货!深度推荐系统的探索与实践
  7. MFC—界面设计(控件自适应,添加背景图,Static背景颜色设置)
  8. 接入微信自定义版交易组件3.0,小程序对接视频号操作说明
  9. 关于“击败”团队目标的思考
  10. 网站关键词优化技巧都有哪些?如何进行优化?