首页 > 系统相关 >内存CPU监控

内存CPU监控

时间:2024-03-21 16:55:48浏览次数:26  
标签:info 1024 CPU psutil 内存 监控 logger cpu

# -*- coding: utf-8 -*-
"""
--------------------------------
Time        : 2024/3/21 11:50
Author      : Ning
Description : 
    xitong_jiankong.py
    系统内存、cpu使用情况检测
--------------------------------
"""
from loguru import logger
import requests, time, os, sys, re, json
import psutil


class xitong_jiankongs():
    def __init__(self):
        pass

    def __del__(self):
        pass

    # 内存
    def neicun(self):
        """
        以适于人类可读方式显示内存信息。-h与其他命令最大不同是-h选项会在数字后面加上适于人类可读的单位
        free -h
        """
        mem = psutil.virtual_memory()
        # 系统总计内存(单位字节)
        zj = round(float(mem.total) / 1024 / 1024 / 1024, 2)
        # 系统已经使用内存(单位字节)
        ysy = round(float(mem.used) / 1024 / 1024 / 1024, 2)
        # 系统空闲内存(单位字节)
        kx = round(float(mem.free) / 1024 / 1024 / 1024, 2)
        keyong = round(float(mem.available) / 1024 / 1024 / 1024, 2) # 可用内存
        logger.info(f"可用内存:{keyong}")
        # 已使用百分比
        yishiyong = mem.percent
        logger.info(f"内存大小为:{zj}GB,已使用:{ysy}GB,可用:{kx}GB,已使用:{yishiyong}%")

    # CPU
    def cpu(self):
        """
        # 查看物理CPU个数
        cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
        # 查看每个物理CPU中core的个数(即核数)
        cat /proc/cpuinfo| grep "cpu cores"| uniq
        # 查看逻辑CPU的个数
        cat /proc/cpuinfo| grep "processor"| wc -l
        """
        # 使用psutil.cpu_count()获取CPU的逻辑处理器个数
        # psutil.cpu_count(logical=False)获取CPU的物理个数(内核个数)
        cpu_count = psutil.cpu_count()  # 获取CPU 的逻辑个数,默认logical=True
        logical = psutil.cpu_count(logical=False)  # 获取CPU 的物理个数
        shiyonglv = psutil.cpu_percent(interval=1) #CPU使用率
        logger.info(f"CPU配置为:{logical}核,{cpu_count}处理器,使用率:{shiyonglv}%")
        return
        cpu_time = psutil.cpu_times()
        logger.debug(cpu_time)
        logger.info(psutil.cpu_times_percent())
        logger.info(psutil.cpu_stats())
        logger.info(psutil.cpu_freq())
        logger.info(psutil.getloadavg())
        p = psutil.cpu_times(percpu=True)  # 使用cpu_times 方法获取CPU完整信息,需要显示所有逻辑CPU信息,percpu = True可选
        s = psutil.cpu_times().user  # 获取单项数据信息,如用户user 的CPU 时间比
        logger.debug(p)
        logger.debug(s)
        # cpu_percent 以百分比表示当前系统范围内的CPU使用率
        # 当interval> 0.0时比较间隔前后的系统CPU时间(此时将会处于阻塞)
        # 当interval为0.0或None,比较自上次调用或模块导入以来经过的系统CPU时间(不阻塞)
        # 这意味着第一次调用它会返回一个无意义的0.0值,您应该忽略该值 。
        logger.info(psutil.cpu_percent())
        logger.info(psutil.cpu_percent(interval=1))
        logger.info(psutil.cpu_percent(interval=None))
        # 当percpu为True时,返回一个浮点列表,以每个CPU的百分比表示利用率。
        # 列表的第一个元素是指第一个CPU,第二个元素是指第二个CPU,依此类推。列表的顺序在各个呼叫之间是一致的。
        logger.info(psutil.cpu_percent(interval=1, percpu=True))
        # 将会以百分比的形式返回当前系统范围的CPU的利用率。
        logger.info(psutil.cpu_percent(interval=None, percpu=False))



    def main(self):
        self.neicun()
        self.cpu()


xitong_jiankong = xitong_jiankongs()
if __name__ == "__main__":
    xitong_jiankong.main()
    logger.debug("========程序运行结束========")

标签:info,1024,CPU,psutil,内存,监控,logger,cpu
From: https://www.cnblogs.com/ningningqi/p/18087747

相关文章

  • C语言数据在内存中的存续:一篇文章让你秒懂基础!
    JAMES别扣了-CSDN博客......
  • 华硕破晓2拆后壳加内存
    2023年8月左右买的,i5u,16g/512g,3700左右,内存板载8g,单槽8g,能换一个32g的,总共最大到40g。性能一般,屏幕色域45只能办公用,优点是有rj45,机械盘,内存也可加。现在的js,也不是超薄本都不留便捷口换内存硬盘,省成本,增加diy难度,哄抬高配。还可以吹美观,防尘,防水。 拆机都是没么特别注意,......
  • 【面试精讲】JVM 的内存布局和运行原理(附代码)
    【面试精讲】JVM的内存布局和运行原理(附代码)目录一、JVM内存布局1、堆(Heap)2、方法区(MethodArea)3、程序计数器(ProgramCounterRegister)4、虚拟机栈(VMStack)5、本地方法栈(NativeMethodStack)二、JVM运行原理1、类加载机制2、类加载机制详解2.1、 加载阶段2.2、......
  • 安科瑞消防产品监控系统解决方案【电气火灾 消防设备 】
    一、电气火灾监控系统系统概述l针对低压用电环节各回路中的剩余电流、温度和故障电弧等进行实时监测;l侧重点为低压用电环节的安全性,当剩余电流越限时报警输出,以提醒维护人员进行安全检查,防止因漏电引起的火灾发生;l产品适用于商场、宾馆、机场、银行、医院、厂房等场所。......
  • Java 8 内存管理原理解析及内存故障排查实践
    作者:vivo互联网服务器团队- ZengZhibin介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,介绍各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时有一个明确的思路和方向。一、背景Java是一种流行的编程语言,可......
  • 安防监控视频汇聚方案EasyCVR平台调用设备录像不返回视频流的原因排查
    国标GB28181协议EasyCVR安防平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,平台支持7*24小时实时高清视频监控,能同时播放多路监控视频流,视频画面1、4、9、16个可选,支持自定义......
  • 安防监控视频汇聚系统EasyCVR平台如何接入EHOME告警?
    AI视频智能分析/视频监控管理平台EasyCVR能在复杂的网络环境中(专网、内网、局域网、广域网、公网等),支持设备通过4G、5G、WIFI、有线等方式接入,并将设备进行统一集中接入与视频汇聚管理,经平台接入的视频流能实现多格式分发,包括:RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、w......
  • 智慧水务:雨季山区水域水务智能化监控与监测管理方案
    一、方案背景雨季的水务管理对于各区县来说,无疑是一项至关重要的任务。夏季雨水充沛,江河湖泊水位上涨,山洪、上游排水等情况时有发生,给各地的水务设施和防汛工作带来了严峻的挑战。针对区县的各类水域监管场景,需要利用现代智能化技术手段,实时监测各类水域现场,提前预警和采取措施,避......
  • 【CKA模拟题】查找集群中使用内存最高的node节点
    题干Forthisquestion,pleasesetthiscontext(Inexam,diffclustername)kubectlconfiguse-contextkubernetes-admin@kubernetesFindtheNodethatconsumesthemostMEMORYinallcluster(currentlywehavesinglecluster).Then,storetheresultin......
  • 浮点数在内存中的存储及精度问题
    1.引子通过上图,我们发现即使是在我们看来字节大小、实际意义一样的数据,以浮点数、整数两种不同的形式进行存放、取出结果是不同的值,这就说明计算机对浮点数与整数是完全不同的处理方式。毕竟我们都知道计算机是只能识别二进制,因此如何表示小数以及用科学计数法表示数中的点后......