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,而不是从默认目录 /etc 或 CB_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