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

Uploaded Source

Built Distributions

psutil-1.0.0.win-amd64-py3.4.exe (326.9 kB view details)

Uploaded Source

psutil-1.0.0.win-amd64-py3.3.exe (326.0 kB view details)

Uploaded Source

psutil-1.0.0.win-amd64-py2.7.exe (327.5 kB view details)

Uploaded Source

psutil-1.0.0.win32-py3.4.exe (291.8 kB view details)

Uploaded Source

psutil-1.0.0.win32-py3.3.exe (291.9 kB view details)

Uploaded Source

psutil-1.0.0.win32-py2.7.exe (296.8 kB view details)

Uploaded Source

psutil-1.0.0.win32-py2.6.exe (297.2 kB view details)

Uploaded Source

psutil-1.0.0.win32-py2.5.exe (165.6 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-1.0.0.tar.gz
Algorithm Hash digest
SHA256 af776ebeaf2420709b1ab741f664c048dcfc2890e3e7d151ae868fbdc3d47920
MD5 d68e3a779f5b9b5a779d76a9c5cd5244
BLAKE2b-256 ed7edd4062bfbe9b735793a5e63a38d83ba37292c4ada3615fe54403c54e3260

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 ef6974ac18407fb15430cd7b81aecc2f3666e75ca83fe3a66848c4c5c086e0a3
MD5 3cd7194ee73326a619990dbc3cc78025
BLAKE2b-256 5bc1003f0071d1e2a4dfe12ac2d66ac14f5a5a93049544c11ac9c78d83d85318

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 cdced3409a241b9d357b82c72d00ece49602cdc3f694ed988a952761367df560
MD5 537d6174661d82af7912c0f1a5245a8f
BLAKE2b-256 03a4aa6592e676f75705b77df8e319f6aa35cf08a662fb0cfaa34434d273d7c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 7868ef2ecc1d847620d99b40f8105b6d5303784abbde34da2388b2c18e73a3d2
MD5 3d366d6ce5e2d2f997b91c049aba4865
BLAKE2b-256 11468a6581c14d644f747ea66a12c60ffebebd4f8a77af62192aeb20cc16ae17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win32-py3.4.exe
Algorithm Hash digest
SHA256 191c2e6953426c861d7e100d48a5b522307ffc3de7d9e7bc8509aa45fb3de60c
MD5 b7c0711ac32a46df0eb197b132b16442
BLAKE2b-256 0a5018ebd254b6662c98a8310983fff6795c7ac303d25188fd727888ca1c5211

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 acf6cbc2408869b2843d406a802b6895969a358c762b5ab3e6f5afdd0c918faf
MD5 0adc4d10d63247edc780ecae82abbc40
BLAKE2b-256 5bf70bad3fc8ff5f226fa933a847b5fb3355562421f0456348747cf18f7137f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win32-py2.7.exe
Algorithm Hash digest
SHA256 3f311d4f060b83d7cd0068dbad867ad17e699d3c335e494dc31db5380154fdf4
MD5 a96dea346d481c971c4ea191bf7c1348
BLAKE2b-256 994e8c1f5db3e90dbdbde891c34fd2496805a93aa279433bac716098efad1b4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win32-py2.6.exe
Algorithm Hash digest
SHA256 7571d74d351bba723b28666a13da43c07bb3568543be3f9f7404af2b8c1ecf3a
MD5 7024e5ffe30cb876ae1a5bbcc776b189
BLAKE2b-256 ad8c37599876ea078c7c2db10d746f0e0aa805abcacbab96d1cf5dfb0465c40b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-1.0.0.win32-py2.5.exe
Algorithm Hash digest
SHA256 d8213feaa4c560c61514cea4e6a7eec83f6df83694bb97b06d009e919f60c48f
MD5 126880ad97179e02ff95edea3d17f224
BLAKE2b-256 d6285753ba13863c26d8a8fef685690b539a4652f1c4929d13d482eb4d691d99

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page