psutil (process and system utilities) is a cross-platform library for
retrieving information on running processes and system utilization (CPU,
memory, disks, network) in Python. It is useful mainly for system
monitoring, profiling and limiting process resources and management of
running processes. It implements many functionalities offered by command
line tools such as: ps, top, lsof, netstat, ifconfig, who, df, kill, free,
nice, ionice, iostat, iotop, uptime, pidof, tty, taskset, pmap. It
currently supports Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD,
NetBSD and AIX, both 32-bit and 64-bit architectures, with Python versions
from 2.6 to 3.6. PyPy is also known to work.
- #1239: [Linux] expose kernel "slab" memory for psutil.virtual_memory().
(patch by Maxime Mouial)
- #694: [SunOS] cmdline() could be truncated at the 15th character when
reading it from /proc. An extra effort is made by reading it from process
address space first. (patch by Georg Sauthoff)
- #771: [Windows] cpu_count() (both logical and physical) return a wrong
(smaller) number on systems using process groups (> 64 cores).
- #771: [Windows] cpu_times(percpu=True) return fewer CPUs on systems using
process groups (> 64 cores).
- #771: [Windows] cpu_stats() and cpu_freq() may return incorrect results on
systems using process groups (> 64 cores).
- #1193: [SunOS] Return uid/gid from /proc/pid/psinfo if there aren't
enough permissions for /proc/pid/cred. (patch by Georg Sauthoff)
- #1194: [SunOS] Return nice value from psinfo as getpriority() doesn't
support real-time processes. (patch by Georg Sauthoff)
- #1194: [SunOS] Fix double free in psutil_proc_cpu_num(). (patch by Georg
- #1194: [SunOS] Fix undefined behavior related to strict-aliasing rules
and warnings. (patch by Georg Sauthoff)
- #1210: [Linux] cpu_percent() steal time may remain stuck at 100% due to
erroneously reporting a decreased steal time between calls. (patch by
- #1216: fix compatibility with python 2.6 on Windows (patch by Dan
- #1222: [Linux] Process.memory_full_info() was erroneously summing "Swap:"
"SwapPss:". Same for "Pss:" and "SwapPss". Not anymore.
- #1224: [Windows] Process.wait() may erroneously raise TimeoutExpired.
- #1238: [Linux] sensors_battery() may return None in case battery is not
listed as "BAT0" under /sys/class/power_supply.
- #1240: [Windows] cpu_times() float loses accuracy in a long running
(patch by stswandering)
- #1245: [Linux] sensors_temperatures() may fail with IOError "no such
- #1255: [FreeBSD] swap_memory() stats were erroneously represented in KB.
(patch by Denis Krienbühl)
- #771: [Windows] cpu_count(logical=False) on Windows XP and Vista is no
longer supported and returns None.