原创面向对象版本地cpu资源占用监控脚本(代码片段)

huangxiaocheng huangxiaocheng     2022-11-13     296

关键词:

前期准备:

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()

 

zabbix监控进程的cpu和内存占用量,进程数量

...务进行监控,于是,通过编写脚本获取各个进程占用系统资源的信息,从而使用zabbix采集到这些数据进行特定进程的基础监控。我这主要需要监控的程序如下:nginxredismysqltomcatsentinelmongodbopenfirekafkazookeepertwemproxymycatmemcachedphphttpd... 查看详情

neutron之neutron_openvswitch_agent占用100%cpu资源问题(代码片段)

基于kolla-ansible部署的queens版本,基于dockerstats查看openstack的资源占用,发现neutron_openvswitch_agent一直占用100%CPU资源,这个问题在目前最新的queens和rocky版本已经修复,解决此问题,可以参考下面的步骤:解决办法替换neutron_openvswit... 查看详情

jvm监控工具之jprofiler(代码片段)

...JProfiler是一款Java的性能监控工具。可以查看当前应用的对象、对象引用、内存、CPU使用情况,线程运行情况(阻塞、等待等),同时可以查找哪个对象占用的内存比较多、哪个对象占用CPU处理的时间比较多二、配置通过JProfiler... 查看详情

linux运维之监控cpu和内存的日志工具(代码片段)

...的使用1、阿里云提供了一个监控CPU和内存的脚本,因free版本不同的原因,脚本中的内容有做细微的修改,脚本内容如下:#!/bin/bash#Whenthefreememoryveryless,thisscripttocollectCPU/memoryusageinformationanddmessageinformation.#Version1.0time:2014 查看详情

不光好玩,还实用的shell脚本六剑客(代码片段)

...示:精通技术-独孤九剑编写监控脚本,监控系统资源占用情况脚本存放位置:/shell脚本名称:checksys.sh监控内容:监控服务器CPU、内存使用率情况,并显示系统当前时间及运行时间显示要求:要求中文... 查看详情

关于在zabbix监测脚本中使用ps命令监控进程cpu使用率和内存使用率,获得数据为0的情况描述(代码片段)

...(cpu和内存)使用率高的进程进行监控。过程描述:zabbix版本为2.21,被监控主机操作系统为CentOS6.4。脚本中主要命令如下:percent=0;#通过脚本输入参数process=$1;#通过psaux参数,获取CPU%和MEM%值,使用awk将第四行的MEM%值筛选出来perc... 查看详情

面向对象地分析linux内核设备驱动——用面向对象思想分析vfbframebuffer设备驱动(代码片段)

用面向对象思想分析vfbFramebuffer设备驱动-         内核版本LinuxKernel2.6.34,与Robert.Love的《LinuxKernelDevelopment》(第三版)所讲述的内核版本一样-         源代码下载路径:https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz 查看详情

windowsjavaw进程占用cpu资源100%导致电脑卡顿(代码片段)

...aw是java相关进程,也就是有某个java程序占用了很多cpu资源导致的卡顿找出元凶(以Windows10为例)打开Window任务管理器,对着列表 查看详情

java性能问题排查提效脚本工具(代码片段)

...现各种各样的性能瓶颈。其中java常见瓶颈故障模型有cpu资源瓶颈;文件IO瓶颈;网络IO瓶颈;内存资源瓶颈;资源消耗不高程序本身执行慢等场景模型。如何快速定位分析这些类型瓶颈?工欲善其事必先利其器。 本文主要讲... 查看详情

系统性能监控脚本!(代码片段)

...盘信息,CPU负载#内核信息kernel=$(uname-r)#操作系统版本release=$(cat/etc/redhat- 查看详情

系统性能监控脚本!(代码片段)

...盘信息,CPU负载#内核信息kernel=$(uname-r)#操作系统版本release=$(cat/etc/redhat- 查看详情

如何监控各个线程的资源占用情况?(代码片段)

大家好,我是杂烩君。嵌入式Linux开发中,有时候为了定位问题,需要查看某个进程的各个线程的运行情况。例子multi_thread.c:左右滑动查看全部代码>>>#define _GNU_SOURCE#include <pthread.h>#include <stdio.h>... 查看详情

如何监控各个线程的资源占用情况?(代码片段)

大家好,我是杂烩君。嵌入式Linux开发中,有时候为了定位问题,需要查看某个进程的各个线程的运行情况。例子multi_thread.c:左右滑动查看全部代码>>>#define _GNU_SOURCE#include <pthread.h>#include <stdio.h>... 查看详情

大数据集群资源监控(代码片段)

...触发器4、动作Zabbix仪表盘概述大数据集群监控,包括资源监控和进程监控监控的资源如:内存、CPU、硬盘、硬盘IO…监控的进程如:NameNode、 查看详情

性能监控与优化(代码片段)

...xff1a;吞吐、延时(应用负载视角)CPU、内存(资源视角)性能分析,其实就是找出应用或系统的瓶颈,并设法去避免或者缓解它们,从而更高效地利用系统资源处理更多的请求。这包含了一系列的步骤&... 查看详情

gaussdb(dws)集群中寻找节点cpu占用高的语句

...本文主要通过实例讲解如何通过gs_cpuwatcher.sh脚本寻找CPU占用高语句。本文分享自华为云社区《GaussDB(DWS)gs_cpuwatcher.sh脚本如何寻找CPU占用高语句》,作者:fighttingman。【工具名称】gs_cpuwatcher【功能描述】1.寻找集群内节点占用CPU... 查看详情

java进程监控(代码片段)

...信息7.端口信息8.线程信息9.MXBean使用样例9.1根据pid获取jvm对象9.2根据jvm对象获取jmx服务9.3.使用MXBean代理获取具体管理工具9.4访问MXBeandemo9.6demo?最近项目需要对Java进程,堆栈信息,内存,cpu等资源的消耗进行监控,借鉴了git已 查看详情

python-通过psutil监控系统性能进程(代码片段)

一、安装psutil  pipinstall 二、监控cpu信息importpsutilpsutil.cpu_times()  #获取cpu(逻辑cpu的平均)占用时间的详细信息 psutil.cpu_times(percpu=True)  #获取每个cpu占用时间的详细信息psutil.cpt_times().user &nb 查看详情