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

Project details


Release history Release notifications | RSS feed

This version

1.1.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-1.1.1.tar.gz (165.5 kB view details)

Uploaded Source

Built Distributions

psutil-1.1.1.win-amd64-py3.2.exe (306.6 kB view details)

Uploaded Source

psutil-1.1.1.win-amd64-py2.7.exe (305.9 kB view details)

Uploaded Source

psutil-1.1.1.win32-py3.3.exe (270.7 kB view details)

Uploaded Source

psutil-1.1.1.win32-py3.2.exe (276.1 kB view details)

Uploaded Source

psutil-1.1.1.win32-py2.7.exe (276.8 kB view details)

Uploaded Source

psutil-1.1.1.win32-py2.6.exe (277.0 kB view details)

Uploaded Source

psutil-1.1.1.win32-py2.5.exe (142.7 kB view details)

Uploaded Source

psutil-1.1.1.win32-py2.4.exe (142.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-1.1.1.tar.gz
Algorithm Hash digest
SHA256 a5201e4c2a9b57e9e5d8de92b3a4006d093eedd9b56915b8279f365aaedd0f48
MD5 24430ee6486be2f1a960d9ce4dc87ad0
BLAKE2b-256 8d0d1a4bfc94f9cc783a510b3fc7efd5a2ef39858b3a2b6ab40a094a1ca8a54d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win-amd64-py3.2.exe
Algorithm Hash digest
SHA256 fdabf11b316b0c406709aabb76f6c3cfdeb448c10ed38193786110f13e5c1248
MD5 be300ae2ee30e44b08762f79df8452d3
BLAKE2b-256 e32dcd5c620f9e5cb090eea573b2dc16574e746529347b6133b2f0b6e686d917

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 b8ccaef0a96d7ef40eda7493ffcaa3c5e2d63f531e090c3567e4198b38ca8e33
MD5 9d5e49b2c8bbe9ea898c1526d97fd977
BLAKE2b-256 5ab866489689c8751acd67bdbc8f37534176a14b63f74e74a229c30b230c8a18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win32-py3.3.exe
Algorithm Hash digest
SHA256 86ce0cfa7a95c7c1bc3e2f5358e446b01fc2be5f0c879c8def21e7ede9dc77de
MD5 c2ca56d442b556b38c0da9c81bc1f261
BLAKE2b-256 a764ba4601de7df6130c27f42bcec9f11da4ea905eda26d2f5a41efdb481f377

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win32-py3.2.exe
Algorithm Hash digest
SHA256 01276bd695b5cebc7bea7c97814713b0f3030861e30be88a60d40c9daf3d529c
MD5 df43ff58f0089d1542ffba7ca1e1d536
BLAKE2b-256 921490b9a4690f04ef1aab89a97a7b5407708f56785ccc264d9f9ce372feaea4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win32-py2.7.exe
Algorithm Hash digest
SHA256 2e7691ddbde94b1ec7bb5b4cd986b2f763efc6be5b122dd499e156c9802a195b
MD5 9472fd0200d75aabd6474c3c52695f74
BLAKE2b-256 4278eeacb1210abbe15cf06b9810e84afeabae1f9362abe389e8d5ca2c19df43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win32-py2.6.exe
Algorithm Hash digest
SHA256 1e3a17b2a2f2bc138774f9b4b5ff52767f65ffb6349f9e05eb24f243c550ce1b
MD5 862cfd5d74fe004935e6fed23371e891
BLAKE2b-256 16cd25a3b9af88d130dd1084acab467b30996884219afc0a1e989d2a015ea54b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win32-py2.5.exe
Algorithm Hash digest
SHA256 8e52d5b6af64e3eefbda30e0b16c9f29434ef6f79ea10b6fbd4520a6fbdb2481
MD5 62615f05d6df2ffc4cf5a34249b18f70
BLAKE2b-256 8b80c41382a4f650f47a37300411169b7b248acf0b0925eb92cb22286362c3df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.1.1.win32-py2.4.exe
Algorithm Hash digest
SHA256 74bb1ccf0b28a914bb9d303642c08450ea6c5876851eb71e17f24b3d8672ca7d
MD5 19a2fce4b62f777328d23b2e40a3388e
BLAKE2b-256 289ab83f884add09296894a1223c9c404cb57155c1c4317d318abf8c170e07b5

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