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

This version

0.7.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-0.7.1.tar.gz (138.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.7.1.win-amd64-py3.4.exe (325.0 kB view details)

Uploaded Source

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

Uploaded Source

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

Uploaded Source

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

Uploaded Source

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

Uploaded Source

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

Uploaded Source

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

Uploaded Source

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

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for psutil-0.7.1.tar.gz
Algorithm Hash digest
SHA256 5236f649318a06dcff8b86947c888d4510abce1783923aa5455b2d62df7204c7
MD5 68eaa0aadf43e20e8b82e844332d8172
BLAKE2b-256 8c751eeb93df943b70c2e18bf412b32d18af3577da831f2bfe8c7d29f8853a67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win-amd64-py3.4.exe
Algorithm Hash digest
SHA256 a5238a16cd85d4f3240dfca8ad94cb0bfe8643acb5c21d839a53caa86d8a23ab
MD5 30d5732baa5e274d720b6f03f67880fd
BLAKE2b-256 cc29d00e1011e6db097ffac31c2876fdba51fd1fc251ee472ad6219095739a86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 c00ec6a0e061e31687851c06d542500fd47b0ed415818e0da61c294f2796572b
MD5 65973fcd86d22e63ffb34b34642770d4
BLAKE2b-256 35b18506f2e78974da833b20b162d70b7e38ac3ab722adf18c03a3e428c9d9c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 47fc6887ec86bd7a422326dfc77e2b43fcbc71e498194f86088bb2268c2372b7
MD5 c6fbb61fc7d84bfe1ea5887b541e2486
BLAKE2b-256 2dab8fde8a7358a21bc2488a5d21a24879ce3cc162d2a99c56f9599c7d759c75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win32-py3.4.exe
Algorithm Hash digest
SHA256 f675a6346e5bd02469b043afff2db1b8e0b180e8a6d1ca94d44d23f26f60e68f
MD5 6534dc3b224dffcb560368c878217d64
BLAKE2b-256 f4f979ac18809795f53197fb5b6bd452d2b52f62e5bff6a66d9b813077a85eb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win32-py3.3.exe
Algorithm Hash digest
SHA256 fdf22a72f891a45b8a9ebca85b50a055a4ba7a8c05b98f93e1387b8ee88a4562
MD5 b807a4b947d5559ebe6cae4ae6fc1e8a
BLAKE2b-256 1acf98fdaf08279cd754414ab6723bbb6bd55d890624b766d64b21c35379d865

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win32-py2.7.exe
Algorithm Hash digest
SHA256 ee218aa12ee3af563833cf0bf109b15382261a0760a1ce636bf9e26e630f833e
MD5 0820915cb8ccd0cb134a97ed7b84a09f
BLAKE2b-256 3c4cd46a8bc865e58b30dcb160772667abf42f854ec4910ee1100e79961035ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win32-py2.6.exe
Algorithm Hash digest
SHA256 709d2e851c161f1ffad6bd7ed925ee90229dbd2067fbc26126c11d473075d7b7
MD5 9790451d3261995e2e40d27dc445defa
BLAKE2b-256 4d8ad51e550aa0928ab02e4f6b2531453b2e63c8877e30543e342c8a35c90d4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for psutil-0.7.1.win32-py2.5.exe
Algorithm Hash digest
SHA256 facf21db78120afb79ec51685043a5f84e897a84a7678db4381c0e377a481364
MD5 84903b63e9d24eeceeeb346ee5960b58
BLAKE2b-256 06d8a34c090687fa4c09bee5b5a06a762eb1af134d847b907d3e63c58e5d2cba

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