标签: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
原文地址:http://zhenghong.blog.51cto.com/1676992/1980256