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 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.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.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.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, 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.get_num_ctx_switches()
amount(voluntary=78, involuntary=19)
>>>
>>> p.get_nice()
0
>>> p.set_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
>>>

Project details


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

Uploaded Source

Built Distributions

psutil-0.6.0.win-amd64-py3.4.exe (321.5 kB view details)

Uploaded Source

psutil-0.6.0.win-amd64-py3.3.exe (320.6 kB view details)

Uploaded Source

psutil-0.6.0.win-amd64-py2.7.exe (322.2 kB view details)

Uploaded Source

psutil-0.6.0.win32-py3.4.exe (286.9 kB view details)

Uploaded Source

psutil-0.6.0.win32-py3.3.exe (287.0 kB view details)

Uploaded Source

psutil-0.6.0.win32-py2.7.exe (291.8 kB view details)

Uploaded Source

psutil-0.6.0.win32-py2.6.exe (292.3 kB view details)

Uploaded Source

psutil-0.6.0.win32-py2.5.exe (160.5 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-0.6.0.tar.gz
Algorithm Hash digest
SHA256 e918763243371f69bc98b601769df7337e196029dcdb797224f0ede474e17b94
MD5 02c8ce33b4f44eb3f4bb9dd4800fe9c3
BLAKE2b-256 3c9f0de622fc62e74f4c154656440c02c8a24a01a997d605a744272eb0d93742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 e7233e45ed7505efe46309978edd3e8a1cb4160400c3535512be2e4114615bb9
MD5 4c342e5ddae083118fda71addb5d5569
BLAKE2b-256 47ad4139c3eaa2ee1da71d071c9b49e8a04ff23f2c71f6fdecc11850b0e7343e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 084a1cbeca8e10f0cbba4b9d3f7d3136cb1d03997a868eea334401f82105207a
MD5 1257a2e3387d74f5108648db2786ce81
BLAKE2b-256 705eb1d4a1d5238497d48112bc27e3448d05a0acb6c8fcd537565724d916e7c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 1792be8fca4b3f88553e1c5cc197e18932c3da9b969ce7f545b741913597d600
MD5 5fdca82a210e6ee90ec9934e27c1e81f
BLAKE2b-256 5ffdfc06aaf69ad438d1354312c728791a1f571b2c59a49b411128911abf647e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win32-py3.4.exe
Algorithm Hash digest
SHA256 da568edc3b8ec4be5b8cee54851289eb4c24cbaa8ea165858e9bfc279269bf22
MD5 edcbf842ff84ff522c4ea6be3a2aeea9
BLAKE2b-256 5667533833832596e5f8c1fb51d3f94cd110d688579be7af46996cf96ad890e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 1d7df98f4532e76685fabbd82e9502c91be9a60e4dfdfd5a19c2152936b7d198
MD5 7518fff5e2f41470f2ede9a40a77bd9a
BLAKE2b-256 d6d791226f8635d3850917b64e94ca4903910a60739ee7c930ef9678d93638eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win32-py2.7.exe
Algorithm Hash digest
SHA256 71197523bf8acb49e3e909ea945cc6e77a21693428db2f169e33348988c1bb11
MD5 db77f71f203b324eb3fa8d4c4634df23
BLAKE2b-256 e964fe90d0f1ba2dff8ad2511423720aed3569cfe7b5dbb95ede64af25b77e84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win32-py2.6.exe
Algorithm Hash digest
SHA256 a628ad11fefc16d6dd144a8d29a03ac379debcf6c2e4b576e6ee2b2677c15836
MD5 89475191bb2cc274d78ddfa185b657e5
BLAKE2b-256 2b79eec1c63d3ea968cc9754871a1b9d17d50bfc24136ecac415f701b1d240ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.0.win32-py2.5.exe
Algorithm Hash digest
SHA256 469628dea02a7d91837e05777cb66bfcdc2e1639cc8607ed93f19679c4e42cef
MD5 df867c67182691bec5dd1188971ae8c7
BLAKE2b-256 103aa0136c299b74224be3b0735812a1544e6962d7c61af41adfcc400791c684

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