当前位置:首页 > Python教程 > python技巧

1.python系统性能信息模块之psutil模块

 

Psutil(进程和系统实用程序)是一个跨平台的库,用于在Python中检索有关运行进程和系统资源利用率(CPU,内存,磁盘,网络)的信息。它主要用于系统监视,分析和限制系统资源及运行进程的管理。它实现了Linux命令工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,nice,ionice,iostat,iotop,uptime,pidos,tty,tasket,pmap等。psutil目前支持以下平台:linux、Windows、OSX、FreeBSD,OpenBSD、NETBSD、sun Solaris、AIX操作系统。所以是python实现系统运维不可或缺的模块。

官方下载地址:https://pypi.org/

psutil模块安装:https://github.com/giampaolo/psutil

我这里使用windows10系统,pip install psutil安装

具体使用:

一.系统管理

1.查看cpu信息

            psutil.cpu_times()
        

2.显示cpu所有逻辑信息

            psutil.cpu_times(percpu=True)
        

3.查看用户的cpu时间比

            psutil.cpu_times().user
        

4.查看cpu逻辑个数

            psutil.cpu_count()
        

5.查看cpu物理个数

            psutil.cpu_count(logical=False)
        

-----------------------------------------------

6.查看系统内存

            mem = psutil.virtual_memory() //系统内存所有信息
mem.total //系统总计内存
mem.used //系统已经使用内存
mem.free //系统空闲内存

7.获取swap交换内存信息

            psutil.swap_memory()
        

----------------------------------------------

8.读取磁盘参数

磁盘IO信息包括

read_count(读IO数),

write_count(写IO数)

read_bytes(IO写字节数),

read_time(磁盘读时间),

write_time(磁盘写时间)

9.获取分区信息

            psutil.disk_partitions()
        

10.获取指定分区的信息

            psutil.disk_usage(/)   #获取/分区的状态
        

11.获取磁盘总的IO详情

            psutil.disk_io_counters()
        

12.获取单个分区IO个数

            psutil.disk_io_counters(perdisk=True)    #perdisk=True参数获取单个分区IO个数
        

13.读取网络信息

网络信息与磁盘IO信息类似,涉及到几个关键点,包括

byes_sent(发送字节数),

byte_recv=xxx(接受字节数),

pack-ets_sent=xxx(发送字节数),

pack-ets_recv=xxx(接收数据包数),这些网络信息用

获取网络总IO信息

            psutil.net_io_counters() 
        

14.输出网络每个接口信息

            psutil.net_io_counters(pernic=True)     #pernic=True
        

15.获取当前系统用户登陆信息

            psutil.users()
        

16.获取系统开机时间

            psutil.boot_time()  #以linux时间格式返回
        

17.将获取到的时间转换成可视时间

            import datetime
datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S")

二.系统进程管理

1.列出系统所有进程的ID

            psutil.pids()
        

2.获取某一进程的信息,参数为pid

            psutil.Process(pid)
        

3.获取指定进程的名称

            psutil.Process(pid).name()
        

4.获取指定进程的执行命令的路径

            psutil.Process(pid).exe()
        

5.获取指定进程的工作路径的绝对路径

            psutil.Process(pid).cwd()
        

6.获取进程的状态

            psutil.Process(pid).status()
        

7.进程创建时间

            psutil.Process(pid).create_time()
        

8.以可视的方式显示创建进程的时间

            datetime.datetime.fromtimestamp(psutil.Process(pid).create_time()).strftime("%Y-%m-%d %H: %M: %S")
        

9.获取指定进程的uid信息

            psutil.Process(pid).uids()
        

10.获取指定进程的gid信息

            psutil.Process(pid).gids()
        

11.获取指定进程的cpu时间信息,包括user,system

            psutil.Process(pid).cpu_times()
        

12.获取进程cpu的亲和度

            psutil.Process(pid).cpu_affinity()
        

13.进程内存的利用率

            psutil.Process(pid).memory_percent()
        

14.进程内存的rss和vms的值

            psutil.Process(pid).memory_info()
        

15.指定进程的IO数,包括读写IO数及字节数

            psutil.Process(pid).io_counters()
        

16.返回打开进程的socket的namedutples列表,包括(fs,family,laddr)等信息

            psutil.Process(pid).connections()
        

17.指定进程开启的线程数

            psutil.Process(pid).num_threads()
        

-------------------------------------------------------

18.popen类的使用

            
                from
                 subprocess import PIPE
P = psutil.Popen(["/usr/bin/python","-c","print(‘hello‘)"],stdout=PIPE)  执行系统中的命令,非交互,并且输出。
>>> P.name()
‘python‘
>>> P.username()
‘root‘
>>> P.communicate()
(‘hellon‘, None)

 

原文:https://www.cnblogs.com/bmjoker/p/10559872.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐