Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Cross-platform lib for process and system monitoring in Python

License

NotificationsYou must be signed in to change notification settings

giampaolo/psutil

DownloadsGithub starsGithub forksContributorsBinary packages
Latest versionLicenseStackoverflowTwitter FollowTidelift
Linux, macOS, WindowsFreeBSD, NetBSD, OpenBSD



Home   Install   Documentation   Download   Forum   Blog   Funding   What's new   

Summary

psutil (process and system utilities) is a cross-platform library forretrieving information onrunning processes andsystem utilization(CPU, memory, disks, network, sensors) in Python.It is useful mainly forsystem monitoring,profiling and limiting processresources andmanagement of running processes.It implements many functionalities offered by classic UNIX command line toolssuch asps, top, iotop, lsof, netstat, ifconfig, free and others.psutil currently supports the following platforms:

  • Linux
  • Windows
  • macOS
  • FreeBSD, OpenBSD,NetBSD
  • Sun Solaris
  • AIX

Supported Python versions are cPython 3.6+ andPyPy.Latest psutil version supporting Python 2.7 ispsutil 6.1.1.

Sponsors

add your logo

Funding

While psutil is free software and will always be, the project would benefitimmensely from some funding.psutil is among thetop 100most-downloaded Python packages, and keeping up with bug reports, user support,and ongoing maintenance has become increasingly difficult to sustain as aone-person effort.If you're a company that's making significant use of psutil you can considerbecoming a sponsor viaGitHub,Open Collective orPayPal.Sponsors can have their logo displayed here and in the psutildocumentation.

Example usages

This represents pretty much the whole psutil API.

CPU

>>>importpsutil>>>>>>psutil.cpu_times()scputimes(user=3961.46,nice=169.729,system=2150.659,idle=16900.540,iowait=629.59,irq=0.0,softirq=19.42,steal=0.0,guest=0,guest_nice=0.0)>>>>>>forxinrange(3):...psutil.cpu_percent(interval=1)...4.05.93.8>>>>>>forxinrange(3):...psutil.cpu_percent(interval=1,percpu=True)...[4.0,6.9,3.7,9.2][7.0,8.5,2.4,2.1][1.2,9.0,9.9,7.2]>>>>>>forxinrange(3):...psutil.cpu_times_percent(interval=1,percpu=False)...scputimes(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)scputimes(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)scputimes(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)>>>>>>psutil.cpu_count()4>>>psutil.cpu_count(logical=False)2>>>>>>psutil.cpu_stats()scpustats(ctx_switches=20455687,interrupts=6598984,soft_interrupts=2134212,syscalls=0)>>>>>>psutil.cpu_freq()scpufreq(current=931.42925,min=800.0,max=3500.0)>>>>>>psutil.getloadavg()# also on Windows (emulated)(3.14,3.89,4.67)

Memory

>>>psutil.virtual_memory()svmem(total=10367352832,available=6472179712,percent=37.6,used=8186245120,free=2181107712,active=4748992512,inactive=2758115328,buffers=790724608,cached=3500347392,shared=787554304)>>>psutil.swap_memory()sswap(total=2097147904,used=296128512,free=1801019392,percent=14.1,sin=304193536,sout=677842944)>>>

Disks

>>>psutil.disk_partitions()[sdiskpart(device='/dev/sda1',mountpoint='/',fstype='ext4',opts='rw,nosuid'),sdiskpart(device='/dev/sda2',mountpoint='/home',fstype='ext',opts='rw')]>>>>>>psutil.disk_usage('/')sdiskusage(total=21378641920,used=4809781248,free=15482871808,percent=22.5)>>>>>>psutil.disk_io_counters(perdisk=False)sdiskio(read_count=719566,write_count=1082197,read_bytes=18626220032,write_bytes=24081764352,read_time=5023392,write_time=63199568,read_merged_count=619166,write_merged_count=812396,busy_time=4523412)>>>

Network

>>>psutil.net_io_counters(pernic=True){'eth0':netio(bytes_sent=485291293,bytes_recv=6004858642,packets_sent=3251564,packets_recv=4787798,errin=0,errout=0,dropin=0,dropout=0),'lo':netio(bytes_sent=2838627,bytes_recv=2838627,packets_sent=30567,packets_recv=30567,errin=0,errout=0,dropin=0,dropout=0)}>>>>>>psutil.net_connections(kind='tcp')[sconn(fd=115,family=<AddressFamily.AF_INET:2>,type=<SocketType.SOCK_STREAM:1>,laddr=addr(ip='10.0.0.1',port=48776),raddr=addr(ip='93.186.135.91',port=80),status='ESTABLISHED',pid=1254),sconn(fd=117,family=<AddressFamily.AF_INET:2>,type=<SocketType.SOCK_STREAM:1>,laddr=addr(ip='10.0.0.1',port=43761),raddr=addr(ip='72.14.234.100',port=80),status='CLOSING',pid=2987), ...]>>>>>>psutil.net_if_addrs(){'lo': [snicaddr(family=<AddressFamily.AF_INET:2>,address='127.0.0.1',netmask='255.0.0.0',broadcast='127.0.0.1',ptp=None),snicaddr(family=<AddressFamily.AF_INET6:10>,address='::1',netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',broadcast=None,ptp=None),snicaddr(family=<AddressFamily.AF_LINK:17>,address='00:00:00:00:00:00',netmask=None,broadcast='00:00:00:00:00:00',ptp=None)],'wlan0': [snicaddr(family=<AddressFamily.AF_INET:2>,address='192.168.1.3',netmask='255.255.255.0',broadcast='192.168.1.255',ptp=None),snicaddr(family=<AddressFamily.AF_INET6:10>,address='fe80::c685:8ff:fe45:641%wlan0',netmask='ffff:ffff:ffff:ffff::',broadcast=None,ptp=None),snicaddr(family=<AddressFamily.AF_LINK:17>,address='c4:85:08:45:06:41',netmask=None,broadcast='ff:ff:ff:ff:ff:ff',ptp=None)]}>>>>>>psutil.net_if_stats(){'lo':snicstats(isup=True,duplex=<NicDuplex.NIC_DUPLEX_UNKNOWN:0>,speed=0,mtu=65536,flags='up,loopback,running'),'wlan0':snicstats(isup=True,duplex=<NicDuplex.NIC_DUPLEX_FULL:2>,speed=100,mtu=1500,flags='up,broadcast,running,multicast')}>>>

Sensors

>>>importpsutil>>>psutil.sensors_temperatures(){'acpitz': [shwtemp(label='',current=47.0,high=103.0,critical=103.0)],'asus': [shwtemp(label='',current=47.0,high=None,critical=None)],'coretemp': [shwtemp(label='Physical id 0',current=52.0,high=100.0,critical=100.0),shwtemp(label='Core 0',current=45.0,high=100.0,critical=100.0)]}>>>>>>psutil.sensors_fans(){'asus': [sfan(label='cpu_fan',current=3200)]}>>>>>>psutil.sensors_battery()sbattery(percent=93,secsleft=16628,power_plugged=False)>>>

Other system info

>>>importpsutil>>>psutil.users()[suser(name='giampaolo',terminal='pts/2',host='localhost',started=1340737536.0,pid=1352),suser(name='giampaolo',terminal='pts/3',host='localhost',started=1340737792.0,pid=1788)]>>>>>>psutil.boot_time()1365519115.0>>>

Process management

>>>importpsutil>>>psutil.pids()[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)>>>ppsutil.Process(pid=7055,name='python3',status='running',started='09:04:44')>>>p.pid7055>>>p.name()'python3'>>>p.exe()'/usr/bin/python3'>>>p.cwd()'/home/giampaolo'>>>p.cmdline()['/usr/bin/python3','main.py']>>>>>>p.ppid()7054>>>p.parent()psutil.Process(pid=4699,name='bash',status='sleeping',started='09:06:44')>>>p.parents()[psutil.Process(pid=4699,name='bash',started='09:06:44'),psutil.Process(pid=4689,name='gnome-terminal-server',status='sleeping',started='0:06:44'),psutil.Process(pid=1,name='systemd',status='sleeping',started='05:56:55')]>>>p.children(recursive=True)[psutil.Process(pid=29835,name='python3',status='sleeping',started='11:45:38'),psutil.Process(pid=29836,name='python3',status='waking',started='11:43:39')]>>>>>>p.status()'running'>>>p.create_time()1267551141.5019531>>>p.terminal()'/dev/pts/0'>>>>>>p.username()'giampaolo'>>>p.uids()puids(real=1000,effective=1000,saved=1000)>>>p.gids()pgids(real=1000,effective=1000,saved=1000)>>>>>>p.cpu_times()pcputimes(user=1.02,system=0.31,children_user=0.32,children_system=0.1,iowait=0.0)>>>p.cpu_percent(interval=1.0)12.1>>>p.cpu_affinity()[0,1,2,3]>>>p.cpu_affinity([0,1])# set>>>p.cpu_num()1>>>>>>p.memory_info()pmem(rss=10915840,vms=67608576,shared=3313664,text=2310144,lib=0,data=7262208,dirty=0)>>>p.memory_full_info()# "real" USS memory usage (Linux, macOS, Win only)pfullmem(rss=10199040,vms=52133888,shared=3887104,text=2867200,lib=0,data=5967872,dirty=0,uss=6545408,pss=6872064,swap=0)>>>p.memory_percent()0.7823>>>p.memory_maps()[pmmap_grouped(path='/lib/x8664-linux-gnu/libutil-2.15.so',rss=32768,size=2125824,pss=32768,shared_clean=0,shared_dirty=0,private_clean=20480,private_dirty=12288,referenced=32768,anonymous=12288,swap=0),pmmap_grouped(path='/lib/x8664-linux-gnu/libc-2.15.so',rss=3821568,size=3842048,pss=3821568,shared_clean=0,shared_dirty=0,private_clean=0,private_dirty=3821568,referenced=3575808,anonymous=3821568,swap=0),pmmap_grouped(path='[heap]',rss=32768,size=139264,pss=32768,shared_clean=0,shared_dirty=0,private_clean=0,private_dirty=32768,referenced=32768,anonymous=32768,swap=0),pmmap_grouped(path='[stack]',rss=2465792,size=2494464,pss=2465792,shared_clean=0,shared_dirty=0,private_clean=0,private_dirty=2465792,referenced=2277376,anonymous=2465792,swap=0), ...]>>>>>>p.io_counters()pio(read_count=478001,write_count=59371,read_bytes=700416,write_bytes=69632,read_chars=456232,write_chars=517543)>>>>>>p.open_files()[popenfile(path='/home/giampaolo/monit.py',fd=3,position=0,mode='r',flags=32768),popenfile(path='/var/log/monit.log',fd=4,position=235542,mode='a',flags=33793)]>>>>>>p.net_connections(kind='tcp')[pconn(fd=115,family=<AddressFamily.AF_INET:2>,type=<SocketType.SOCK_STREAM:1>,laddr=addr(ip='10.0.0.1',port=48776),raddr=addr(ip='93.186.135.91',port=80),status='ESTABLISHED'),pconn(fd=117,family=<AddressFamily.AF_INET:2>,type=<SocketType.SOCK_STREAM:1>,laddr=addr(ip='10.0.0.1',port=43761),raddr=addr(ip='72.14.234.100',port=80),status='CLOSING')]>>>>>>p.threads()[pthread(id=5234,user_time=22.5,system_time=9.2891),pthread(id=5237,user_time=0.0707,system_time=1.1)]>>>>>>p.num_threads()4>>>p.num_fds()8>>>p.num_ctx_switches()pctxsw(voluntary=78,involuntary=19)>>>>>>p.nice()0>>>p.nice(10)# set>>>>>>p.ionice(psutil.IOPRIO_CLASS_IDLE)# IO priority (Win and Linux only)>>>p.ionice()pionice(ioclass=<IOPriority.IOPRIO_CLASS_IDLE:3>,value=0)>>>>>>p.rlimit(psutil.RLIMIT_NOFILE, (5,5))# set resource limits (Linux only)>>>p.rlimit(psutil.RLIMIT_NOFILE)(5,5)>>>>>>p.environ(){'LC_PAPER':'it_IT.UTF-8','SHELL':'/bin/bash','GREP_OPTIONS':'--color=auto','XDG_CONFIG_DIRS':'/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg', ...}>>>>>>p.as_dict(){'status':'running','num_ctx_switches':pctxsw(voluntary=63,involuntary=1),'pid':5457, ...}>>>p.is_running()True>>>p.suspend()>>>p.resume()>>>>>>p.terminate()>>>p.kill()>>>p.wait(timeout=3)<Exitcode.EX_OK:0>>>>>>>psutil.test()USERPID%CPU%MEMVSZRSSTTYSTARTTIMECOMMANDroot10.00.0245842240Jun1700:00initroot20.00.000Jun1700:00kthreadd...giampaolo314750.00.0207603024/dev/pts/0Jun1900:00python2.4giampaolo317210.02.277306018189600:0410:30chromeroot317630.00.00000:0500:00kworker/0:1>>>

Further process APIs

>>>importpsutil>>>forprocinpsutil.process_iter(['pid','name']):...print(proc.info)...{'pid':1,'name':'systemd'}{'pid':2,'name':'kthreadd'}{'pid':3,'name':'ksoftirqd/0'}...>>>>>>psutil.pid_exists(3)True>>>>>>defon_terminate(proc):...print("process {} terminated".format(proc))...>>># waits for multiple processes to terminate>>>gone,alive=psutil.wait_procs(procs_list,timeout=3,callback=on_terminate)>>>

Heap info

>>>importpsutil>>>psutil.heap_info()pheap(heap_used=5177792,mmap_used=819200)>>>psutil.heap_trim()

See alsopsleak

Windows services

>>>list(psutil.win_service_iter())[<WindowsService(name='AeLookupSvc',display_name='Application Experience')at38850096>,<WindowsService(name='ALG',display_name='Application Layer Gateway Service')at38850128>,<WindowsService(name='APNMCP',display_name='Ask Update Service')at38850160>,<WindowsService(name='AppIDSvc',display_name='Application Identity')at38850192>, ...]>>>s=psutil.win_service_get('alg')>>>s.as_dict(){'binpath':'C:\\Windows\\System32\\alg.exe','description':'Provides support for 3rd party protocol plug-ins for Internet Connection Sharing','display_name':'Application Layer Gateway Service','name':'alg','pid':None,'start_type':'manual','status':'stopped','username':'NT AUTHORITY\\LocalService'}

Projects using psutil

Here's some I find particularly interesting:

Portings

Supporters

People who donated money over the years:

add your avatar

About

Cross-platform lib for process and system monitoring in Python

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors209

Languages


[8]ページ先頭

©2009-2026 Movatter.jp