# .psutil是一个跨平台库能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。 # 它主要用来做系统监控,性能分析,进程管理。 # 它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、 # iostat、iotop、uptime、pidof、tty、taskset、pmap等。 # 目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统. import psutil # CPU # print(psutil.cpu_times()) # 获取cpu逻辑和物理个数,默认logical值为True 。 #CPU逻辑个数 # print(psutil.cpu_count()) #CPU物理个数 # print(psutil.cpu_count(logical=False)) # 获取cpu的使用率: # print(psutil.cpu_percent()) # print(psutil.cpu_percent(1)) # 内存信息 # print(psutil.virtual_memory()) # print(list(psutil.virtual_memory())) # print(psutil.virtual_memory().total) # print(psutil.virtual_memory().available) # print(psutil.virtual_memory().percent) # print(psutil.virtual_memory().used) # print(psutil.virtual_memory().free) # 磁盘信息 # 磁盘信息主要有两部分,一个是磁盘的利用率,一个是io,他们分别可以通过disk_usage和disk_io_counters方法获取。 # print(psutil.disk_partitions()) # print(psutil.disk_usage('C:\')) # 默认disk_io_counters方法获取的是硬盘总的io数和读写信息,如果需要获取单个分区的io和读写信息加上"perdisk=True"参数。 # print(psutil.disk_io_counters()) # print(psutil.disk_io_counters(perdisk=True)) # 网络信息: # 网络io和磁盘io使用方法差不多,主要使用net_io_counters方法,如果需要获取单个网卡的io信息,加上pernic=True参数。 # 获取网络总的io情况 # print(psutil.net_io_counters()) # 获取网卡的io情况 # print(psutil.net_io_counters(pernic=True)) # for i,j in psutil.net_io_counters(pernic=True).items(): # if i == '本地连接': # print(j) # 其他系统信息: # 获取开机时间 # print(psutil.boot_time()) # import datetime # print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")) # 查看系统全部进程号 # print(psutil.pids()) # p = psutil.Process(6680) # p.name() #进程名 # p.exe() #进程的bin路径 # p.cwd() #进程的工作目录绝对路径 # p.status() #进程状态 # p.create_time() #进程创建时间 # # p.uids() #进程uid信息 # # p.gids() #进程的gid信息 # p.cpu_times() #进程的cpu时间信息,包括user,system两个cpu信息 # p.cpu_affinity() #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好 # p.memory_percent() #进程内存利用率 # p.memory_info() #进程内存rss,vms信息 # p.io_counters() #进程的IO信息,包括读写IO数字及参数 # # p.connectios() #返回进程列表 # p.num_threads() #进程开启的线程数 # 听过psutil的Popen方法启动应用程序,可以跟踪程序的相关信息 # from subprocess import PIPE # p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE) # p.name() # p.username() # 系统用户 # users_count = len(psutil.users())
https://psutil.readthedocs.io/en/latest/#windows-services