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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

psutil-0.7.0.win-amd64-py3.4.exe (325.0 kB view details)

Uploaded Source

psutil-0.7.0.win-amd64-py3.3.exe (324.1 kB view details)

Uploaded Source

psutil-0.7.0.win-amd64-py2.7.exe (325.7 kB view details)

Uploaded Source

psutil-0.7.0.win32-py3.4.exe (290.0 kB view details)

Uploaded Source

psutil-0.7.0.win32-py3.3.exe (290.0 kB view details)

Uploaded Source

psutil-0.7.0.win32-py2.7.exe (294.9 kB view details)

Uploaded Source

psutil-0.7.0.win32-py2.6.exe (295.4 kB view details)

Uploaded Source

psutil-0.7.0.win32-py2.5.exe (163.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-0.7.0.tar.gz
Algorithm Hash digest
SHA256 95089802017ee629b84332deeb367f7f775b42e827ee283d46b7e99d05120d71
MD5 87e89b4d41742a67149bc3be15663bc6
BLAKE2b-256 0b8caeb6acf5a4610f8d5bb29ade04081d8672c2294c3cefa1f0422c6398bc66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 0e78c6b441e659d922c5fddd5d5a36a368a61192873a0600ba23171c14dc2a6d
MD5 4a1510007f663f453204ca89211db73e
BLAKE2b-256 ce8a95e7c8b343a92137d82e4635fcb3f5c69c29e2a84ce4d51f2d5d86020b1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 520a43be7fcd21d63c02039cdd7ebfe959b9fa9a865ba9aab6b0194a85184250
MD5 33a593ee23002af589cca61bbdadc8ad
BLAKE2b-256 7b03d6bff7ff8570f3521a1d7949f03741210f11ba5ba807789d37e185a0a780

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 add60c89c13443617c83116fab34a3c6e4f32ee8b102ff6ffb4cd20ef6f511c3
MD5 59c9cd1344ca47e91a3960ae2b2f3985
BLAKE2b-256 388ef3023be1a2268b5ee3a20e05ec8997a95c987f6f2b7dadad837674d562e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win32-py3.4.exe
Algorithm Hash digest
SHA256 6fdeca414a470d156ebdf1b6e4e9ca0fd9eb1b53e8d9a0cbb7d4a69d31f68bdc
MD5 f370a9408b076fcb4df3072db5e2cf62
BLAKE2b-256 427d8e159acbf98eed98b778c244287b295f06411ac9e1903d2d358ba48b1d36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win32-py3.3.exe
Algorithm Hash digest
SHA256 9ce0d7a8cedde996eaae1eda3db9b473d441bd6c797b36a166d7b7a70dd4650e
MD5 a29dabb5c58eb23461020ad36db88b36
BLAKE2b-256 73198009828f3cfcf529570822e52988b95ac1c25c90ba4fb96ae570b5c25e66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win32-py2.7.exe
Algorithm Hash digest
SHA256 bc36a7350b89e2ada06691583f4c4c2f99988fe6fa710d4f8e4143bed9f9f8bf
MD5 bfc794e0d5a0099ed378af5ad38adde6
BLAKE2b-256 121c053e0d5485a39c055e92b845b6311ab54887a091836a3985369cfffa9e53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win32-py2.6.exe
Algorithm Hash digest
SHA256 21e1d7880579ef7eea28547c737923eaeee53389d51fa971d9f70bf89e9759ee
MD5 df4ee121ed093212d40a4413df71d68b
BLAKE2b-256 14e9ac4865772c55a3c09c85d987ac2a0e679c31e897d536f389485019c29450

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.0.win32-py2.5.exe
Algorithm Hash digest
SHA256 532b918d8d2df60c20c69c1f764b9b16373ea22c32595fe801e3cc9b1aa5adfb
MD5 267c07ccb83cbc8a3f228647943fc1b5
BLAKE2b-256 9e6fa946eeb3c6b8848fcf6d21c52884e2639e7d4393b51f330d4555ec177e83

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