Python自动化运维——系统性能信息模块
Infi-chu:
http://www.cnblogs.com/Infi-chu/
模块:psutil
psutil是一个跨平台库,可以很轻松的为我们实现获取系统运行的进程和资源利用率等信息。
功能:主要是为了系统监控
安装:
wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificate tar -zxvf psutil-2.0.0.tar.gz cd psutil-2.0.0 python setup.py install
CPU信息:
CPU利用率主要包括以下几部分
- User time,执行用户进程的时间百分比
- System time,执行内核进程和中断的时间百分比
- Wait IO,由于IO等待而使CPU处于idle(空闲)状态的时间百分比
- Idle,CPU处于idle状态的时间百分比
Psutil.cpu_times() 使用方法:
#import psutil #psutil.cpu_times(percpu=True) # 使用cpu_times 方法获取CPU完整信息,需要显示所有逻辑CPU信息,percpu = True可选 #psutil.cpu_times().user # 获取单项数据信息,如用户user 的CPU 时间比 #psutil.cpu_count() # 获取CPU 的逻辑个数,默认logical=True #psytil.cpu_count(logical=False) # 获取CPU 的物理个数
内存信息:
内存信息主要包括以下几个部分:
- Total(内存总数)
- Used(已使用的内存数)
- Free(空闲内存数)
- Buffers(缓冲使用数)
- Cache(缓存使用数)
- Swap(交换分区使用数)
Psutil.virtual_memory()和psutil.swap_memory() 使用方法:
#import psutil #mem=psutil.virtual_memory() # 获取内存完整信息 #print(mem) #mem.total # 获取内存总数 #mem.free # 获取空闲内存数 #psutil.swap_memory() # 获取swap分区信息
磁盘信息:
磁盘信息主要包括以下几个部分:
- Read_count(读IO数)
- Write_time(写IO数)
- Read_bytes(IO读字节数)
- Read_time(磁盘读时间)
- Write_time(磁盘写时间)
Psutil.disk_io_counters() 使用方法:
#import psutil #psutil.disk_partitions() # 获取磁盘完整信息 #psutil.disk_usage('/') # 获取分区(参数) 使用情况 #psutil.disk_io_counters() # 获取硬盘总的IO个数、读写信息 #psutil.disk_io_counters(perdisk=True) # 'perdisk=True'参数获取单个分区IO个数、读写信息
网络信息:
网络信息主要包括以下几个部分:
- Bytes_sent(发送字节数)
- Bytes_recv(接收字节数)
- Packets_sent(发送数据包数)
- Packets_recv(接收数据包数)
Psutil.net_io_counters() 使用方法:
#import psutil #psutil.net_io_counters() # 获取网络总的IO信息,默认pernic=False #psutil.net_io_counters(pernic=True) # 输出每个网络接口的IO信息
其他系统信息:
#import psutil,datetime #psutil.users() # 返回当前登录系统的用户信息 #psutil.boot_time() # 获取开机时间,以Linux时间戳格式返回 #datetime.datetime.formtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S') # 转换成自然时间格式