psutil

Posted windyrainy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了psutil相关的知识,希望对你有一定的参考价值。

1.  #查看cpu的信息 

print u"CPU 个数 %s"%psutil.cpu_count() 

print u"物理CPU个数 %s"%psutil.cpu_count(logical=False) 

print u"CPU uptimes" 

print psutil.cpu_times() 

print "" 

 

2.  #查看内存信息 

mem = psutil.virtual_memory()

print u"系统总内存 %s G"%(mem.total/1024/1024/1024) 

print u"系统可用内存 %s G"%(mem.available/1024/1024/1024) 

mem_rate = int(mem.available)/float(mem.total) 

print u"系统内存使用率 %s %%"%int(mem_rate*100) 

 

3.  #交换分区

swapmem = psutil.swap_memory()

print u"交换分区 %s G"%(swapmem.total/1024/1024/1024) 

print u"交换分区可用 %s G"%(swapmem.free/1024/1024/1024) 

print u"交换分区使用率 %s %%"%int(swapmem.percent) 

4.  #系统启动时间 

print u"系统启动时间 %s"

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

 

5.  #系统用户 

users_count = len(psutil.users()) 

users_list = ",".join([ u.name for u in psutil.users()]) 

print u"当前有%s个用户,分别是%s"%(users_count, users_list) 

 

6.  #网卡,可以得到网卡属性,连接数,当前流量等信息 

net = psutil.net_io_counters() 

bytes_sent = ‘{0:.2f} Mb‘.format(net.bytes_recv / 1024 / 1024) 

bytes_rcvd = ‘{0:.2f} Mb‘.format(net.bytes_sent / 1024 / 1024) 

print u"网卡接收流量 %s 网卡发送流量 %s"%(bytes_rcvd, bytes_sent)

nis=psutil.net_io_counters(pernic=True)

print u"网卡 " ,tuple(nis)

 

7.  #进程  进程的各种详细参数 

def show_process(pid):

    try:

        p = psutil.Process(pid)

   

        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()

    except:

        pass

‘‘‘

pids=psutil.pids()

for pid in pids:

    show_process(pid)

‘‘‘

with open (r‘d:\temp\test.txt‘,‘w‘) as f:

    sys.stdout=f

    for proc in psutil.process_iter():

    ‘‘‘

        if proc.name() == "w3wp.exe":

            cpu_threshold=proc.cpu_percent(interval=2)/24

            print proc.name(),proc.create_time(),cpu_threshold

            p.terminate() proc .kill()

            Iterate over all ports this process is listening to

        for con in proc.get_connections():

            con

    ‘‘‘

        pa=proc.as_dict()

        print pa.get(‘name‘),pa.get(‘create_time‘),pa.get(‘pid‘),pa.get(‘status‘),pa.get(‘connections‘),pa.get(‘open_files‘),pa.get(‘cpu_percent‘),pa.get(‘memory_percent‘),pa.get(‘username‘),pa.get(‘num_threads‘)

 

print u"当前进程:",psutil.Process(os.getpid()).cmdline()

 

 

8.  #磁盘 磁盘的使用量等等 

dps=psutil.disk_partitions()

for dp in dps:

    dp

du=psutil.disk_usage(‘/‘)

print u"硬盘总共容量 %s G"%(du.total/1024/1024/1024) 

print u"硬盘可用 %s G"%(du.free/1024/1024/1024)

print u"硬盘已用 %s %%"%(du.percent)

以上是关于psutil的主要内容,如果未能解决你的问题,请参考以下文章

[Python Study Notes]psutil模块

Python自动化运维——系统性能信息模块

Python自动化运维——系统进程管理模块