前期准备:

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资源占用监控脚本的更多相关文章

  1. JVM的CPU资源占用过高问题的排查

    互联网后端架构 https://mp.weixin.qq.com/s/LiqAy2DikbmZzqogb5XRdA JVM的CPU资源占用过高问题的排查 互联网后端架构  今天 上午线上某应用的一台J ...

  2. 一个线上JVM的CPU资源占用过高问题的排查

    原文:https://www.iteye.com/blog/tyrion-2293369 上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题 ...

  3. 【转】关于JVM CPU资源占用过高的问题排查

    http://my.oschina.net/shipley/blog/520062 一.背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作. ? 1 # java -cp  ...

  4. linux--关于JVM CPU资源占用过高的问题排查

    一.背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作. # java -cp ./test-threads.jar com.spiro.Main 二.现象: 通过top命 ...

  5. 历史执行Sql语句性能分析 CPU资源占用时间分析

    SELECT     HIGHEST_CPU_QUERIES.PLAN_HANDLE,     HIGHEST_CPU_QUERIES.TOTAL_WORKER_TIME,     Q.DBID,   ...

  6. postgresql某进程占用cpu资源过高,降不下来

    由于是开发阶段,所以并没有配置postgres的参数,都是使用安装时的默认配置,以前运行也不见得有什么不正常,可是前几天我的cpu资源占用突然升高.查看进程,发现有一个postgres的进程占用CPU ...

  7. 连接postgres特别消耗cpu资源而引发的PostgreSQL性能优化考虑

    由于是开发阶段,所以并没有配置postgres的参数,都是使用安装时的默认配置,以前运行也不见得有什么不正常,可是前几天我的cpu资源占用突然升高.查看进程,发现有一个postgres的进程占用CPU ...

  8. 【原创】大叔经验分享(21)yarn中查看每个应用实时占用的内存和cpu资源

    在yarn中的application详情页面 http://resourcemanager/cluster/app/$applicationId 或者通过application命令 yarn appl ...

  9. Docker技术入门与实战 第二版-学习笔记-5-容器-命令及限制内存与cpu资源

    1.启动容器 启动容器有两种方式: 基于镜像新建一个容器并启动 将在终止状态(stopped)的容器重新启动 1)新建并启动——docker run 比如在启动ubuntu:14.04容器,并输出“H ...

随机推荐

  1. iOS 热门高效开源库集锦,收藏备用

    一.推荐使用的第三方库 1:基于响应式编程思想的ReactiveCocoa 地址:https://github.com/ReactiveCocoa/ReactiveCocoa 2:iOS解耦与组件化开 ...

  2. Activity中recreate方法的应用

    參考两篇文章:http://blog.csdn.net/watermusicyes/article/details/47392949     http://blog.csdn.net/droyon/a ...

  3. 66.app.use(express.static)

    转自:https://blog.csdn.net/u010977147/article/details/60956502

  4. 10.cocos2dx C++为Sprite添加触摸事件监听器

    1.首先头文件定义事件处理的函数原型 private: bool onTouchBegan(Touch* tTouch,Event* eEvent);//手指按下事件 void onTouchMove ...

  5. 讲述ssh服务攻击案例及事件分析

    修改中 本文出自 "李晨光原创技术博客" 博客,谢绝转载!

  6. Android java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/XX/R$id; or its superclasses

    项目开发快到尾声,突然发现之前一个模块莫名其妙的奔溃了,我的内心也是奔溃的.以前一直都是好好的,也没去动过它,为啥会出现这样的问题呢? 下面我会根据自己的理解来看待问题 android是怎么根据id查 ...

  7. Linear Decoders

    Sparse Autoencoder Recap In the sparse autoencoder, we had 3 layers of neurons: an input layer, a hi ...

  8. MD基本语法介绍

    Markdown基本语法介绍 前言 文本编辑器一般用的有富文本编辑器(也就是Word)和md了,但是wold太过于花里胡哨很多功能都用不上,所以就选择md了,简单实用,一对于我来说一般就用标题和列表就 ...

  9. 关于css的入门知识

    css:叠层样式表,给html添加样式的 接下来说一说,在网页中如何嵌套style样式 1.行间样式:把style(*权重1000)作为属性卸载标签里 eg:<p style="col ...

  10. tee---读取标准输入,将内容输出成文件