在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