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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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