Skip to main content

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, FreeBSD, Sun Solaris 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, 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]
[7.0, 8.5]
[1.2, 9.0]
>>>
>>> for x in range(3):
...     psutil.cpu_times_percent(interval=1, percpu=False)
...
cpupercent(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)
cpupercent(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)
cpupercent(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)

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(perdisk=False)
iostat(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': iostat(bytes_sent=485291293, bytes_recv=6004858642,
                packets_sent=3251564, packets_recv=4787798,
                errin=0, errout=0, dropin=0, dropout=0),
 'lo': iostat(bytes_sent=2838627, bytes_recv=2838627, packets_sent=30567,
              packets_recv=30567, errin=0, errout=0, dropin=0, dropout=0)}
>>>

Other system info

>>> 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)]
>>>
>>> psutil.get_boot_time()
1365519115.0
>>>
>>> psutil.NUM_CPUS
4
>>> psutil.TOTAL_PHYMEM
8374120448L
>>>

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, laddr=('10.0.0.1', 48776),
            raddr=('93.186.135.91', 80), status='ESTABLISHED'),
 connection(fd=117, family=2, type=1, laddr=('10.0.0.1', 43761),
            raddr=('72.14.234.100', 80), status='CLOSING'),
 connection(fd=119, family=2, type=1, laddr=('10.0.0.1', 60759),
            raddr=('72.14.234.104', 80), status='ESTABLISHED'),
 connection(fd=123, family=2, type=1, laddr=('10.0.0.1', 51314),
            raddr=('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.set_ionice(psutil.IOPRIO_CLASS_IDLE)  # IO priority (Windows and Linux only)
>>> p.get_ionice()
ionice(ioclass=3, value=0)
>>>
>>> p.set_rlimit(psutil.RLIMIT_NOFILE, (5, 5))  # resource limits (Linux only)
>>> p.get_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
>>>

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

psutil-1.2.0.tar.gz (166.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

psutil-1.2.0.win-amd64-py2.7.exe (307.0 kB view details)

Uploaded Source

psutil-1.2.0.win32-py3.3.exe (271.9 kB view details)

Uploaded Source

psutil-1.2.0.win32-py3.2.exe (277.2 kB view details)

Uploaded Source

psutil-1.2.0.win32-py2.7.exe (277.9 kB view details)

Uploaded Source

psutil-1.2.0.win32-py2.6.exe (278.1 kB view details)

Uploaded Source

psutil-1.2.0.win32-py2.5.exe (143.8 kB view details)

Uploaded Source

psutil-1.2.0.win32-py2.4.exe (143.8 kB view details)

Uploaded Source

File details

Details for the file psutil-1.2.0.tar.gz.

File metadata

  • Download URL: psutil-1.2.0.tar.gz
  • Upload date:
  • Size: 166.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for psutil-1.2.0.tar.gz
Algorithm Hash digest
SHA256 c3a2b02e92363837499680760b674b3bf3bd03dd9528a5dc41392625a61b162a
MD5 f8ae906249e65db21f17d873ae07e584
BLAKE2b-256 77898ee72ae2b5e3c749e43a9c1e95d61eceff022ab7c929cdde8a3b7539a707

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win-amd64-py2.7.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 2bedcda55618f71bc98d6669bd190e2b51b940e3a3af2512dd77745cb1ebc101
MD5 b2abcb587cc351eb6dbc23eed4304cc4
BLAKE2b-256 9cd1598bcaa9701e06561cb8823a7a04ee44e702b0e327ef0a65bdd97b019613

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win32-py3.3.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 3e23d3b1ef5f20a458092887d1df32f55eaf4fc86f2ed49cc68cf164537128d6
MD5 ccee2703e25a62085503f4890fece502
BLAKE2b-256 24394630dff3d0fa4896db905a118877fce5b72ced6629ca9958e207f7a0b198

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win32-py3.2.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win32-py3.2.exe
Algorithm Hash digest
SHA256 2b588673530d67f45287c31b6dfef02ee4e753aee7e7216448e6dbcb95b482e1
MD5 5c75c39f381567c5a7d94f3e549b749d
BLAKE2b-256 051020a2364e4e69206d66da106288b65bf5bbde0d648aad5bb829f3eb08fabb

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win32-py2.7.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win32-py2.7.exe
Algorithm Hash digest
SHA256 1024eff34ff14f2899186549ca8f8e461403e5700910e52eb013ffffb078cda3
MD5 8e2899592e03cb5564b81062e21a706a
BLAKE2b-256 9d1ab8e679a7e47229d07e41439a43fc1be48c0d34774e5e35ad6730398485bd

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win32-py2.6.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win32-py2.6.exe
Algorithm Hash digest
SHA256 fb0c3942a48fde9c52828dae4074381556eff8eb5651bdc9c4c107b40dc8318e
MD5 49fa4501b0aad2fff6eb6f5600ff06c3
BLAKE2b-256 ae4ae62000dbe462270c30f1e2f2dcc913596f70e264d9a656f881bb9f487283

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win32-py2.5.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win32-py2.5.exe
Algorithm Hash digest
SHA256 40747c59cf92cef26d595a9cefaac9c1a4bc0290abff6004bb092ee2ddec7d7b
MD5 7cfbcae9514fa7598f2672a344205835
BLAKE2b-256 88173ba1b45ec63d666c2631f16679adb819564feb775cfd9e774d23e5774a44

See more details on using hashes here.

File details

Details for the file psutil-1.2.0.win32-py2.4.exe.

File metadata

File hashes

Hashes for psutil-1.2.0.win32-py2.4.exe
Algorithm Hash digest
SHA256 417695f66562a22ac4f92bf7df1e9dda6264579eb308badd2c3e85df88ab9436
MD5 9e4ed2aa084710da66f3cce1ae80e830
BLAKE2b-256 a4ba4b54baace7b49b73df74b54815337878137d25fda506e518f2d8dd2472fc

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page