python代码实现对CPU、GPU资源状态的监控

更加具体的细节,参照前面两篇:
https://blog.csdn.net/suiyueruge1314/article/details/94383265
https://blog.csdn.net/suiyueruge1314/article/details/94402314

以下为代码

import GPUtil
import time
import psutil

stopped_num = 10000000     # (设置一个最大获取次数,防止记录文本爆炸)
delay = 10  # 采样信息时间间隔
Gpus = GPUtil.getGPUs()


def get_gpu_info():
    '''
    :return:
    '''
    gpulist = []
    GPUtil.showUtilization()
    
    # 获取多个GPU的信息,存在列表里
    for gpu in Gpus:
        print('gpu.id:', gpu.id)
        print('GPU总量:', gpu.memoryTotal)
        print('GPU使用量:', gpu.memoryUsed)
        print('gpu使用占比:', gpu.memoryUtil * 100)
        # 按GPU逐个添加信息
        gpulist.append([ gpu.id, gpu.memoryTotal, gpu.memoryUsed,gpu.memoryUtil * 100])

    return gpulist


def get_cpu_info():
    ''' :return:
    memtotal: 总内存
    memfree: 空闲内存
    memused: Linux: total - free,已使用内存
    mempercent: 已使用内存占比
    cpu: 各个CPU使用占比
    '''
    mem = psutil.virtual_memory()
    memtotal = mem.total
    memfree = mem.free
    mempercent = mem.percent
    memused = mem.used
    cpu = psutil.cpu_percent(percpu=True)

    return memtotal, memfree, memused, mempercent, cpu


# 主函数
def main():
    times = 0
    while True:
        # 最大循环次数
        if times < stopped_num:
            # 打印当前时间
            time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
            # 获取CPU信息
            cpu_info = get_cpu_info()
            # 获取GPU信息
            gpu_info = get_gpu_info()
            # 添加时间间隙
            print(cpu_info)
            print(gpu_info,'\n')
            time.sleep(delay)
            times += 1
        else:
            break


if __name__ == '__main__':
    main()

你可能感兴趣的:(深度学习,编程基础,Linux,python代码实现对CPU,GPU资源状态的监控,cpu,GPU监控)