python获取系统信息psutil

Posted

tags:

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

python获取系统信息psutil:psutil获取系统cpu使用率的方法是cpu_percent(),其有两个参数,分别是interval和percpu,interval指定的是计算cpu使用率的时间间隔,percpu则指定是选择总的使用率还是每个cpu的使用率。

import psutil
 
    #cpu使用率
    cpu=(str)(psutil.cpu_percent(1))+%
 
    #剩余内存.free  总共.total 
    memory=str(psutil.virtual_memory().free/(1024.0*1024.0))+M
 
    #剩余磁盘 "/"是当前磁盘,可换成其他路径
    #>>>psutil.disk_usage() 有四个值
    #>>>sdiskusage(total=278206668800L, used=140436959232L, free=137769709568L, percent=50.5)
 
    disk=str(psutil.disk_usage("/")[2]/(1024.0 * 1024 * 1024))
 
 
 
>>> message = ‘‘‘interpreter
 
... prompt‘‘‘

psutil

psutil是python的一个用于获取cpu信息的模块,非常好使,以下附上官方的一些example:

- - - - - - - - - - CPU-> Examples
>>> import psutil
>>> psutil.cpu_times()
scputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540, iowait=629.59, irq=0.0, softirq=19.42, steal=0.0, guest=0, nice=0.0)
>>>
>>> for x in range(3):
...     psutil.cpu_percent(interval=1)
...
4.0
5.9
3.8
>>>
>>> for x in range(3):
...     psutil.cpu_percent(interval=1, percpu=True)
...
[4.0, 6.9, 3.7, 9.2]
[7.0, 8.5, 2.4, 2.1]
[1.2, 9.0, 9.9, 7.2]
>>>
>>>
>>> for x in range(3):
...     psutil.cpu_times_percent(interval=1, percpu=False)
...
scputimes(user=1.5, nice=0.0, system=0.5, idle=96.5, iowait=1.5, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=1.0, nice=0.0, system=0.0, idle=99.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
scputimes(user=2.0, nice=0.0, system=0.0, idle=98.0, iowait=0.0, irq=0.0, softirq=0.0, steal=0.0, guest=0.0, guest_nice=0.0)
>>>
>>> psutil.cpu_count()
4
>>> psutil.cpu_count(logical=False)
2
>>>
 
---------------------------Memory-> Examples:
>>> psutil.virtual_memory()
svmem(total=8374149120L, available=2081050624L, percent=75.1, used=8074080256L, free=300068864L, active=3294920704, inactive=1361616896, buffers=529895424L, cached=1251086336)
>>> psutil.swap_memory()
sswap(total=2097147904L, used=296128512L, free=1801019392L, percent=14.1, sin=304193536, sout=677842944)
>>>
>
----------------------Disks-> Examples:
>>> psutil.disk_partitions()
[sdiskpart(device=/dev/sda1, mountpoint=/, fstype=ext4, opts=rw,nosuid),
 sdiskpart(device=/dev/sda2, mountpoint=/home, fstype=ext, opts=rw)]
>>>
>>> psutil.disk_usage(/)
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
>>>
>>> psutil.disk_io_counters(perdisk=False)
sdiskio(read_count=719566, write_count=1082197, read_bytes=18626220032, write_bytes=24081764352, read_time=5023392, write_time=63199568)
>>>
>
--------------------------Networks-> Examples:
>>> psutil.net_io_counters(pernic=True)
{eth0: netio(bytes_sent=485291293, bytes_recv=6004858642, packets_sent=3251564, packets_recv=4787798, errin=0, errout=0, dropin=0, dropout=0),
 lo: netio(bytes_sent=2838627, bytes_recv=2838627, packets_sent=30567, packets_recv=30567, errin=0, errout=0, dropin=0, dropout=0)}
>>>
>>> psutil.net_connections()
[pconn(fd=115, family=2, type=1, laddr=(10.0.0.1, 48776), raddr=(93.186.135.91, 80), status=ESTABLISHED, pid=1254),
 pconn(fd=117, family=2, type=1, laddr=(10.0.0.1, 43761), raddr=(72.14.234.100, 80), status=CLOSING, pid=2987),
 pconn(fd=-1, family=2, type=1, laddr=(10.0.0.1, 60759), raddr=(72.14.234.104, 80), status=ESTABLISHED, pid=None),
 pconn(fd=-1, family=2, type=1, laddr=(10.0.0.1, 51314), raddr=(72.14.234.83, 443), status=SYN_SENT, pid=None)
 ...]
 
------------------Other system info-> Examples:
>>> psutil.users()
[user(name=giampaolo, terminal=pts/2, host=localhost, started=1340737536.0),
 user(name=giampaolo, terminal=pts/3, host=localhost, started=1340737792.0)]
>>>
>>> psutil.boot_time()
1365519115.0
>>>
Process Management-> Examples:
>>> import psutil
>>> psutil.pids()
[1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224,
 268, 1215, 1216, 1220, 1221, 1243, 1244, 1301, 1601, 2237, 2355,
 2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245,
 4263, 4282, 4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358,
 4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446, 5167, 5234, 5235,
 5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]
>>>
>>> p = psutil.Process(7055)
>>> p.name()
python
>>> p.exe()
/usr/bin/python
>>> p.cwd()
/home/giampaolo
>>> p.cmdline()
[/usr/bin/python, main.py]
>>>
>>> p.status()
running
>>> p.username()
giampaolo
>>> p.create_time()
1267551141.5019531
>>> p.terminal()
/dev/pts/0
>>>
>>> p.uids()
puids(real=1000, effective=1000, saved=1000)
>>> p.gids()
pgids(real=1000, effective=1000, saved=1000)
>>>
>>> p.cpu_times()
pcputimes(user=1.02, system=0.31)
>>> p.cpu_percent(interval=1.0)
12.1
>>> p.cpu_affinity()
[0, 1, 2, 3]
>>> p.cpu_affinity([0])  # set
>>>
>>> p.memory_percent()
0.63423
>>>
>>> p.memory_info()
pmem(rss=7471104, vms=68513792)
>>> p.ext_memory_info()
extmem(rss=9662464, vms=49192960, shared=3612672, text=2564096, lib=0, data=5754880, dirty=0)
>>> p.memory_maps()
[pmmap_grouped(path=/lib/x86_64-linux-gnu/libutil-2.15.so, rss=16384, anonymous=8192, swap=0),
 pmmap_grouped(path=/lib/x86_64-linux-gnu/libc-2.15.so, rss=6384, anonymous=15, swap=0),
 pmmap_grouped(path=/lib/x86_64-linux-gnu/libcrypto.so.1.0.0, rss=34124, anonymous=1245, swap=0),
 pmmap_grouped(path=[heap], rss=54653, anonymous=8192, swap=0),
 pmmap_grouped(path=[stack], rss=1542, anonymous=166, swap=0),
 ...]
>>>
>>> p.io_counters()
pio(read_count=478001, write_count=59371, read_bytes=700416, write_bytes=69632)
>>>
>>> p.open_files()
[popenfile(path=/home/giampaolo/svn/psutil/somefile, fd=3)]
>>>
>>> p.connections()
[pconn(fd=115, family=2, type=1, laddr=(10.0.0.1, 48776), raddr=(93.186.135.91, 80), status=ESTABLISHED),
 pconn(fd=117, family=2, type=1, laddr=(10.0.0.1, 43761), raddr=(72.14.234.100, 80), status=CLOSING),
 pconn(fd=119, family=2, type=1, laddr=(10.0.0.1, 60759), raddr=(72.14.234.104, 80), status=ESTABLISHED),
 pconn(fd=123, family=2, type=1, laddr=(10.0.0.1, 51314), raddr=(72.14.234.83, 443), status=SYN_SENT)]
>>>
>>> p.num_threads()
4
>>> p.num_fds()
8
>>> p.threads()
[pthread(id=5234, user_time=22.5, system_time=9.2891),
 pthread(id=5235, user_time=0.0, system_time=0.0),
 pthread(id=5236, user_time=0.0, system_time=0.0),
 pthread(id=5237, user_time=0.0707, system_time=1.1)]
>>>
>>> p.num_ctx_switches()
pctxsw(voluntary=78, involuntary=19)
>>>
>>> p.nice()
0
>>> p.nice(10)  # set
>>>
>>> p.ionice(psutil.IOPRIO_CLASS_IDLE)  # IO priority (Win and Linux only)
>>> p.ionice()
pionice(ioclass=3, value=0)
>>>
>>> p.rlimit(psutil.RLIMIT_NOFILE, (5, 5))  # set resource limits (Linux only)
>>> p.rlimit(psutil.RLIMIT_NOFILE)
(5, 5)
>>>
>>> p.suspend()
>>> p.resume()
>>>
>>> p.terminate()
>>> p.wait(timeout=3)
0
>>>
>>> psutil.test()
USER         PID %CPU %MEM     VSZ     RSS TTY        START    TIME  COMMAND
root           1  0.0  0.0   24584    2240            Jun17   00:00  init
root           2  0.0  0.0       0       0            Jun17   00:00  kthreadd
root           3  0.0  0.0       0       0            Jun17   00:05  ksoftirqd/0
...
giampaolo  31475  0.0  0.0   20760    3024 /dev/pts/0 Jun19   00:00  python2.4
giampaolo  31721  0.0  2.2  773060  181896            00:04   10:30  chrome
root       31763  0.0  0.0       0       0            00:05   00:00  kworker/0:1
>>>

 

以上是关于python获取系统信息psutil的主要内容,如果未能解决你的问题,请参考以下文章

Psutil

python之psutil模块获取系统信息

Python对系统数据进行采集监控——psutil

python 获取cpu内存硬盘等实时信息 psutil

psutil——获取系统信息的Python第三方模块

Python--系统信息模块psutil