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.6.1.tar.gz (131.5 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.6.1.win-amd64-py3.4.exe (321.8 kB view details)

Uploaded Source

psutil-0.6.1.win-amd64-py3.3.exe (320.9 kB view details)

Uploaded Source

psutil-0.6.1.win-amd64-py2.7.exe (322.4 kB view details)

Uploaded Source

psutil-0.6.1.win32-py3.4.exe (287.2 kB view details)

Uploaded Source

psutil-0.6.1.win32-py3.3.exe (287.2 kB view details)

Uploaded Source

psutil-0.6.1.win32-py2.7.exe (292.1 kB view details)

Uploaded Source

psutil-0.6.1.win32-py2.6.exe (292.5 kB view details)

Uploaded Source

psutil-0.6.1.win32-py2.5.exe (160.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-0.6.1.tar.gz
Algorithm Hash digest
SHA256 52eba795281cdd1079f13ded6a851f6d029551ddf552eadc9a2ee3eb26fe994d
MD5 93c1420cb3dac091325a80c9c5ed9623
BLAKE2b-256 4fe6989cb0b2f7f0ebe3ab0e7144b78db17387810f1526e98498be96fb755fa9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 402475d1a93306ac025070da9628a0ca0e0d253b0755bf13131318a39aaeea8e
MD5 4314014183950f0ba2dbcf33face67d9
BLAKE2b-256 95821f52f8aaa37e07da54da4468c031f59717d3f40cd82b6faaf8f203d84bd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 fde5e57f9b51057998cce5a030ad481f826832b26cc2a6490d60317c9024724c
MD5 00560371e14cf186989faffcd48d8fc4
BLAKE2b-256 7dd19e75848da16a5d165e3918540418f3052e6409357bcce91a7342b22d674f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 566bcec389a77279e10335eb5d0021eb968445720496b70b46d208dbbf8e49a1
MD5 ea6760e5793f2b57cbbce5723cc383b6
BLAKE2b-256 9abbcb19a41fa75a2205ac2d337be45183f879aa77e60bbb19387c872c81d451

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win32-py3.4.exe
Algorithm Hash digest
SHA256 095107d63b176fed2f4a44de3a4d19e8aa6291de0c3ee5e398272c9b72bf2254
MD5 4383f6b23b44d0225ec11cce974a240d
BLAKE2b-256 f488d20f7eefa6b8cc59f9320c52bf561ba52baea2b9b36568b198bca0b3548d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win32-py3.3.exe
Algorithm Hash digest
SHA256 03ea1f851920d6ddc286c1940ebd167ed92c1cb7a870f1789510c21c6fa6b7bc
MD5 1b074138f728c831c4cbb988b8131017
BLAKE2b-256 07121ce6196592e01965a375b307a57f68e90488a49a56a647f17ba027382448

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win32-py2.7.exe
Algorithm Hash digest
SHA256 e411f2374994663ad35bc21afe4ff9003e3675e23b07a2a60b57c760da0c5f3f
MD5 0f3eefe86605b13802c84399d4455e08
BLAKE2b-256 4a40e43e412c55f66b57aee3a418f47b05e7bb92db83df93c0c93b00f11f1357

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win32-py2.6.exe
Algorithm Hash digest
SHA256 1c1763ff214042e7be75fd6eb336322a47193342cddfc70b8547f086968e024c
MD5 446412ad5f02a6844b0179604e9bb8cf
BLAKE2b-256 3e7a5d53c99ec66ea86548d95acaf98b32f1cbb761cf2e1fc8ee62d0838f8e24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.6.1.win32-py2.5.exe
Algorithm Hash digest
SHA256 3f5b8afde564c563cd6fa28ac14ed020d91d654ef1efd6c0e1672282fcde8e65
MD5 d38b1d74e5598cc7c5dacbb4655f3672
BLAKE2b-256 5b3f10449a8a3dfb809fbeae3d853453aafb36376d51f33c46e02b5f0723c620

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