memsli与sched_sli延时统计功能使用说明

在Linux系统中,cgroup(Control Group)是一种资源管理和限制的机制,用于限制、记录和隔离进程组使用的物理资源(如CPU、内存、I/O等)。例如,memory cgroup用于控制内存资源的使用,而cpuacct cgroup用于记录cgroup中任务所使用的CPU报告信息。在上述两种cgroup中负责统计信息的功能分别为memsli和sched_sli。本文为您介绍在Alibaba Cloud Linux 3中,memsli和sched_sli功能在memory cgroup及cpuacct cgroup中新增的延时统计功能及其使用说明。

使用限制

使用memcg以及task cgroup中的延时统计功能,您的实例需要满足下述要求:

  • 实例使用的操作系统必须为Alibaba Cloud Linux 3。

  • 实例使用的内核版本为5.10.134-12及以上版本。

使用说明

开启、关闭memsli延时统计功能

  • 执行以下命令,开启memsli延时统计功能。

    echo 1 | sudo tee /proc/memsli/enabled
    说明

    memsli延时统计功能默认为开启状态。

  • 执行以下命令,关闭memsli延时统计功能。

    echo 0 | sudo tee /proc/memsli/enabled

开启、关闭sched_sli延时统计功能

  • 执行以下命令,开启sched_sli延时统计功能。

    echo 1 | sudo tee /proc/cpusli/sched_lat_enabled
  • 执行以下命令,关闭sched_sli延时统计功能。

    echo 0 | sudo tee /proc/cpusli/sched_lat_enabled
    说明

    sched_sli延时统计功能默认为关闭状态。

查询memsli延时统计数据

  • memsli延时统计接口列表。

    memsli延时查询接口名称

    接口说明

    memory.direct_compact_latency

    在memcg分配内存时做内存整理的延时

    memory.direct_reclaim_memcg_latency

    在memcg超出limit限制时进行内存回收的延时

    memory.direct_swapout_global_latency

    在memcg分配内存时由于整机内存不足匿名页交换到 swap空间的延时

    memory.direct_reclaim_global_latency

    在memcg内存分配时由于整机内存不足的回收延时

    memory.direct_swapin_latency

    在memcg内存回收时swap空间交换到内存的延时

    memory.direct_swapout_memcg_latency

    在memcg超出limit限制时进行内存回收匿名页交换到swap空间的延时

  • memsli延时统计接口查询示例。

    运行以下命令,查询memory.direct_reclaim_memcg_latency的延时情况。

    sudo cat /sys/fs/cgroup/memory/memory.direct_reclaim_memcg_latency

    回显结果示例如下:

    0-1ms:  0
    1-5ms:  0
    5-10ms:         0
    10-100ms:       0
    100-500ms:      0
    500-1000ms:     0
    >=1000ms:       0
    total(ms):      0

查询sched_sli延时统计数据

  • sched_sli延时统计接口列表。

    重要

    只有cpu和cpuacct挂载于同一目录下时,才可以使用sched_sli的延时功能,若不在同一目录下,则无法使用该功能。在Alibaba Cloud Linux 3中,默认情况下,cpu和cpuacct被挂载在/sys/fs/cgroup/

    sched_sli延时查询接口名称

    接口说明

    cpuacct.block_latency

    cpuacct中uninterrupt进程从出队到被响醒的延时时间

    cpuacct.cgroup_wait_latency

    cpuacct中调度组在runqueue等待的延时时间

    cpuacct.ioblock_latency

    cpuacct等待io的uninterrupt进程从出队列到被响醒的延时时间

    cpuacct.wait_latency

    cpuacct中调度实例在runqueue等待的延时时间

  • sched_sli延时统计接口查询示例。

    运行以下命令,查询cpuacct.ioblock_latency的延时情况。

    sudo cat /sys/fs/cgroup/cpuacct/cpuacct.ioblock_latency

    回显结果示例如下:

    0-1ms:  0
    1-4ms:  0
    4-7ms:  0
    7-10ms:         0
    10-20ms:        0
    20-30ms:        0
    30-40ms:        0
    40-50ms:        0
    50-100ms:       0
    100-500ms:      0
    500-1000ms:     0
    1000-5000ms:    0
    5000-10000ms:   0
    >=10000ms:      0
    total(ms):      0
    nr:     0