psutil模块

一、模块简介

模块功能:

基于python编写的系统监控模块,主要用于系统监控、分析、限制进程资源和运行进程管理。支持32位和64位的windows、linux、OSX, Sun Solaris, FreeBSD, OpenBSD and NetBSD。支持python2.6到3.6版本。

官方文档:

http://pythonhosted.org/psutil/

下载地址:

https://pypi.python.org/pypi/psutil/

安装方式:

官方介绍
  https://github.com/giampaolo/psutil/blob/master/INSTALL.rst
pip安装
  pip install psutil
yum安装
  yum install python-psutil

二、获取CPU

    psutil.cpu_times(percpu=False)
       官方英文没看明白,自己理解的。返回的是一个指定元组,每个属性表示的是cpu在给定模式下花费的时间。然后返回的属性可用性因平台而不同。
       percpu=False:显示总的占用
       percpu=True:显示每个逻辑cpu核心的占用

       返回结果:
            scputimes(user=1516.22, nice=0.62, system=701.74, idle=1273716.88, iowait=45.44, irq=0.0, softirq=0.74, steal=0.0, guest=0.0, guest_nice=0.0)

        user表示用户占用cpu时间
        nice表示在用户模式下执行的被划分优先级的进程花费的时间,在linux上包括guest_nice的时间。
        system表示系统内核占用cpu的时间
        idle表示cpu空闲时间
        iowait表示cpu等待i/o的时间
        irq表示硬中断占用cpu的时间
        softirq表示软中断占用时间
        steal表示在虚拟化环境中运行的其他操作系统花费的时间
        guest表示在linux内核的控制下为客户机操作系统运行虚拟cpu的时间
        guest_nice  翻译没看明白,直接记录英文原文
            (Linux 3.2.0+): time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel)

    psutil.cpu_percent(interval=None, percpu=False)
        以百分比的形式返回cpu的利用率
        interval至少要设置等于0.1,如果不设置的话,获取的值有可能是无效的(具体原因看官网,英语不好,没有理解官网的意思)
        percpu=False:显示总的占用
        percpu=True:显示每个逻辑cpu核心的占用

    psutil.cpu_times_percent(interval=None, percpu=False)
        返回参数和psutil.cpu_times相同,返回单位为百分比。返回了cpu在特定时间占用的百分比。
        interval、percpu参数和psutil.cpu_percent使用方法相同

    psutil.cpu_count(logical=True)
        返回cpu的逻辑数量,如果logical=False则返回物理cpu个数。

    psutil.cpu_stats()
        上下文切换,中断次数等相关。
        Return various CPU statistics as a named tuple:
            ● ctx_switches: number of context switches (voluntary + involuntary) since boot.
            ● interrupts: number of interrupts since boot.
            ● soft_interrupts: number of software interrupts since boot. Always set to 0 on Windows and SunOS.
            ● syscalls: number of system calls since boot. Always set to 0 on Linux.
        New in version 4.1.0.

     psutil.cpu_freq(percpu=False)
        Return CPU frequency as a nameduple including current, min and max frequencies expressed in Mhz. On Linux currentfrequency reports the real-time value, on all other platforms it represents the nominal “fixed” value. If percpu is True and the system supports per-cpu frequency retrieval (Linux only) a list of frequencies is returned for each CPU, if not, a list with a single element is returned. If min and max cannot be determined they are set to 0.
      

二、获取内存

   方法:psutil.virtual_memory()
      返回值:
        {'available': 3571601408, 'used': 114671616, 'cached': 256483328, 'percent': 10.2, 'free': 3388383232, 'active': 417320960, 'shared': 101220352, 'total': 3975925760, 'buffers': 216387584}
      返回值单位:除了percent是百分比以为,其它都是字节。
      total:总物理内存   
      available:可以立即给予进程的内存,不用系统进行交换。
      used:目前使用的内存
      cached:缓存
      percent:使用百分比
      buffers:缓存文件系统元数据
      shared:共享内存
      free:目前空闲的内存
      active:当前正在使用或最近使用的内存,因此它在RAM中。

  方法:psutil.swap_memory()
     返回值:{'used': 0, 'percent': 0.0, 'free': 0, 'sout': 0, 'total': 0, 'sin': 0}
     返回值单位:除了percent是百分比以为,其它都是字节。
     total:总交换内存
     used : 官方文档是,以字节为单位的交换内存。这里应该是已经使用的。不过我的云主机内存还够,所以没有去确认。
     free:官方文档是,以字节为单位的空闲交换内存。这里应该是空闲的。
     percent:使用百分比
     sin和sout没看明白,有需要的,可以去看官方文档。
Previous Post

python使用base64

Next Post

python处理json

Related Posts