psutil 0.7.1


pip install psutil==0.7.1

Project Links

Meta
Author: Giampaolo Rodola

Classifiers

Development Status
  • 5 - Production/Stable

Environment
  • Console

Operating System
  • MacOS :: MacOS X
  • Microsoft
  • Microsoft :: Windows :: Windows NT/2000
  • POSIX
  • POSIX :: Linux
  • POSIX :: BSD :: FreeBSD
  • OS Independent

Programming Language
  • C
  • Python
  • Python :: 2
  • Python :: 2.4
  • Python :: 2.5
  • Python :: 2.6
  • Python :: 2.7
  • Python :: 3
  • Python :: 3.0
  • Python :: 3.1
  • Python :: 3.2
  • Python :: 3.3

Topic
  • System :: Monitoring
  • System :: Networking
  • System :: Networking :: Monitoring
  • System :: Benchmark
  • System :: Hardware
  • System :: Systems Administration
  • Utilities
  • Software Development :: Libraries
  • Software Development :: Libraries :: Python Modules

Intended Audience
  • Developers
  • System Administrators

License
  • OSI Approved :: BSD License

Summary

psutil is a module providing an interface for retrieving information on all running processes and system utilization (CPU, memory, disks, network, users) in a portable way by using Python, implementing many functionalities offered by command line tools such as: ps, top, df, kill, free, lsof, free, netstat, ifconfig, nice, ionice, iostat, iotop, uptime, pidof, tty, who, taskset, pmap.

It currently supports Linux, Windows, OSX and FreeBSD both 32-bit and 64-bit with Python versions from 2.4 to 3.3 by using a single code base.

Example usages

CPU

>>> import psutil
>>> psutil.cpu_times()
cputimes(user=3961.46, nice=169.729, system=2150.659, idle=16900.540,
         iowait=629.509, irq=0.0, softirq=19.422)
>>>
>>> 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]
[7.0, 8.5]
[1.2, 9.0]
>>>

Memory

>>> psutil.virtual_memory()
vmem(total=8374149120L, available=2081050624L, percent=75.1, used=8074080256L,
     free=300068864L, active=3294920704, inactive=1361616896, buffers=529895424L,
     cached=1251086336)
>>> psutil.swap_memory()
swap(total=2097147904L, used=296128512L, free=1801019392L, percent=14.1,
     sin=304193536, sout=677842944)
>>>

Disks

>>> psutil.disk_partitions()
[partition(device='/dev/sda1', mountpoint='/', fstype='ext4', opts='rw,nosuid'),
 partition(device='/dev/sda2', mountpoint='/home', fstype='ext, opts='rw')]
>>>
>>> psutil.disk_usage('/')
usage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
>>>
>>> psutil.disk_io_counters()
iostat(read_count=719566, write_count=1082197, read_bytes=18626220032,
       write_bytes=24081764352, read_time=5023392, write_time=63199568)
>>>

Network

>>> psutil.network_io_counters(pernic=True)
{'lo': iostat(bytes_sent=799953745, bytes_recv=799953745,
              packets_sent=453698, packets_recv=453698),
 'eth0': iostat(bytes_sent=734324837, bytes_recv=4163935363,
                packets_sent=3605828, packets_recv=4096685)}
>>>

Users

>>> psutil.get_users()
[user(name='giampaolo', terminal='pts/2', host='localhost', started=1340737536.0),
 user(name='giampaolo', terminal='pts/3', host='localhost', started=1340737792.0)]
>>>

Process management

>>> import psutil
>>> psutil.get_pid_list()
[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.getcwd()
'/home/giampaolo'
>>> p.cmdline
['/usr/bin/python', 'main.py']
>>>
>>> str(p.status)
'running'
>>> p.username
'giampaolo'
>>> p.create_time
1267551141.5019531
>>> p.terminal
'/dev/pts/0'
>>>
>>> p.uids
user(real=1000, effective=1000, saved=1000)
>>> p.gids
group(real=1000, effective=1000, saved=1000)
>>>
>>> p.get_cpu_times()
cputimes(user=1.02, system=0.31)
>>> p.get_cpu_percent(interval=1.0)
12.1
>>> p.get_cpu_affinity()
[0, 1, 2, 3]
>>> p.set_cpu_affinity([0])
>>>
>>> p.get_memory_percent()
0.63423
>>>
>>> p.get_memory_info()
meminfo(rss=7471104, vms=68513792)
>>> p.get_ext_memory_info()
meminfo(rss=9662464, vms=49192960, shared=3612672, text=2564096, lib=0, data=5754880, dirty=0)
>>> p.get_memory_maps()
[mmap(path='/lib/x86_64-linux-gnu/libutil-2.15.so', rss=16384, anonymous=8192, swap=0),
 mmap(path='/lib/x86_64-linux-gnu/libc-2.15.so', rss=6384, anonymous=15, swap=0),
 mmap(path='/lib/x86_64-linux-gnu/libcrypto.so.1.0.0', rss=34124, anonymous=1245, swap=0),
 mmap(path='[heap]', rss=54653, anonymous=8192, swap=0),
 mmap(path='[stack]', rss=1542, anonymous=166, swap=0),
 ...]
>>>
>>> p.get_io_counters()
io(read_count=478001, write_count=59371, read_bytes=700416, write_bytes=69632)
>>>
>>> p.get_open_files()
[openfile(path='/home/giampaolo/svn/psutil/somefile', fd=3)]
>>>
>>> p.get_connections()
[connection(fd=115, family=2, type=1, local_address=('10.0.0.1', 48776),
            remote_address=('93.186.135.91', 80), status='ESTABLISHED'),
 connection(fd=117, family=2, type=1, local_address=('10.0.0.1', 43761),
            remote_address=('72.14.234.100', 80), status='CLOSING'),
 connection(fd=119, family=2, type=1, local_address=('10.0.0.1', 60759),
            remote_address=('72.14.234.104', 80), status='ESTABLISHED'),
 connection(fd=123, family=2, type=1, local_address=('10.0.0.1', 51314),
            remote_address=('72.14.234.83', 443), status='SYN_SENT')]
>>>
>>> p.get_num_threads()
4
>>> p.get_num_fds()
8
>>> p.get_threads()
[thread(id=5234, user_time=22.5, system_time=9.2891),
 thread(id=5235, user_time=0.0, system_time=0.0),
 thread(id=5236, user_time=0.0, system_time=0.0),
 thread(id=5237, user_time=0.0707, system_time=1.1)]
>>>
>>> p.get_num_ctx_switches()
amount(voluntary=78, involuntary=19)
>>>
>>> p.get_nice()
0
>>> p.set_nice(10)
>>>
>>> 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
>>>
7.0.0 Feb 13, 2025
6.1.1 Dec 19, 2024
6.1.0 Oct 17, 2024
6.0.0 Jun 18, 2024
5.9.8 Jan 19, 2024
5.9.7 Dec 17, 2023
5.9.6 Oct 15, 2023
5.9.5 Apr 17, 2023
5.9.4 Nov 07, 2022
5.9.3 Oct 18, 2022
5.9.2 Sep 04, 2022
5.9.1 May 20, 2022
5.9.0 Dec 29, 2021
5.8.0 Dec 19, 2020
5.7.3 Oct 24, 2020
5.7.2 Jul 15, 2020
5.7.1 Jul 15, 2020
5.7.0 Feb 18, 2020
5.6.7 Nov 26, 2019
5.6.6 Nov 25, 2019
5.6.5 Nov 06, 2019
5.6.4 Nov 04, 2019
5.6.3 Jun 11, 2019
5.6.2 Apr 26, 2019
5.6.1 Mar 11, 2019
5.6.0 Mar 05, 2019
5.5.1 Feb 15, 2019
5.5.0 Jan 23, 2019
5.4.8 Oct 30, 2018
5.4.7 Aug 14, 2018
5.4.6 Jun 07, 2018
5.4.5 Apr 13, 2018
5.4.4 Apr 13, 2018
5.4.3 Jan 01, 2018
5.4.2 Dec 07, 2017
5.4.1 Nov 08, 2017
5.4.0 Oct 12, 2017
5.3.1 Sep 10, 2017
5.3.0 Sep 01, 2017
5.2.2 Apr 10, 2017
5.2.1 Mar 24, 2017
5.2.0 Mar 05, 2017
5.1.3 Feb 07, 2017
5.1.2 Feb 03, 2017
5.1.1 Feb 03, 2017
5.1.0 Feb 01, 2017
5.0.1 Dec 21, 2016
5.0.0 Nov 06, 2016
4.4.2 Oct 26, 2016
4.4.1 Oct 25, 2016
4.4.0 Oct 23, 2016
4.3.1 Sep 01, 2016
4.3.0 Jun 18, 2016
4.2.0 May 15, 2016
4.1.0 Mar 12, 2016
4.0.0 Feb 17, 2016
3.4.2 Jan 20, 2016
3.4.1 Jan 15, 2016
3.3.0 Nov 25, 2015
3.2.2 Oct 04, 2015
3.2.1 Sep 03, 2015
3.2.0 Sep 02, 2015
3.1.1 Jul 15, 2015
3.1.0 Jul 15, 2015
3.0.1 Jun 18, 2015
3.0.0 Jun 13, 2015
2.2.1 Feb 02, 2015
2.2.0 Jan 06, 2015
2.1.3 Sep 26, 2014
2.1.2 Sep 21, 2014
2.1.1 Apr 30, 2014
2.1.0 Apr 08, 2014
2.0.0 Mar 10, 2014
1.2.1 Nov 25, 2013
1.2.0 Nov 20, 2013
1.1.3 Nov 07, 2013
1.1.2 Oct 22, 2013
1.1.1 Oct 07, 2013
1.1.0 Sep 28, 2013
1.0.1 Feb 06, 2014
1.0.0 Feb 06, 2014
0.7.1 Feb 06, 2014
0.7.0 Feb 06, 2014
0.6.1 Feb 06, 2014
0.6.0 Feb 06, 2014
0.5.1 Feb 06, 2014
0.5.0 Feb 06, 2014
0.4.1 Feb 06, 2014
0.4.0 Feb 06, 2014
0.3.0 Feb 06, 2014
0.2.1 Feb 06, 2014
0.2.0 Feb 06, 2014
0.1.3 Feb 06, 2014
0.1.2 Feb 06, 2014
0.1.1 Feb 06, 2014
0.0rc0 Sep 28, 2013
No dependencies