【原创】面向对象版本地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 ...
随机推荐
- mkdi---创建目录。
mkdir命令用来创建目录.该命令创建由dirname命名的目录.如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录:如果给出了一个已经存在的路径,将会在该目录下创建一个 ...
- Linux局域网登陆响应时间过长
在局域网中,使用ssh登陆到其他机器上时,有时会出现等待10s以上才能正常登陆的问题. 原因: Linux默认使用dns解析登陆IP,但是在局域网,并没有dns服务器,而且机器上也没有添加 IP与域名 ...
- 零基础学python-7.6 字符串格式化表达式
字符串格式化同意在一个单个的步骤中对一个字符串运行多个特定类型的替换 特别是给用户提示的时候,格式化很方便 实现方法: 1.格式化表达式,类似于c语音的printf 在表达式中,我们使用%二进制操作符 ...
- asp.net 站点在Apache下的配置,就这么简单
asp.net 站点在Apache下的配置,就这么简单 # # Virtual Hosts # # If you want to maintain multiple domains/hostnames ...
- EC2 开启 IPV6 访问 和 禁止重启后自动分配IP地址
EC2 开启 IPV6 访问 和 禁止重启后自动分配IP地址进入 VPC 控制台,对当前 VPC 添加 IPV6 CIDR 块对该 VPC 的路由表进行修改,添加其它路由,第一个空填::/0,第二个空 ...
- 61.node.js开发错误——Error: Connection strategy not found
转自:https://blog.csdn.net/fd214333890/article/details/53457145
- 基于x86平台的Solaris安装视频(时长25分钟)
基于X86平台的Solaris安装视频 本视频分为三个部分分别在附件中1.2.3(第三部分附件较大请在这里下载:http://down.51cto.com/data/263614) ,远程连接的视频由 ...
- BZOJ 高精度开根 JAVA代码
晓华所在的工作组正在编写一套高精度科学计算的软件,一些简单的部分如高精度加减法.乘除法早已写完了,现在就剩下晓华所负责的部分:实数的高精度开m次根.因为一个有理数开根之后可能得到一个无理数,所以这项工 ...
- 【Codeforces Round #457 (Div. 2) C】Jamie and Interesting Graph
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 找比n-1大的最小的素数x 1-2,2-3..(n-2)-(n-1)长度都为1 然后(n-1)-n长度为(x-(n-2)) 然后其他 ...
- Java数据传递实验
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在开发过程中,我们经常会遇到对象传递的问题,有时仅仅传递数据,有时却要实现数据同步:这时,就要分清两 ...