Skip to main content

A process and system utilities module for Python

Project description

https://pypip.in/d/psutil/badge.png https://pypip.in/v/psutil/badge.png

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

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.2.1.tar.gz (167.4 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.2.1.win-amd64-py3.3.exe (329.7 kB view details)

Uploaded Source

psutil-1.2.1.win-amd64-py2.7.exe (307.1 kB view details)

Uploaded Source

psutil-1.2.1.win32-py3.3.exe (271.9 kB view details)

Uploaded Source

psutil-1.2.1.win32-py3.2.exe (277.2 kB view details)

Uploaded Source

psutil-1.2.1.win32-py2.7.exe (278.0 kB view details)

Uploaded Source

psutil-1.2.1.win32-py2.6.exe (278.2 kB view details)

Uploaded Source

psutil-1.2.1.win32-py2.5.exe (143.9 kB view details)

Uploaded Source

psutil-1.2.1.win32-py2.4.exe (143.9 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-1.2.1.tar.gz
Algorithm Hash digest
SHA256 508e4a44c8253a386a0f86d9c9bd4a1b4cbb2f94e88d49a19c1513653ca66c45
MD5 80c3b251389771ab472e554e6c729c36
BLAKE2b-256 8a453b9dbd7a58482018927f756de098388ee252dd230143ddf486b3017117b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 26fd84571ac026861d806a9f64e3bbfd38d619a8195c1edfd31c0a9ee2295b03
MD5 dc3a93b0fa84c786fac8c36bebd6b3e3
BLAKE2b-256 d8652e9941492b3d001a87d87b5e5827b1f3cec42e30b7110fa82d24be8c4526

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 f3af7b44925554531dff038e0401976a6b92b089ecca51d50be903420d7a262d
MD5 7aec92fca9705348d1c8510a56db841a
BLAKE2b-256 4047665755b95ad75e6223af96f2d7c04667f663a53dede0315df9832c38b60d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win32-py3.3.exe
Algorithm Hash digest
SHA256 1a1c8e6635949a698b6ade3d5d2a8368daff916d8122cf13286c79a52ec8d7a1
MD5 38f2a4d625b84ede6fd16606ab1af73b
BLAKE2b-256 86df007ca575da6ee7cbb015dc00122028ee0c97fc6a0c9e8bc02333753bfd2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win32-py3.2.exe
Algorithm Hash digest
SHA256 7e64d065f12e8f941f2dbb2f3df0887b2677fee7b2b4c50ed91e490e094c7273
MD5 026a1043f461c9fa7f1fc4e82b754ba3
BLAKE2b-256 aec52842c69c67ae171f219efa8bb11bddc2fcec2cea059721e716fe4d48b50c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win32-py2.7.exe
Algorithm Hash digest
SHA256 02fb79b9e5336ff179c44ce2017308cf46316e19bea70abb8855afd808db2a0f
MD5 c4264532a64414cf3aa0d8b17d17e015
BLAKE2b-256 5b7f9334b57597acabaaf2261c93bb9b1f9f02cdfef5c1b1aa808b262f770adb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win32-py2.6.exe
Algorithm Hash digest
SHA256 3ad3a40afd859cf0217a2d643c74be3a12ed2f54ebd4a91c40fa7b13084573c6
MD5 7d3d9c8bc147b87c04e93dd0ff1bd502
BLAKE2b-256 c6e067810b602a598488d1f2982451655427effe7c7062184fe036c2b5bc928f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win32-py2.5.exe
Algorithm Hash digest
SHA256 aad7d81607b3ad740fee47b27a9f1434a05fe35dc68abefb1f961f74bae3c3f9
MD5 6408652cd4b72ba34500823ba5133ee9
BLAKE2b-256 bda05087d4a5145326a5a07a53ed4f9cd5c09bf5dad4f8d7b9850e6aaa13caa2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.2.1.win32-py2.4.exe
Algorithm Hash digest
SHA256 84a4e7e2de1ca6f45359cfd7fd60c807f494385a6d97804bd58759a94b9c5e2d
MD5 a1abd2e5204cae138c3d92147d5f391f
BLAKE2b-256 5c99d9147b76eea8c185b6cefbb46de73ae880e5ef0ff36d93cb3f6084e50d59

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