Python psutil模块获取系统性能信息

Psutil可以获取系统运行的进程、CPU、内存、磁盘、网络等信息,主要应用于系统监控,分析和限制系统资源以及进程的管理,它实现了类似一下ps 、top、lsof、pmap、who、iotop等命令功能,并且跨平台支持32、64位操作系统,还支持2.4到3.x版本的python版本,听起来似乎很厉害,但是我在设计自动化系统的时候 目前还没考虑使用它,给每台机器多安装一个模块,也就只能想想了..

project address[一般都打不开]:http://code.google.com/p/psutil/pypi:https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gzpip install:    liushadeMacBook-Pro:~ LiuSha$ sudo pip install psutil==2.1.3import and example:    >>> import psutil    >>> memory = psutil.virtual_memory()    >>> memory.total    17179869184L    >>> memory.used    15732174848L

获取CPU信息:

    一般会尝试获取Usertime(执行用户进程的时间百分比),systemtime(执行内核进程和中断的时间百分比),waitIO(由于IO等待而使CPU处于idle(空闲)状态的时间百分比),idle(CPU处于idle状态的时间百分比)。##当percpu为真时会显示CPU完整的信息,默认第一个元素指第一个逻辑CPU##>>> for i in psutil.cpu_times(percpu=True):print i...scputimes(user=4672.97, nice=0.0, system=16154.56, idle=31087.05)scputimes(user=303.72, nice=0.0, system=1676.6, idle=49927.39)scputimes(user=3362.64, nice=0.0, system=17377.82, idle=31171.11)scputimes(user=321.11, nice=0.0, system=2027.21, idle=49558.53)scputimes(user=3346.38, nice=0.0, system=17404.77, idle=31158.75)scputimes(user=318.58, nice=0.0, system=2003.02, idle=49584.41)scputimes(user=3357.65, nice=0.0, system=17426.36, idle=31124.54)scputimes(user=318.93, nice=0.0, system=2000.95, idle=49585.29)>>> psutil.cpu_times()scputimes(user=16002.82, nice=0.0, system=76071.68, idle=323264.16)##获取某一项信息##>>> psutil.cpu_times().idle325630.92###所谓的8核###>>> psutil.cpu_count()8###获取CPU的物理个数###>>> psutil.cpu_count(logical=False)4

获取内存信息

###前面其实就小试了一下了###>>> memory = psutil.virtual_memory()##完整内存信息##>>> memorysvmem(total=17179869184L, available=7956168704L, percent=53.7, used=15787773952L, free=1096970240L, active=7585222656L, inactive=6859198464L, wired=1343352832L)##内存总数##>>> memory.total17179869184L##swap分区信息##>>> memory = psutil.swap_memory()>>> memorysswap(total=1073741824L, used=84148224L, free=989593600L, percent=7.8, sin=11455021056L, sout=3723264L)

获取磁盘信息

##完整的磁盘信息如下##>>> psutil.disk_partitions()[sdiskpart(device='/dev/disk1', mountpoint='/', fstype='hfs', opts='rw,local,rootfs,dovolfs,journaled,multilabel'), sdiskpart(device='/dev/disk0s4', mountpoint='/Volumes/BOOTCAMP', fstype='ntfs', opts='ro,local,ignore-ownership,multilabel')]##获取 '/' 分区的使用情况##>>> psutil.disk_usage('/')sdiskusage(total=184000004096, used=86580862976, free=97156997120, percent=47.1)##获取磁盘总的IO个数##>>> psutil.disk_io_counters()sdiskio(read_count=514387L, write_count=740355L, read_bytes=22373484544L, write_bytes=36836678144L, read_time=341052L, write_time=296262L)##获取耽搁分区的IO个数(这的per和前面的一样,老外init方法里是这么写的)##>>> psutil.disk_io_counters(perdisk=True){'disk0': sdiskio(read_count=514390L, write_count=740714L, read_bytes=22373496832L, write_bytes=36846261760L, read_time=341054L, write_time=296314L)}

获取网络信息

##获取网络总的IO信息,同样这也支持pernic=True>>> psutil.net_io_counters()snetio(bytes_sent=361775383L, bytes_recv=6506140231L, packets_sent=3828011L, packets_recv=4808438L, errin=0L, errout=0L, dropin=0L, dropout=0)#Look#>>> psutil.net_io_counters(pernic=True){'gif0': snetio(bytes_sent=0L, bytes_recv=0L, packets_sent=0L, packets_recv=0L, errin=0L, errout=0L, dropin=0L, dropout=0), 'utun0': snetio(bytes_sent=3380L, bytes_recv=4577L, packets_sent=23L, packets_recv=21L, errin=0L, errout=0L, dropin=0L, dropout=0),'太长了 ,省略'}

获取其他信息

##比如当前登录系统的用户信息(暴露了)##>>> psutil.users()[suser(name='LiuSha', terminal='console', host=None, started=1417849728.0), suser(name='LiuSha', terminal='ttys000', host=None, started=1418049408.0), suser(name='LiuSha', terminal='ttys001', host=None, started=1418049408.0)]##开机时间##>>> psutil.boot_time()1417849728.0#格式化输出#>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")'2014-12-06 15:08:48'

系统进程的管理

##列出所有进程PID##>>> psutil.pids()[4406, 4402, 4399, 4397, 4391, 4390, 4385, 4363, 4362, 4300, 4299, 4294, 4293, 4284,'省略']##实例化一个process对象,参数为进程PID##>>> proc = psutil.Process(4399)##进程名##>>> proc.name()'com.apple.hiservices-xpcservice'##进程可执行路径##>>> proc.exe()'/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/XPCServices/com.apple.hiservices-xpcservice.xpc/Contents/MacOS/com.apple.hiservices-xpcservice'##进程工作目录绝对路径##>>> proc.cwd()'/'##进程状态##>>> proc.status()'running'##进程创建时间 Unix时间戳##>>> proc.create_time()1418051036.177708##进程uid信息##>>> proc.uids()puids(real=501, effective=501, saved=501)##进程CPU时间信息,含user、system 的CPU时间##>>> proc.cpu_times()pcputimes(user=0.00691233, system=0.005026082)##获取内存利用率##>>> proc.memory_percent()0.03185272216796875#进程内存rss、vms信息##>>> proc.memory_info()pmem(rss=5472256L, vms=2557005824L)##进程打开socket的namedutples列表,包含 fs、family、laddr等信息#>>> proc.connections()##进程的线程信息##>>> proc.num_threads()3

Popen类的使用

##psutil提供的popen类可以获取用户启动的应用程序进程信息,跟踪程序进程的运行状态##>>> import psutil>>> from subprocess import PIPE>>> proc = psutil.Popen(["python","-c","print('hello')"],stdout=PIPE)>>> proc.name()'Python'>>> proc.username()'LiuSha'>>> proc.communicate()('hello\n', None)

? 转载保留版权:IT辰逸 ? 《Python psutil模块获取系统性能信息》 ? 本文链接地址:http://www.ipython.me/python/python-psutil-module.html ? 本文版权采取:BY-NC-SA 协议进行授权,转载注明出处。除IT-Tools、News以及特别标注,本站所有文章均为原创。 ? 如果喜欢可以:点此订阅本站

生命不息,奋斗不止,就像我们常说的一句话;

Python psutil模块获取系统性能信息

相关文章:

你感兴趣的文章:

标签云: