概述

本文介绍 LSF 在操作系统分区和虚拟化环境中的工作方式,重点关注 Oracle Solaris 容器和 IBM AIX 分区。

总结

环境类型 LSF 支持情况
LPARs、DLPARs、微分区 ✅ 完全支持
WPARs ❌ 不支持
Solaris 全局区域 ✅ 完全支持
Solaris 非全局区域(专用CPU) ✅ 支持
Solaris 非全局区域(CPU封顶/Fair Share) ⚠️ 有限制

Oracle Solaris 10 容器

全局区域

在 Solaris 10 的全局区域中,LSF 运行良好,没有已知问题。

非全局区域

在 Solaris 10 的非全局区域中,LSF 有以下已知限制:

推荐配置:专用固定 CPU 数量

当配置专用 CPU 且数量固定时(最小 CPU 数等于最大 CPU 数),LSF 可以正确报告:

  • CPU 数量
  • CPU 使用率
1
2
# 推荐:固定 CPU 数量
min_cpus = max_cpus = 4

不推荐:CPU 范围配置

如果指定 CPU 范围(最小 CPU 数不等于最大 CPU 数),当容器添加或移除 CPU 时,LSF 无法准确报告 CPU 数量和使用率。

不支持:CPU 封顶 (CPU Capping)

CPU 封顶设计上会使全局区域中的所有 CPU 对每个容器可见。LSF 检测到的 CPU 数量是物理主机的总 CPU 数量。

示例场景

  • 物理主机有 2 个 CPU
  • 两个 Solaris 容器 z1 和 z2,各有 0.8 CPU 封顶
  • z1 运行一个使用全部可用 CPU (0.8) 的作业
  • z2 没有运行作业

结果:z1 和 z2 都显示 40% CPU 利用率(主机级别),即使 z1 已无容量而 z2 有完整容量。

警告:不要在 LSF 环境中使用 Solaris 容器的 CPU 封顶功能,因为它们是冲突的工作负载管理工具。

不支持:Fair Share Scheduler

配置 Fair Share Scheduler 时,情况与 CPU 封顶类似。所有 CPU 对共享区域可见,报告全局级别的 CPU 利用率。基于 CPU 的 LSF 调度在此环境中无法正常工作。

IBM AIX 分区

分区类型

类型 描述
专用处理器分区 整个处理器分配给特定逻辑分区
共享处理器分区 物理处理器虚拟化后分配给分区(封顶或非封顶)
应用 WPAR 轻量级环境,适合执行一个或多个进程,与应用生命周期相同
系统 WPAR 几乎完整的 AIX 环境,有专用可写文件系统

LPARs 和 DLPARs

专用处理器的 LPARs

LSF 运行良好,正确报告 CPU 利用率。

专用处理器的 DLPARs

LSF 运行良好,正确报告:

  • CPU 利用率
  • 动态更改 CPU 分配后的处理器数量

微分区 (Micropartitions)

在配置了共享处理器的微分区中:

  • LSF 检测的 CPU 数量与配置的虚拟处理器数量相同
  • 独立报告每个分区的 CPU 利用率
  • CPU 利用率是相对于节点授权容量校准的

示例

  • 节点使用的内核是授权容量的 1.5 倍
  • mpstat 输出显示 60% CPU 利用率
  • LSF 报告 ut 为 90%

WPARs

WPAR 类型 LSF 支持 原因
应用 WPAR 短暂性,不适合服务器应用
系统 WPAR 缺少 /dev/mem 和 /dev/kmem 设备访问

image-20251211093011074

配置建议

Solaris 环境

  1. 推荐:在非全局区域使用专用固定数量的 CPU
  2. 避免:使用 CPU 封顶或 Fair Share Scheduler
  3. 可选:非全局区域关联到具有固定 CPU 数量处理器集的静态资源池

AIX 环境

  1. 使用 LPARs、DLPARs 或微分区运行 LSF
  2. 避免在 WPARs 上运行 LSF
  3. 微分区可正确报告 CPU 利用率(相对于授权容量)

参考资料

  1. IBM Documentation - OS partitioning and virtualization on Solaris and AIX
  2. IBM Documentation - Best practices and tips for LSF
  3. AIX Dedicated processor partition
  4. AIX Shared processor partition