You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
4.9 KiB

# 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)]
```