【原创】面向对象版本地CPU资源占用监控脚本
前期准备:
1.python2.7环境
2.相关第三方库下载安装
脚本工作过程:
1.根据输入的进程名判断进程是否存在,如果不存在则进行等待,直到检测到进程PID,中途进程退出抛出异常,键入enter后等待进程重启
实际作用:
1.可以重复监控某一进程CPU资源占用情况,结果同步到本地D盘文本保存
#coding=utf-8
import psutil
import sys
import time
import win32com.client class Cpu():
def __init__(self,name):
self.name=name def pid(self):
for proc in psutil.process_iter():
pinfo = proc.as_dict(attrs=['pid', 'name'])
# key_pid = list(pinfo)[0]
key_pid_value = list(pinfo.values())[0]
# key_name = list(pinfo)[1]
key_name_value = list(pinfo.values())[1] if key_name_value == self.name:
return key_pid_value def get_cpu_info(self):
# reload(sys)
# sys.setdefaultencoding('utf-8')
filename = 'D:\\' + 'CPU_usage_result' + str(int(time.time())) + ".txt"
text = open(filename, 'w')
while True:
cpucount = psutil.cpu_count(logical=True)
process = psutil.Process(int(PID))
cpupercent = process.cpu_percent(interval=2)
cpu = int(cpupercent / cpucount)
if cpu <= 50:
print 'cpu usage:%s%%' % cpu + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
text.write('cpu usage:%s%%' % cpu + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+'\n')
text.flush()
else:
print 'cpu usage:%s%%,too high' % cpu + ' ' + time.strftime('%Y-%m-%d %H:%M:%S',
time.localtime())
text.write('cpu usage:%s%%' % cpu + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+'\n')
text.flush()
# text.close() def CheckProcExistByPN(self):
try:
WMI = win32com.client.GetObject('winmgmts:')
processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % self.name)
except Exception, e:
print "error : ", e
if len(processCodeCov) > 0:
# print name + " exist"
return 1
else:
# print name + " is not exist"
return 0 if __name__=='__main__':
ProcessName = raw_input('ProcessName: ')
reslut=Cpu(ProcessName)
while True:
try:
if reslut.CheckProcExistByPN() == 1:
PID = reslut.pid()
print 'Process %s' % PID +' '+'result in D:\\CPU_usage_result.txt'
time.sleep(1)
print "-------------------------------------------------"
print reslut.get_cpu_info()
else:
print 'Wait for process start'+ ' ' +time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
time.sleep(1) except Exception, e:
print "Quit : ", e
raw_input()
【原创】面向对象版本地CPU资源占用监控脚本的更多相关文章
- JVM的CPU资源占用过高问题的排查
互联网后端架构 https://mp.weixin.qq.com/s/LiqAy2DikbmZzqogb5XRdA JVM的CPU资源占用过高问题的排查 互联网后端架构 今天 上午线上某应用的一台J ...
- 一个线上JVM的CPU资源占用过高问题的排查
原文:https://www.iteye.com/blog/tyrion-2293369 上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题 ...
- 【转】关于JVM CPU资源占用过高的问题排查
http://my.oschina.net/shipley/blog/520062 一.背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作. ? 1 # java -cp ...
- linux--关于JVM CPU资源占用过高的问题排查
一.背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作. # java -cp ./test-threads.jar com.spiro.Main 二.现象: 通过top命 ...
- 历史执行Sql语句性能分析 CPU资源占用时间分析
SELECT HIGHEST_CPU_QUERIES.PLAN_HANDLE, HIGHEST_CPU_QUERIES.TOTAL_WORKER_TIME, Q.DBID, ...
- postgresql某进程占用cpu资源过高,降不下来
由于是开发阶段,所以并没有配置postgres的参数,都是使用安装时的默认配置,以前运行也不见得有什么不正常,可是前几天我的cpu资源占用突然升高.查看进程,发现有一个postgres的进程占用CPU ...
- 连接postgres特别消耗cpu资源而引发的PostgreSQL性能优化考虑
由于是开发阶段,所以并没有配置postgres的参数,都是使用安装时的默认配置,以前运行也不见得有什么不正常,可是前几天我的cpu资源占用突然升高.查看进程,发现有一个postgres的进程占用CPU ...
- 【原创】大叔经验分享(21)yarn中查看每个应用实时占用的内存和cpu资源
在yarn中的application详情页面 http://resourcemanager/cluster/app/$applicationId 或者通过application命令 yarn appl ...
- Docker技术入门与实战 第二版-学习笔记-5-容器-命令及限制内存与cpu资源
1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“H ...
随机推荐
- iOS 热门高效开源库集锦,收藏备用
一.推荐使用的第三方库 1:基于响应式编程思想的ReactiveCocoa 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:iOS解耦与组件化开 ...
- Activity中recreate方法的应用
參考两篇文章:http://blog.csdn.net/watermusicyes/article/details/47392949 http://blog.csdn.net/droyon/a ...
- 66.app.use(express.static)
转自:https://blog.csdn.net/u010977147/article/details/60956502
- 10.cocos2dx C++为Sprite添加触摸事件监听器
1.首先头文件定义事件处理的函数原型 private: bool onTouchBegan(Touch* tTouch,Event* eEvent);//手指按下事件 void onTouchMove ...
- 讲述ssh服务攻击案例及事件分析
修改中 本文出自 "李晨光原创技术博客" 博客,谢绝转载!
- Android java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/XX/R$id; or its superclasses
项目开发快到尾声,突然发现之前一个模块莫名其妙的奔溃了,我的内心也是奔溃的.以前一直都是好好的,也没去动过它,为啥会出现这样的问题呢? 下面我会根据自己的理解来看待问题 android是怎么根据id查 ...
- Linear Decoders
Sparse Autoencoder Recap In the sparse autoencoder, we had 3 layers of neurons: an input layer, a hi ...
- MD基本语法介绍
Markdown基本语法介绍 前言 文本编辑器一般用的有富文本编辑器(也就是Word)和md了,但是wold太过于花里胡哨很多功能都用不上,所以就选择md了,简单实用,一对于我来说一般就用标题和列表就 ...
- 关于css的入门知识
css:叠层样式表,给html添加样式的 接下来说一说,在网页中如何嵌套style样式 1.行间样式:把style(*权重1000)作为属性卸载标签里 eg:<p style="col ...
- tee---读取标准输入,将内容输出成文件