|
|
# psutil 模块
|
|
|
|
|
|
```shell
|
|
|
#psutil.cpu_times(percpu=False) #查看CPU所有信息
|
|
|
scputimes(user=306.98, nice=2.01, system=337.34, idle=410414.39, iowait=78.37, irq=0.0, softirq=17.42, steal=0.0, guest=0.0, guest_nice=0.0)
|
|
|
|
|
|
#user:用户进程花费的时间
|
|
|
#nice:用户模式执行Niced优先级进程花费的时间
|
|
|
#system:内核模式进程花费的时间
|
|
|
#idle:闲置时间
|
|
|
#iowait:等待I/O完成的时间
|
|
|
#irq:处理硬件中断的时间
|
|
|
#softirq:处理软件中断的时间
|
|
|
#steal:虚拟化环境中运行的其他操作系统花费的时间
|
|
|
#guest:在linux内核的控制下为客户端操作系统运行虚拟CPU所花费的时间
|
|
|
#guest_nice:虚拟机运行niced所花费的时间
|
|
|
```
|
|
|
|
|
|
```shell
|
|
|
#psutil.cpu_count(logical=True) #显示cpu逻辑个数
|
|
|
#psutil.cpu_count(logical=False) #显示CPU物理个数
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
#psutil.cpu_stats() #CPU统计信息
|
|
|
scpustats(ctx_switches=9838934, interrupts=10572621, soft_interrupts=5582125, syscalls=0)
|
|
|
|
|
|
#ctx_switches:启动后的上下问切换次数
|
|
|
#interrupts:自启动以来的中断次数
|
|
|
#soft_interrupts:启动后的软件中断数量
|
|
|
#syscalls:启动以来的系统调用次数,linux为0
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
#mem = psutil.virtual_memory() #获取内存完整信息
|
|
|
svmem(total=2078892032, available=1508818944, percent=27.4, used=367063040, free=135192576, active=874614784, inactive=694231040, buffers=122880, cached=1576513536, shared=10444800, slab=255148032)
|
|
|
|
|
|
#total:总物理内存
|
|
|
#available:可用的内存
|
|
|
#used:使用的内存
|
|
|
#free:完全没有使用的内存
|
|
|
#active:当前正在使用的内存
|
|
|
#inactive:标记为未使用的内存
|
|
|
#buffers:缓存文件系统元数据使用的内存
|
|
|
#cached:缓存各种文件的内存
|
|
|
#shared:可以被多个进程同时访问的内存
|
|
|
#slab:内核数据结构缓存的内存
|
|
|
|
|
|
#psutil.swap_memory() #获取swap内存信息
|
|
|
sswap(total=2148528128, used=270336, free=2148257792, percent=0.0, sin=0, sout=12288)
|
|
|
|
|
|
#total:以字节为单位的总交换内存
|
|
|
#used:以字节为单位使用交换内存
|
|
|
#free:以字节为单位的可用交换内存
|
|
|
#percent:使用百分比
|
|
|
#sin:系统从磁盘交换的字节数
|
|
|
#sout:系统从磁盘换出的字节数
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
#psutil.disk_partitions(all=False) #获取磁盘完整信息
|
|
|
[sdiskpart(device='/dev/sda3', mountpoint='/', fstype='xfs', opts='rw,seclabel,relatime,attr2,inode64,noquota'),
|
|
|
sdiskpart(device='/dev/sda5', mountpoint='/home', fstype='xfs', opts='rw,seclabel,relatime,attr2,inode64,noquota'),
|
|
|
sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='xfs', opts='rw,seclabel,relatime,attr2,inode64,noquota')]
|
|
|
|
|
|
# device 设备名称
|
|
|
# mountpoint 挂载目录
|
|
|
# fstype 文件系统类型
|
|
|
# opts 挂载方式
|
|
|
```
|
|
|
|
|
|
```shell
|
|
|
#psutil.disk_usage('/') #获取分区使用情况
|
|
|
sdiskusage(total=53660876800, used=3662462976, free=49998413824, percent=6.8)
|
|
|
|
|
|
#total:总的大小(字节)
|
|
|
#used:已使用的大小(字节)
|
|
|
#free:空闲的大小(字节)
|
|
|
#percent:使用百分比
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
#psutil.disk_io_counters(perdisk=False,nowrap=True) #将系统范围的磁盘I/0统计作为命名元组返回 如果perdisk为True 区分单个分区
|
|
|
sdiskio(read_count=20173, write_count=196206, read_bytes=777824768, write_bytes=2732865536, read_time=207425, write_time=363200, read_merged_count=57, write_merged_count=6063, busy_time=277196)
|
|
|
|
|
|
#read_count:读取次数
|
|
|
#write_count:写入次数
|
|
|
#read_bytes:读取的字节数
|
|
|
#write_bytes:写入的字节数
|
|
|
#read_time:从磁盘读取的时间(以毫秒为单位)
|
|
|
#write_time:写入磁盘的时间(毫秒为单位)
|
|
|
#busy_time:花费在实际I/O上的时间
|
|
|
#read_merged_count:合并读取的数量
|
|
|
#write_merged_count:合并写入次数
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
In [6]: import psutil,time
|
|
|
In [7]: psutil.boot_time() #系统启动时间戳
|
|
|
Out[7]: 1567342872.0
|
|
|
In [9]: time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(psutil.boot_time()))
|
|
|
Out[9]: '2019-09-01 21:01:12'
|
|
|
```
|
|
|
|
|
|
```python
|
|
|
In [10]: psutil.users() # 查看当前连接的用户
|
|
|
Out[10]:
|
|
|
[suser(name='root', terminal='tty1', host='', started=1567070080.0, pid=6547),
|
|
|
suser(name='root', terminal='pts/0', host='192.168.252.1', started=1567433088.0, pid=82270),
|
|
|
suser(name='root', terminal='pts/1', host='192.168.252.1', started=1567433088.0, pid=82287),
|
|
|
suser(name='root', terminal='pts/2', host='192.168.252.1', started=1567436416.0, pid=11672),
|
|
|
suser(name='root', terminal='pts/3', host='192.168.252.1', started=1567436416.0, pid=11673),
|
|
|
suser(name='root', terminal='pts/4', host='192.168.252.1', started=1567436416.0, pid=16554),
|
|
|
suser(name='root', terminal='pts/5', host='192.168.252.1', started=1567436416.0, pid=16559)]
|
|
|
|
|
|
```
|
|
|
|