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

Release history Release notifications | RSS feed

This version

1.1.3

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.3.tar.gz (165.6 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.1.3.win-amd64-py2.7.exe (306.1 kB view details)

Uploaded Source

psutil-1.1.3.win32-py3.3.exe (270.9 kB view details)

Uploaded Source

psutil-1.1.3.win32-py3.2.exe (276.3 kB view details)

Uploaded Source

psutil-1.1.3.win32-py2.7.exe (277.0 kB view details)

Uploaded Source

psutil-1.1.3.win32-py2.6.exe (277.3 kB view details)

Uploaded Source

psutil-1.1.3.win32-py2.5.exe (142.9 kB view details)

Uploaded Source

psutil-1.1.3.win32-py2.4.exe (143.0 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-1.1.3.tar.gz
Algorithm Hash digest
SHA256 5e1164086a7ed3b863ebd12315d35086e22252b328401fce901a0862050ef98c
MD5 845806dcd0b954144b2451f696db85b0
BLAKE2b-256 93fa1f70b7fcdff77348f4e79d84cc9b568596874ca34940ede78c63d503a095

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 43cbf089cbe160d193e1658fe4eec4a719430432e866334b25dc3acef73c3e61
MD5 768b58d9817265ee070afd756c24e2e3
BLAKE2b-256 03ecf05db404504d67a19397e17e64f0276cc610a9dc450eb51ed70436f37c43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win32-py3.3.exe
Algorithm Hash digest
SHA256 36e855ea7c872beb04f22d968c55f1ef897df0261ea993ecf5ae6e8216939a55
MD5 6e776b4847c252dcbedb3f790cc85b2f
BLAKE2b-256 e67b655e08abdf19d06c8a3fd6fba35932867c80fcff05c97cf909b5d364603c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win32-py3.2.exe
Algorithm Hash digest
SHA256 a141d59c03a28bdd32dfce11a5d51b9a63a8e6c6c4245e416eeffcc1c43f1de9
MD5 bd036542460795e364324884159c21b8
BLAKE2b-256 3ab9748bbd0c53c74c682051137830048abd0126ae50e3bf4d5854a0188da143

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win32-py2.7.exe
Algorithm Hash digest
SHA256 fc9732a4dea2a3f73f9320472aa54e1cfae45d324bea24bd207d88d3a0a281b0
MD5 98d2fb34eed500d2eb52ed09c87234ba
BLAKE2b-256 2b76eec917b6f74ea9bd20a55dd8b4b01e69689278235335dbedc2b9be212815

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win32-py2.6.exe
Algorithm Hash digest
SHA256 e21b9c5a26ad3328b6f5b629e30944a9b7e56ea6ac0aa051455c8a352e67fbca
MD5 c265fab797f5e4011e2d7f24704cdecb
BLAKE2b-256 b27ec42d752b333c5846d88a8b56bbab23325b247766c100dc6f68c6bc56019d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win32-py2.5.exe
Algorithm Hash digest
SHA256 b7f4103b1058d2ee597f88902ff50f19421b95c18ac9b82ea9e8a00091786131
MD5 37ee51da2a4847525879a4b8501d1762
BLAKE2b-256 eecb7d42052f4057c6233ba3f4b7afade92117f58c5d7544ee6ab16e82c515c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.3.win32-py2.4.exe
Algorithm Hash digest
SHA256 ef7445e1b0449af34ff51a9e1d3f030b8794c9fcd2b99d072b2e815d00e8a783
MD5 de7bf37f71b5fc9876dbd505bfe26426
BLAKE2b-256 37c25d40dd0a36f0280c1dea0f651cfde79b5e99a0e6fab92273fa3ac41055f0

See more details on using hashes here.

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