Skip to main content

A process utilities module for Python

Project description

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

Release history Release notifications | RSS feed

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

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.

Supported by

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