cbls#

服务进程#

cbls - AIP系统的负载监控 (CBLS)

概要#

CB_SERVDIR/cbls [ -h ] [ -V ] [ -t ] [ -C ] [-D ] [ -d env_dir] [ - debug_level]

描述#

CBLS 是一个运行在每个服务器主机上的服务进程。它提供系统配置信息、负载信息服务。所有主机上的 CBLS 协调收集和传输负载信息。负载信息以负载索引向量的形式在 CBLS 之间传输。这些内容在“负载索引”部分中有详细描述。

为了在主机上运行 CBLS,主机必须时集群的成员,配置在 cb.yaml 中或者动态加入集群 (参考 caddhost)。

每个 AIP 集群都会选举一个主 CBLS。主 CBLS 接收来自所有从属 CBLS的负载信息, 并为所有主机提供服务。从属 CBLS会定期检查自身的负载状况, 并在观察到负载状况发生显著变化时向主 CBLS 发送负载向量。最小负载信息交换间隔为 15 秒。但是, 用户站点可以通过cb.yaml里load_interval参数来重新定义此间隔。如果负载变化不大,实际交换间隔可以更长。

从属 CBLS 也为本地应用程序提供一些服务。例如,应用程序联系本地 CBLS 以获取本地负载信息、 本地集群名称、任何主机上的可用资源以及主 CBLS 所在主机的名称。 从属 CBLS 接受应用程序锁定或解锁本地主机的请求。 从属 CBLS 还会监视主 CBLS 的状态,并在原主 CBLS 不可用时选举新的主 CBLS。

负载索引#

CBLS 提供的负载信息包含以下负载索引:

r15s

15 秒内指数平均的 CPU 运行队列长度,已根据 CPU 速度进行归一化。

r1m

1 分钟内指数平均的 CPU 运行队列长度,已根据 CPU 速度进行归一化。

r15m

15 分钟内指数平均的 CPU 运行队列长度,已根据 CPU 速度进行归一化。

ut

过去一分钟内 CPU 利用率的指数平均值,介于 0 到 1 之间。

pg

过去一分钟内内存分页速率的指数平均值,以每秒页数为单位。

io

过去一分钟内网络 I/O 速率的指数平均值,以每秒千字节为单位。

up

主机开机时间(uptime),单位为分钟。

it

主机空闲时间(所有登录会话中未触摸键盘的时间),以分钟为单位。

tmp

/tmp 中的可用磁盘空间大小,以 MB 为单位。

swp

当前可用的交换空间大小,以 MB 为单位。

mem

当前可用的内存大小,以 MB 为单位。

gpu

当前可用的GPU数。cbls 根据 $CB_ENVDIR/gpu.yaml 检测主机上安装的GPU和各个GPU的负载。

此外,AIP可以配置任意外部负载索引,如下所述。

外部负载信息管理器#

可以通过添加自定义资源传感器 RESS 来扩展站点的负载指标监控。详情请参阅 ress

选项#

-h

将命令用法打印到标准错误输出并退出。

-V

将 Cube 的发行版本打印到标准错误输出并退出。

-t

显示主机信息,例如主机架构、CPU 型号、物理处理器数量、核心数量、GPU信息等。

-C

检查配置文件内容并显示详细错误报告,然后退出。

-d env_dir

从目录 env_dir 读取 cb.conf,而不是从默认目录 /etcCB_ENVDIR 环境变量指定的目录读取。

-D

本机为动态主机,主机名在cb.yaml中没有配置。

-debug_level

设置调试级别。有效值为 1 和 2。如果指定,CBLS 将以调试模式运行。在调试模式下,CBLS 使用硬编码的端口号, 而不是在系统服务中注册的端口号。此外,任何用户都可以执行特权操作,例如重新配置和主机锁定或解锁。 如果未启用调试模式,则只有 root 和**administrators**(在 cb.yaml 中定义) 可以执行这些特权操作。如果 debug_level 为 1,CBLS 在后台运行,没有关联的控制终端。 如果 debug_level 为 2,CBLS 在前台运行,并将错误消息打印到 tty。

注意#

CBLS 需要对 /dev/kmem 或其等效文件的读访问权限。

文件#

cb.yaml