ACS使用Perf最佳实践

在使用容器计算服务 ACS 时,可使用 perf 工具深入分析如内存泄漏定位、CPU 热点分析、锁竞争诊断、缓存性能优化等性能问题。

使用场景

在使用容器计算服务 ACS 时,可使用 perf 工具深入分析以下性能问题:

  • 内存泄漏定位:应用长时间运行后内存持续增长,需要追踪内存分配热点,定位泄漏源头。

  • CPU 热点分析:应用 CPU 使用率异常偏高,需要识别消耗 CPU 最多的函数或代码路径。

  • 锁竞争诊断:多线程应用出现性能瓶颈,需要分析锁争用情况。

  • 缓存性能优化:应用对延迟敏感,需要分析 CPU 缓存命中率以优化数据访问模式。

适用范围

在 ACS 中使用 Perf 工具需要配置相应的安全权限,请提交工单申请。

使用方式

创建示例Pod

  1. 请参考以下配置创建示例 Pod 。

    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        alibabacloud.com/compute-class: gpu # 请按需修改
        alibabacloud.com/compute-qos: default  
        alibabacloud.com/gpu-model-series: G59 # 请按需修改
      name: perf-test
    spec:
      containers:
      - command:
        - sh
        - -c
        - sleep infinity
        image: acs-registry-vpc.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-nv-pytorch:25.12-vllm0.12.0-pytorch2.9-cu128-20251215-serverless # 请按需修改
        name: main
        resources:
          limits:
            cpu: "4"
            memory: 8Gi
            nvidia.com/gpu: "1"
          requests:
            cpu: "4"
            memory: 8Gi
            nvidia.com/gpu: "1"
        securityContext:
          capabilities:
            add:
            - SYS_PTRACE
            - PERFMON
          privileged: false
      securityContext:
        sysctls:
        - name: kernel.perf_event_paranoid
          value: "-1"
        - name: kernel.kptr_restrict
          value: "0"

    关键配置说明:

    配置项

    说明

    kernel.perf_event_paranoid: "-1"

    允许非 root 用户访问 perf 事件。

    kernel.kptr_restrict: "0"

    允许读取内核符号地址,用于解析调用栈。

    SYS_PTRACE

    授予进程追踪能力。

    PERFMON

    授予性能监控能力(推荐配置,比 SYS_ADMIN 更细粒度)。

安装 perf 工具

  1. 通过终端进入容器,执行以下命令安装并配置 perf。

    apt update && apt install linux-tools-generic -y
  2. 创建版本兼容软链接。

    GENERIC_DIR=$(find /usr/lib/linux-tools/ -name "*-generic" | head -n 1)
    ln -s $GENERIC_DIR /usr/lib/linux-tools/$(uname -r)
  3. 验证安装。

    perf --version

    预期输出:

    perf version 6.8.12
    perf版本号请以实际返回为准。