psutil系统性能定时监控

python编程快速上手(持续更新中…)

psutil简介

该模块提供了一些方法可以用来做系统监控,性能分析和进程管理等。它目前可以支持Linux,Windows,OSX,Sun Solaris,FreeBSD等系统。

psutil三方模块,可实现top,isof,netstat,ipconfig,who,kill,free,nice,^

psutil安装(windows python控台)

linux:安装
1、进入安装目录:python/script cmd

pip3 install psutil 国外慢,需安装国内
pip3 install psutil -i https://pypi.tuna.tsinghua.edu.cn/simple

2、psutil版本查看
python3
import psutil
psutil.version_info

3、Pycharm中安装第三方库 psutil(windows)
在这里插入图片描述

常见功能

# 导入psutil
import psutil
from datetime import date

# 获取cpu信息
print('获取cpu信息')

# ### 获取cpu核数
print(psutil.cpu_count()) # 8

# ### 获取cpu核数(物理)
print(psutil.cpu_count(logical=False)) # 4

# ### 使使用率
# print(psutil.cpu_percent())

# ### 使使用率(刷新时间间隔:0.5)
print(psutil.cpu_percent(interval=0.5))

# ### 使使用率(刷新时间间隔:0.5) 每一核
print(psutil.cpu_percent(interval=0.5, percpu=True))


# 获取内存信息
print('获取内存信息')

# ### 内存的整体信息
print(psutil.virtual_memory())

# ### 内存使用率
print(psutil.virtual_memory().total)
print(psutil.virtual_memory().percent)


# 获取硬盘信息
print('获取硬盘信息')

# ### 获取硬盘分区信息
print(psutil.disk_partitions())

# ### 获取指定硬盘分区信息
print(psutil.disk_usage("C:\\")) # linux / 根目录

# ### 获取硬盘使用率
print(psutil.disk_usage("C:\\").percent) # linux / 根目录


# 获取网络信息
print('获取网络信息')

# ### 获取收到的数据包数量
print(psutil.net_io_counters().bytes_recv)

# ### 获取发送的数据包数量
print(psutil.net_io_counters().bytes_sent)


# 获取开机时间
print(psutil.boot_time()) # 1970年到现在秒数
# 格式化时间
print(date.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S')) # 1970年到现在秒数

系统性能定时监控(案例)

效果
在这里插入图片描述

# 导入psutil
import psutil
import datetime

# 2、定义变量保存CPU的使用率
cpu_per = psutil.cpu_percent(interval=0.5)

# 3、定义变量保存内存信息
memory_info = psutil.virtual_memory()

# 4、定义变量保存硬盘的信息
disk_info = psutil.disk_usage("C:\\")

# 5、定义变量保存网络的信息
net_info = psutil.net_io_counters()

# 获取系统当前时间
current_time = datetime.datetime.now().strftime("%F %T")

# 6、拼接字符串显示
log_str = "|-------------------|------------|-------------|-------------|----------------------------|\n"
log_str += "|      监控时间      |  CPU使用率  |   内存使用率  |   硬盘使用率  |          网络收发量          |\n"
log_str += "|                   | (共%d核CPU)  |  (总计%dG内存) | (总计%dG硬盘)|                            |\n" % (psutil.cpu_count(logical=False), memory_info.total/1024/1024/1024, disk_info.total/1024/1024/1024)
log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
log_str += "|%s|    %s%%   |    %s%%    |    %s%%    |   收:%s/发:%s  |\n" % (current_time, cpu_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
print(log_str)

# 7、保存监控信息到日志文件
f = open("log.txt", "a")
f.write(log_str + "\n\n")
f.close()

系统性能定时监控(升级)

# 导入psutil
# 循环,每隔一段时间进行一次
import psutil
import datetime

# 定义了linux_monitor() 实现监控
def linux_monitor(time):
    # 2、定义变量保存CPU的使用率
    # 每隔5秒
    cpu_per = psutil.cpu_percent(interval=time)

    # 3、定义变量保存内存信息
    memory_info = psutil.virtual_memory()

    # 4、定义变量保存硬盘的信息
    disk_info = psutil.disk_usage("C:\\")

    # 5、定义变量保存网络的信息
    net_info = psutil.net_io_counters()

    # 获取系统当前时间
    current_time = datetime.datetime.now().strftime("%F %T")

    # 6、拼接字符串显示
    log_str = "|-------------------|------------|-------------|-------------|----------------------------|\n"
    log_str += "|      监控时间      |  CPU使用率  |   内存使用率  |   硬盘使用率  |          网络收发量          |\n"
    log_str += "|                   | (共%d核CPU)  |  (总计%dG内存) | (总计%dG硬盘)|                            |\n" % (
    psutil.cpu_count(logical=False), memory_info.total / 1024 / 1024 / 1024, disk_info.total / 1024 / 1024 / 1024)
    log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
    log_str += "|%s|    %s%%   |    %s%%    |    %s%%    |   收:%s/发:%s  |\n" % (
    current_time, cpu_per, memory_info.percent, disk_info.percent, net_info.bytes_recv, net_info.bytes_sent)
    log_str += "|-------------------|------------|-------------|-------------|----------------------------|\n"
    print(log_str)

    # 7、保存监控信息到日志文件
    f = open("log.txt", "a")
    f.write(log_str + "\n\n")
    f.close()


# main() 启动定时监控
def main():
    """程序的入口"""
    while True:
        linux_monitor(5)


# 启动
if __name__ == '__main__':
    main()

系统性能定时监控(终端运行)

第一步,文件增加 可执行权限 chmod u+x xxxx.py
第二步,告诉终端代码使用 python解释器执行
#!/home/demo/bin/python3
第三步, 进入虚拟环境运行
workon 1-basics-python3
第四步,./xxxx.py

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值