按关键词阅读:
文章插图
实际操作:
import psutil#获取当前所有进程 pids = psutil.pids() print(pids)#获取ID为pids[0]的进程, process = psutil.Process(pids[0]) print(process)输出结果:
[0, 4, 120, 440, 624, 736, 744, ... ...] psutil.Process(pid=0, name='System Idle Process', started='19:55:14')结果中可以看到 , 进程的ID为0 ,名称为'System Idle Process';我们再来看Process对象属性(不同系统方法可能不同):???????
import psutil #主要信息:进程名 , 状态 , 创建时间 , CPU内存使用情况 , 线程数 p = psutil.Process(0) print('进程名称:', p.name()) #进程名称 print('运行状态:', p.status()) #当前状态 print('创建时间:', p.create_time()) #创建时间 print('CPU信息:', p.cpu_times()) #进程的cpu时间信息,主要:user,system运行时间 print('内存信息:', p.memory_percent())#进程内存利用率 print('内存使用:', p.memory_info()) #进程内存使用详情 print('IO信息:', p.io_counters() ) #进程的IO信息,包括读写IO数字及参数 print('线程数:', p.num_threads() ) #进程开启的线程数输出结果如下:
进程名称: System Idle Process 运行状态: running 创建时间: 1543290248.0 CPU信息: pcputimes(user=0.0, system=367377.99999999994, children_user=0.0, children_system=0.0) 内存信息: 4.969912151832804e-05 内存使用: pmem(rss=4096, vms=0, num_page_faults=2, peak_wset=4096, wset=4096, peak_paged_pool=0, paged_pool=0, peak_nonpaged_pool=0, nonpaged_pool=0, pagefile=0, peak_pagefile=0, private=0) IO信息: pio(read_count=0, write_count=0, read_bytes=0, write_bytes=0, other_count=0, other_bytes=0) 线程数: 4p.memory_info()返回pmem对象 , 其中rss为进程实际使用内存大小;
二、python获取磁盘使用、GPU信息、根据进程号获取进程信息 , pynvml 获取GPU信息 , psutil 获取进程信息,系统信息等示例(另一台电脑)1、代码:import pynvml#获取GPU信息import psutil#获取进程信息,系统信息等 class Utils(object):# 获取硬盘信息@staticmethoddef get_disk_info(path):G = 1024*1024diskinfo = psutil.disk_usage(path)# 将字节转换成Ginfo = "path:%stotal:%dG,used:%dG,free:%dG,used_percent:%d%%"%(path,diskinfo.total/G, diskinfo.used/G, diskinfo.free/G, diskinfo.percent)return info# 获取硬盘分区@staticmethoddef get_disk_partitions():return psutil.disk_partitions()# 获取当前所有进程@staticmethoddef get_current_process_pid():pids = psutil.pids()return pids# 获取进程信息@staticmethoddef get_process_info(pid):#主要信息:进程名 , 状态 , 创建时间 , CPU内存使用情况 , 线程数p = psutil.Process(pid)# print('进程名称:', p.name())#进程名称# print('运行状态:', p.status())#当前状态# print('创建时间:', p.create_time())#创建时间# print('CPU信息:',p.cpu_times())#进程的cpu时间信息,主要:user,system运行时间# print('内存信息:', p.memory_percent())#进程内存利用率# print('内存使用:', p.memory_info())#进程内存使用详情# print('IO信息:', p.io_counters())#进程的IO信息,包括读写IO数字及参数# print('线程数:', p.num_threads())#进程开启的线程数info = "name:{}pid:{}\nstatus:{}\ncreate_time:{}\ncpu_times:{}\nmemory_percent:{}\nmemory_info:{}\nio_counters:{}\nnum_threads:{}".format(p.name(),pid, p.status(), p.create_time(), p.cpu_times(), p.memory_percent(), p.memory_info(), p.io_counters(), p.num_threads())return infoclass GpuInfo(object):def __init__(self):#初始化pynvml.nvmlInit()def get_gpu_device(self):deviceCount = pynvml.nvmlDeviceGetCount()gpu_list = []for i in range(deviceCount):handle = pynvml.nvmlDeviceGetHandleByIndex(i)print("GPU", i, ":", pynvml.nvmlDeviceGetName(handle))gpu_list.append(i)return gpu_listdef get_free_rate(self, gpu_id):handle = pynvml.nvmlDeviceGetHandleByIndex(gpu_id)info = pynvml.nvmlDeviceGetMemoryInfo(handle)free_rate = int((info.free / info.total) * 100)return free_ratedef get_gpu_info(self, gpu_id):handle = pynvml.nvmlDeviceGetHandleByIndex(gpu_id)info = pynvml.nvmlDeviceGetMemoryInfo(handle)M = 1024*1024gpu_info = "id:{}total:{}M free:{}Mused:{}M free_rate:{}%".format(gpu_id, info.total/M, info.free/M, info.used/M, self.get_free_rate(gpu_id))return gpu_infodef release(self):#最后要关闭管理工具pynvml.nvmlShutdown()if __name__ == "__main__":print("磁盘信息----------------------------")devs = Utils.get_disk_partitions()for dev in devs:print(Utils.get_disk_info(dev.device))print(Utils.get_disk_info("/home"))print(Utils.get_disk_info("/data"))print("进程信息----------------------------")# # 需要管理员权限# pids = Utils.get_current_process_pid()# for pid in pids:#print(Utils.get_process_info(pid))print(Utils.get_process_info(6403))print("GPU信息----------------------------")gpu_info = GpuInfo()gpu_devices = gpu_info.get_gpu_device()print("GPU使用信息----------------------------")for gpuid in gpu_devices:print(gpu_info.get_gpu_info(gpuid))gpu_info.release()
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J2N042020.html
标题:Python获取磁盘使用信息,python获取GPU信息( 三 )