cpu方法目录 - KPTest框架开放资料

Skip to content

# cpu方法目录

1. get_cpu_core
> 描述：

    1
    2
    3

    方法功能：获取CPU逻辑核心数

    命令格式：cat /proc/cpuinfo | grep -c processor

> 参数：

    1

    None

> 返回值：

    1

    core_num   (int):CPU逻辑核心数

> 异常：

    1

    KPTestException(f"通过执行{cmd}命令来获取CPU逻辑核心数失败")

> 举例：

    1

    cpucore = self.vm_host.cpu.core_num

2. get_lscpu_info
> 描述：

    1
    2
    3

    方法功能：获取当前OS下的lscpu信息

    命令格式：lscpu

> 参数：

    1

    None

> 返回值：

    1

    cpu_list    (dict): lscpu执行结果解析字典对象

> 异常：

    1

    None

> 举例：

    1

    self.host.cpu.get_lscpu_info()

3. get_scaling_drivers
> 描述：

    1
    2
    3

    方法功能：获取所有cpu驱动名称

    命令格式：cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver

> 参数：

    1

    None

> 返回值：

    1

    drivers    (list): cpu驱动名称列表

> 异常：

    1

    KPTestException("获取cpu驱动名称失败")

> 举例：

    1

    self.host.cpu.get_scaling_drivers()

4. get_nominal_freq
> 描述：

    1
    2
    3

    方法功能：获取cpu标称频率

    命令格式：cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

> 参数：

    1

    None

> 返回值：

    1

    freq    (str): cpu标称频率

> 异常：

    1

    KPTestException("获取cpu标称频率失败")

> 举例：

    1

    self.host.cpu.get_nominal_freq()

5. get_min_freq
> 描述：

    1
    2
    3

    方法功能：获取cpu最小频率

    命令格式：cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

> 参数：

    1

    None

> 返回值：

    1

    freq    (int): cpu最小频率

> 异常：

    1
    2

    KPTestException("获取cpu最低频率失败")
    KPTestException("scaling_min_freq的内容不是整数“）

> 举例：

    1

    self.host.cpu.get_min_freq()

6. get_max_freq
> 描述：

    1
    2
    3

    方法功能：获取cpu最大频率

    命令格式：cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

> 参数：

    1

    None

> 返回值：

    1

    freq    (int): cpu最高频率

> 异常：

    1
    2

    KPTestException("获取cpu最高频率失败")
    KPTestException("scaling_max_freq的内容不是整数“）

> 举例：

    1

    self.host.cpu.get_max_freq()

7. get_avg_freq
> 描述：

    1
    2
    3

    方法功能：获取cpu平均频率

    命令格式：cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

> 参数：

    1

    None

> 返回值：

    1

    avg_freq    (int): cpu平均频率

> 异常：

    1
    2

    KPTestException("获取cpu当前频率失败")
    KPTestException("scaling_cur_freq的内容不是整数“）

> 举例：

    1

    self.host.cpu.get_avg_freq()

8. calc_cache
> 描述：

    1
    2
    3

    方法功能：计算l1、l2、l3的cache大小

    命令格式：cache = pccs * per_cpu_cores / shared_cores

> 参数：

    1
    2
    3

    pccs            (list):  picc是per_core_cache_size的缩写,通过sys查询到的size大小
    per_cpu_cores   (list):  一个CPU包含的核数
    shared_cores    (list):  cache共享的CPU核数

> 返回值：

    1
    2
    3
    4
    5
    6

    cache_info (dict): 返回CPU的cache信息，包含如下信息：
    {
    l1_size (int): l1 cache大小
    l2_size (int): l2 cache大小
    l3_size (int): l3 cache大小
    }

> 异常：

    1

    None

> 举例：

    1

    self.host.cpu.calc_cache(pccs, per_cpu_cores, shared_cores)

9. cache_info_sys
> 描述：

    1
    2
    3

    方法功能：从/sys/中获取CPU cache信息

    命令格式：cat /sys/devices/system/cpu/cpu0/cache/index0/size

> 参数：

    1

    None

> 返回值：

    1
    2

    per_core_cache_size   (list): 通过sys查询到的size大小
    shared_cores_list          (list): cache共享的CPU核数

> 异常：

    1

    None

> 举例：

    1

    self.host.cpu.cache_info_sys()

10. get_cache_info
> 描述：

    1
    2
    3

    方法功能：查询进行CPU cache

    命令格式：cat /sys/devices/system/cpu/cpu0/cache/index0/size

> 参数：

    1

    None

> 返回值：

    1
    2
    3

    per_core_cache_size_list   (list): 通过sys查询到的size大小
    per_cpu_cores              (int) : 一个CPU包含的核数
    shared_cores_list          (list): cache共享的CPU核数

> 异常：

    1

    None

> 举例：

    1

    self.host.cpu.get_cache_info()

11. get_cpu_num_per_socket
> 描述：

    1
    2
    3

    方法功能：从lscpu中获取一个Socket包含的逻辑CPU数量

    命令格式：lscpu

> 参数：

    1

    None

> 返回值：

    1

    per_cpu_cores   (int): 一个Socket包含的逻辑CPU数量

> 异常：

    1

    KPTestException lscpu未查询到参数

> 举例：

    1

    self.host.cpu.get_cpu_num_per_socket()

12. get_features
> 描述：

    1
    2
    3

    方法功能：获取CPU特定功能或特性

    命令格式：lscpu | grep Flags

> 参数：

    1

    None

> 返回值：

    1
    2
    3
    4
    5
    6

    flags_list      （list）:特性列表
    [
    'fp', 'asimd', 'evtstrm', 'aes', 'pmull', 'sha1', 'sha2', 'crc32',
    'atomics', 'fphp', 'asimdhp', 'cpuid', 'asimdrdm', 'jscvt', 'fcma',
    'dcpop', 'asimddp', 'asimdfhm', 'ssbs'
    ]

> 异常：

    1

    KPTestException('未能获取CPU特定功能或特性')

> 举例：

    1

    flags_list = self.host.cpu.get_features()