Skip to main content
Download this month Latest version License

Summary

psutil (python system and process utilities) is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network) in Python. It is useful mainly for system monitoring, profiling and limiting process resources and management of running processes. It implements many functionalities offered by command line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap. It currently supports Linux, Windows, OSX, FreeBSD and Sun Solaris, both 32-bit and 64-bit architectures, with Python versions from 2.4 to 3.4. Pypi is also known to work.

Example usages

CPU

>>> 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

>>> 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

>>> 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)
>>>

Network

>>> 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

>>> 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

>>> 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.set_cpu_affinity([0])
>>>
>>> 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.set_nice(10)
>>>
>>> p.set_ionice(psutil.IOPRIO_CLASS_IDLE)  # IO priority (Win and Linux only)
>>> p.ionice()
pionice(ioclass=3, value=0)
>>>
>>> p.set_rlimit(psutil.RLIMIT_NOFILE, (5, 5))  # 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
>>>

Further process APIs

>>> for p in psutil.process_iter():
...     print(p)
...
psutil.Process(pid=1, name='init')
psutil.Process(pid=2, name='kthreadd')
psutil.Process(pid=3, name='ksoftirqd/0')
...
>>>
>>> def on_terminate(proc):
...     print("process {} terminated".format(proc))
...
>>> # waits for multiple processes to terminate
>>> gone, alive = psutil.wait_procs(procs_list, 3, callback=on_terminate)
>>>

Release files for psutil 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psutil 2.1.0
File Size Uploaded
psutil-2.1.0.tar.gz 211.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for psutil 2.1.0
File
psutil-2.1.0.win-amd64-py3.4.exe Details
psutil-2.1.0.win-amd64-py3.3.exe Details
psutil-2.1.0.win-amd64-py2.7.exe Details
psutil-2.1.0.win32-py3.4.exe Details
psutil-2.1.0.win32-py3.3.exe Details
psutil-2.1.0.win32-py2.7.exe Details
psutil-2.1.0.win32-py2.6.exe Details
psutil-2.1.0.win32-py2.5.exe Details
psutil-2.1.0.win32-py2.4.exe Details

Total release size: 2.6 MB

Release files / psutil-2.1.0.tar.gz

Download URL psutil-2.1.0.tar.gz
Size 211.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d1e3ce46736d86164b6d72070f2cbaf86dcf9db03066b7f36a7b302e334a8d01
BLAKE2b-256 checksum
How to use checksums
6cd169431c4fab9b5cecaf28f2f2e0abee21805c5783c47143db5f0f7d42dbec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win-amd64-py3.4.exe

Download URL psutil-2.1.0.win-amd64-py3.4.exe
Size 311.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fa770a2c9e384924df021aed9aa5a6f92db8062a7f700113ba3943e262028454
BLAKE2b-256 checksum
How to use checksums
45563ac0a63799d54cb9b1914214944aed71e49297fb90de92b8d1fe20de3bd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win-amd64-py3.3.exe

Download URL psutil-2.1.0.win-amd64-py3.3.exe
Size 310.6 kB
Tags Source
SHA-256 checksum
How to use checksums
46232b7b0eb48c6ec1f12d17b2cc15ec3cc70ed952f2c98edb50aaa405dafa5d
BLAKE2b-256 checksum
How to use checksums
cd607134a7f812ef1eba9373c86b95ce6254f5f58928baba04af161f0066629f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win-amd64-py2.7.exe

Download URL psutil-2.1.0.win-amd64-py2.7.exe
Size 312.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9dc35f899946d58baf5b805ebed2f723f75d93f6b6bce212f79581d40f7276db
BLAKE2b-256 checksum
How to use checksums
7a3cce6a447030cdb50cf68a3988337df0c42e52abf45c3adfea3b225760eb70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win32-py3.4.exe

Download URL psutil-2.1.0.win32-py3.4.exe
Size 277.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4719134be984b0f2ba072ff761f334c2f3dbb8ca6af70ba43d8ca31b7e13c3db
BLAKE2b-256 checksum
How to use checksums
f53beab6a8d832d805c7a00d0f2398c12a32bea7e8b6eb7d5fbdf869e4bcc9e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win32-py3.3.exe

Download URL psutil-2.1.0.win32-py3.3.exe
Size 277.3 kB
Tags Source
SHA-256 checksum
How to use checksums
feccef3ccf09785c6f81e67223cf2d8736a90c8994623dd75f683dd2bf849235
BLAKE2b-256 checksum
How to use checksums
f00a32abfd9b965c9a433b5011574c904372b954330c170c6f92b637d661ecd2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win32-py2.7.exe

Download URL psutil-2.1.0.win32-py2.7.exe
Size 282.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f1ec06db1b0d27681a1bea4c9f0b33705bc5a00035c32f168da0ea193883bb91
BLAKE2b-256 checksum
How to use checksums
d017ec99e9252dae834f4a012e13c804c86907fcb1cb474f7b1bc767562bfa7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win32-py2.6.exe

Download URL psutil-2.1.0.win32-py2.6.exe
Size 282.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7eda949fbdf89548b0e52e7d666e096ea66b30b65bcbe04d305e036a24a76d11
BLAKE2b-256 checksum
How to use checksums
f288a856c5ed36d15b8ad74597f380baa29891ec284e7a1be4cb2f91f8453bd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win32-py2.5.exe

Download URL psutil-2.1.0.win32-py2.5.exe
Size 149.4 kB
Tags Source
SHA-256 checksum
How to use checksums
381ac1027a270c04cf6decdc011a28a4270105d009f213d62daec4b3116b92b6
BLAKE2b-256 checksum
How to use checksums
6d050e7213e6f0dc71490a523a70e6ab5e7cd5140d87dc93a4447da58c440d6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / psutil-2.1.0.win32-py2.4.exe

Download URL psutil-2.1.0.win32-py2.4.exe
Size 145.3 kB
Tags Source
SHA-256 checksum
How to use checksums
15d0d10bbd60e461690188cdd209d6688a1112648589bf291b17cc84e99cb6e7
BLAKE2b-256 checksum
How to use checksums
09e8f6e4209b3d6373ea11fa340c2e6e4640a7ee53ef4697c49d610ffdf86674
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

7.2.2

21 release files

7.2.1

21 release files

7.2.0

21 release files

7.1.2

19 release files

7.1.1

9 release files

7.1.0

9 release files

7.0.0

10 release files

6.1.1

17 release files

6.1.0

17 release files

6.0.0

17 release files

5.9.8

16 release files

5.9.7

16 release files

5.9.6

16 release files

5.9.5

14 release files

5.9.3

36 release files

5.9.1

32 release files

5.9.0

32 release files

5.8.0

28 release files

5.7.3

11 release files

5.7.2

11 release files

5.7.1

15 release files

5.7.0

11 release files

5.6.7

11 release files

5.6.6

11 release files

5.6.3

10 release files

5.6.2

9 release files

5.6.1

9 release files

5.6.0

9 release files

5.5.1

9 release files

5.5.0

9 release files

5.4.8

9 release files

5.4.7

9 release files

5.4.5

9 release files

5.4.4

9 release files

5.4.3

9 release files

5.4.2

9 release files

5.4.1

9 release files

5.4.0

11 release files

5.3.1

11 release files

5.2.2

21 release files

5.2.1

21 release files

5.0.1

21 release files

4.4.2

17 release files

4.4.1

17 release files

4.4.0

17 release files

4.3.0

17 release files

4.2.0

17 release files

4.1.0

21 release files

4.0.0

27 release files

3.4.2

21 release files

3.4.1

21 release files

3.4.0

3.3.0

21 release files

3.1.1

15 release files

3.1.0

15 release files

3.0.1

14 release files

3.0.0

14 release files

2.1.3

17 release files

2.1.2

17 release files

2.1.1

10 release files

This release

2.1.0 This release

10 release files

2.0.0

10 release files

1.2.1

9 release files

1.2.0

8 release files

1.1.3

8 release files

1.1.2

9 release files

1.1.1

9 release files

1.1.0

8 release files

1.0.1

9 release files

1.0.0

9 release files

0.7.1

9 release files

0.7.0

9 release files

0.6.1

9 release files

0.6.0

9 release files

0.5.1

9 release files

0.5.0

9 release files

0.4.1

9 release files

0.4.0

9 release files

0.3.0

9 release files

0.2.1

9 release files

0.2.0

9 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page