码迷,mamicode.com
首页 > 其他好文 > 详细

psutil模块基础学习

时间:2017-11-09 15:46:39      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:psutil

平时的运维中,我需要查看cpu的使用率,还有逻辑个数,物理个数,还有内存,磁盘,进程等,这里我使用psutil模块来做一个信息查看的学习

1-CPU相关的

cpu使用率:

>>> psutil.cpu_percent()

0.8

当前使用率是0.8%,这个0.8是用户空间使用cpu时间比加上系统内核空间使用cpu时间比还有其他的硬中断软中断等

查看cpu详细使用情况:

>>> psutil.cpu_times_percent()

scputimes(user=0.1, nice=0.0, system=0.4, idle=99.5, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)

>>> psutil.cpu_times_percent().user #单独查看用户空间cpu使用时间比

0.2

>>> psutil.cpu_times_percent().system #单独查看内核空间cpu使用时间比

0.6

>>>

cpu逻辑个数(核数):

>>> psutil.cpu_count()

1

cpu物理个数:

>>> psutil.cpu_count(logical=False)

1

当然cpu还有很多信息可以让我们利于观察系统资源使用情况,我这里就看着三个就够了.

2-内存相关的

查看内存信息:

>>> psutil.virtual_memory()

svmem(total=1025363968, available=702746624, percent=31.5, used=162177024, free=140103680, active=375029760, inactive=331767808, buffers=1777664, cached=721305600, shared=6959104)

查看物理内存总量信息:

>>> psutil.virtual_memory().used

162177024

>>> psutil.virtual_memory().total

1025363968

查看用户使用内存信息:

>>> psutil.virtual_memory().used

162177024

查看空闲内存信息:

>>> psutil.virtual_memory().free

140103680

查看交换分区信息(虚拟内存):

>>> psutil.swap_memory()

sswap(total=2147479552, used=40960, free=2147438592, percent=0.0, sin=0, sout=40960)

例子1:

>>> print("""当前系统内存为%sM,用户使用为%sM,空闲为%sM""" %(int(psutil.virtual_memory().total/1024/1024),int(psutil.virtual_memory().used/1024/1024),int(psutil.virtual_memory().free/1024/1024)))

当前系统内存为977M,用户使用为153M,空闲为134M

3-磁盘相关的

查看磁盘分区情况:

>>> psutil.disk_partitions()

[sdiskpart(device=‘/dev/mapper/centos-root‘, mountpoint=‘/‘, fstype=‘xfs‘, opts=‘rw,seclabel,relatime,attr2,inode64,noquota‘), sdiskpart(device=‘/dev/sda1‘, mountpoint=‘/boot‘, fstype=‘xfs‘, opts=‘rw,seclabel,relatime,attr2,inode64,noquota‘)]

这里注意,结果是以列表的形式显示了当前系统磁盘分区的,每一个分区为一个列表元素

查看分区使用情况:

>>> psutil.disk_usage(‘/‘)

sdiskusage(total=18746441728, used=1604726784, free=17141714944, percent=8.6)

>>> print("当前系统磁盘为%sG" % int(psutil.disk_usage(‘/‘).total/1024/1024/1024))

当前系统磁盘为17G

>>> print("当前磁盘使用率为%.2f%%" % psutil.disk_usage(‘/‘).percent)

当前磁盘使用率为8.60%

注意:输出%要注意格式

4-其他相关的

系统启动时间:

当前系统登录用户:

>>> psutil.users()

[suser(name=‘root‘, terminal=‘pts/0‘, host=‘root‘, started=1510173184.0, pid=34890), suser(name=‘root‘, terminal=‘pts/1‘, host=‘root‘, started=1510174976.0, pid=35059), suser(name=‘root‘, terminal=‘pts/2‘, host=‘root‘, started=1510164736.0, pid=34432), suser(name=‘root‘, terminal=‘pts/3‘, host=‘root‘, started=1510174976.0, pid=35078)]

这里显示的当前有四个用户登录到系统

查看进程PID:

>>> psutil.pids()

[1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 9..............35102, 35103]

所有的pid都会显示在列表中,通过这些pid,我们还可以查看进程的名称,进程的用户等

>>> psutil.Process(1).name() #查看进程名称

‘systemd‘

注意,这里的Process是P大写字母

>>> psutil.Process(1).username() #查看进程用户名

‘root‘

注意,这里的Process是P大写字母

>>> psutil.Process(1).cmdline() #查看进程路径

[‘/usr/lib/systemd/systemd‘, ‘--system‘, ‘--deserialize‘, ‘21‘]

>>> psutil.Process(1).status() #查看进程状态

‘sleeping‘

>>> psutil.Process(244).suspend() #挂起进程

>>> psutil.Process(244).kill() #杀死进程

下面我写一个检查python进程是否存在,如果存在就返回进程的pid

[root@python home]# vi 2.py

import psutil

for ppid in psutil.pids():

       if psutil.Process(ppid).name() == ‘python‘:

               print("Python程序已经开启,进程pid为:%s" % ppid)

[root@python home]# python 2.py

Python程序已经开启,进程pid为:34512

Python程序已经开启,进程pid为:35093

Python程序已经开启,进程pid为:35169

psutil的简单学习,就到这里,还有很多都没有学到,有时间再学了.


PS:个人之见,如果有错误的地方,欢迎大家指正

本文出自 “一路向上” 博客,请务必保留此出处http://zhenghong.blog.51cto.com/1676992/1980256

psutil模块基础学习

标签:psutil

原文地址:http://zhenghong.blog.51cto.com/1676992/1980256

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!