Skip to main content

Summary

psutil is a module providing an interface for retrieving information on all running processes and system utilization (CPU, disk, memory) 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, iostato, iotop, uptime, tty, taskset.

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.phymem_usage()
usage(total=4153868288, used=2854199296, free=1299668992, percent=34.6)
>>> psutil.virtmem_usage()
usage(total=2097147904, used=4096, free=2097143808, percent=0.0)
>>>

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 = psutil.Process(os.getpid())
>>> 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.nice
0
>>> p.nice = 10  # set/change process priority
>>> p.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
>>>

Download files

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

Source Distribution

psutil-0.5.1.tar.gz (118.8 kB view details)

Uploaded Source

Built Distributions

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

psutil-0.5.1.win-amd64-py3.4.exe (319.1 kB view details)

Uploaded Source

psutil-0.5.1.win-amd64-py3.3.exe (318.2 kB view details)

Uploaded Source

psutil-0.5.1.win-amd64-py2.7.exe (319.5 kB view details)

Uploaded Source

psutil-0.5.1.win32-py3.4.exe (284.2 kB view details)

Uploaded Source

psutil-0.5.1.win32-py3.3.exe (284.3 kB view details)

Uploaded Source

psutil-0.5.1.win32-py2.7.exe (289.1 kB view details)

Uploaded Source

psutil-0.5.1.win32-py2.6.exe (289.6 kB view details)

Uploaded Source

psutil-0.5.1.win32-py2.5.exe (157.1 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-0.5.1.tar.gz
Algorithm Hash digest
SHA256 f660d244a08373f5e89633650970819a59463b37af1c9d205699fb0d0608986d
MD5 228cc2ca0c870ca61bca6a1bff36615e
BLAKE2b-256 aa066ebc13a14c0961d7bb8184da530448d8fc198465eb5ecd1ad36c761807d2

See more details on using hashes here.

File details

Details for the file psutil-0.5.1.win-amd64-py3.4.exe.

File metadata

File hashes

Hashes for psutil-0.5.1.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 9d991aae6b993ac58b540f27b2dff71137db62253f5d7acc5ede1ec845fd6b0b
MD5 e2699494bcde548df1aa91f14d691e30
BLAKE2b-256 2cfaa0469c75acedccc5006b655434e96a8a6a490725a9ae8208faaf39c043f6

See more details on using hashes here.

File details

Details for the file psutil-0.5.1.win-amd64-py3.3.exe.

File metadata

File hashes

Hashes for psutil-0.5.1.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 8a12d8e368bfccfe2074616cae2472dfb1e136a2aaaea5b7dbafdb390166b202
MD5 e864395f4fb13070746255303828c645
BLAKE2b-256 139d49f6fb5e1f75b3d6815bbdbbeb1630f7299d6ff96f85836dbd27989780ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.5.1.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 eff5ed677b6bdb5d75f1de925df774d8029582eea17abc3bbd31b9885d3c649d
MD5 3f53ad143ccaaa269fea08f25d4e5f37
BLAKE2b-256 8a2615751b500afdd0aea141905d5ba5319c38be41e0ca55a374c02827d1a79c

See more details on using hashes here.

File details

Details for the file psutil-0.5.1.win32-py3.4.exe.

File metadata

File hashes

Hashes for psutil-0.5.1.win32-py3.4.exe
Algorithm Hash digest
SHA256 d547e164013a4d78909cbac0c176d65aa51c06de2fb888c63b738906f5ccc105
MD5 02dde78aaca51e0bf002edf1ad36a05c
BLAKE2b-256 7f8bc9abd21cdc79b70744e169b98be06f0828687dfcac6468ed87455099f88d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.5.1.win32-py3.3.exe
Algorithm Hash digest
SHA256 9a20a99b6727334c8cc3a10ecc556d2f15a1e92efef97670ed022b86e09df36b
MD5 a1e47eb84ed1e5797e4e1a28b2404c7a
BLAKE2b-256 73a2ab4f2fa7ba6f8fc51d9cc9a0bb5ec269860a34574d391e39d20c2dca7b56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.5.1.win32-py2.7.exe
Algorithm Hash digest
SHA256 45acf090d65f2f47f3b1444b056cafb1b1ca70a8e266ddf10422734fb0ada897
MD5 82adfe9bbc6fa96418448049ce52e0ee
BLAKE2b-256 8125cbbb80d1957c28dffb9f20c1eaf349d5642215d7ca15ec5b7015b6a510c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.5.1.win32-py2.6.exe
Algorithm Hash digest
SHA256 f434f546d73366bff6283db907105b2607976ff9be67f2b5a7b35533e5f27219
MD5 9c6d9f45293723da226ba0294cf0584d
BLAKE2b-256 ebd955f5d02e42dc6c73f66c7cfc99bc3bf97cf10e9f259dbea69e123e0ef459

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.5.1.win32-py2.5.exe
Algorithm Hash digest
SHA256 ee32be6667bb69ebefc2fb5e23d115d98e307b5246c01ef50e45cfd8ad824d07
MD5 e0d8e648f058a11a718f78dade4c91ef
BLAKE2b-256 2e309ed6283c7f1a716a3bf76a063b278ace2f89d1a8b2af9d35080dc2a0319b

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