Skip to main content

A process and system 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, 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()
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)
{'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)}
>>>

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

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

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-1.1.0.tar.gz (163.8 kB view details)

Uploaded Source

Built Distributions

psutil-1.1.0.win-amd64-py3.2.exe (306.1 kB view details)

Uploaded Source

psutil-1.1.0.win-amd64-py2.7.exe (305.5 kB view details)

Uploaded Source

psutil-1.1.0.win32-py3.3.exe (270.3 kB view details)

Uploaded Source

psutil-1.1.0.win32-py3.2.exe (275.6 kB view details)

Uploaded Source

psutil-1.1.0.win32-py2.6.exe (276.6 kB view details)

Uploaded Source

psutil-1.1.0.win32-py2.5.exe (142.2 kB view details)

Uploaded Source

psutil-1.1.0.win32-py2.4.exe (142.3 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-1.1.0.tar.gz
Algorithm Hash digest
SHA256 31b4b411d3f6960d26dac1f075709ff6d36f60216bf1f2b47fc4dc62a2d0aa6f
MD5 ab7c4172aabd42ea3b9f80224222dce5
BLAKE2b-256 f6711f9049fc7936f7f48f0553abd8bf8394f4ad2d9fb63a881b3a653b67abd6

See more details on using hashes here.

File details

Details for the file psutil-1.1.0.win-amd64-py3.2.exe.

File metadata

File hashes

Hashes for psutil-1.1.0.win-amd64-py3.2.exe
Algorithm Hash digest
SHA256 a95bf68f2189b7cd3f22558b12a989f368335c905cbd3045ca315514538b3115
MD5 a4f7b7462ee820432281b83f5c97aed0
BLAKE2b-256 a5be6f3b8f8ff89eaf480f59bbcd3d18c10ee0206891aa5fb4a25280c031801c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 ef250fbe783c0b31d9574d06324abd78ebf23c75981a8d0f9319d080435aa056
MD5 3e03bcb72a5c40a1843f8e40f6c4c599
BLAKE2b-256 28ffe0dcc8e0194817191817ff02926a734a51d24a91e1cfc5c47be8c1e8508c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 b4106508ea96ad24e1102de2a31a99c557ee608abab15d978bfe8d0f626e518c
MD5 307645ba76f48c1c18a312e1bdf3c1a4
BLAKE2b-256 a70380f426e186dfdb202128c78b421b3ba34de461c32f6ed2c04041fc548d7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.0.win32-py3.2.exe
Algorithm Hash digest
SHA256 dfdce701cfc7799dc1964debb486907b447fbdb361e06be786a9a5e11a1d5309
MD5 61aa580eb72167acc409030c6f14f93f
BLAKE2b-256 8fc9231df338b0cef518dbde2f98c1e0bb81142dc7dbec4a39267bb60dde1462

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.0.win32-py2.6.exe
Algorithm Hash digest
SHA256 be853a268f0f3c3336c9bb648253db85ef2024213b6fc199f84b89643b74b130
MD5 ec669bc37dd0cde68221c78da2e3f76a
BLAKE2b-256 cce0adb41ece0bb2c27d75a41d98bd8f9802475d5d488df7d4905229596c0a70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.0.win32-py2.5.exe
Algorithm Hash digest
SHA256 4a587008d6aae91fd1d3fee21141a27b4a2978fff75c80e57a37678a63a1cfcc
MD5 dbfbe0a27234281add0ba0a7bda988c0
BLAKE2b-256 b516dd5a768773cb017c4a66d69ec49abdd33df831215418e4c116639ed41afb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.0.win32-py2.4.exe
Algorithm Hash digest
SHA256 bc53be7f65ccb8a530e0c496a8db3ecd78b57b1faa443e43e228df327cf26899
MD5 1507a76ba81a068acd3ffc0ed4ca2c4c
BLAKE2b-256 ec600a9a96611c77866a2c4140159a57c2702523ebc5371eaa24e0353d88ac2c

See more details on using hashes here.

Supported by

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