【集群】云计算集群调度数据集整理

【集群】云计算集群调度数据集整理

Fre5h1nd Lv6

🎯简介

在云计算集群管理领域,高质量的数据集对于算法研究、性能优化和系统设计至关重要。本文整理了三个具有代表性的数据集:阿里巴巴的集群数据集、谷歌的集群数据集,以及字节跳动最新发布的VM碎片重调度数据集。这些数据集各有特色,为不同场景下的集群调度研究提供了宝贵的数据支持。

🌍背景

随着云计算的快速发展,集群调度系统面临着越来越复杂的挑战:

  1. 资源利用率优化
  2. 碎片处理
  3. 性能优化
  4. 成本控制
  5. 在离线混合部署优化

为了应对这些挑战,研究人员需要真实的生产环境数据来验证和优化他们的算法。本文介绍的三个数据集分别来自不同的场景,能够满足不同研究需求。

📊数据集介绍

1. 字节跳动 VM碎片重调度数据集 (EuroSys’25)

数据集概述

这是字节跳动最新发布的数据集,主要用于研究VM碎片重调度优化问题。该数据集支持深度强化学习等现代算法的研究。

适用场景

  • VM碎片重调度优化研究
  • 深度强化学习算法验证

数据格式

数据集包含多个子集(LMM_mediumM_smallmulti),每个子集都包含训练集、测试集和执行集。数据以JSON格式存储,包含以下主要信息:

  • 集群信息(cluster_list)
  • 主机信息(host_info)
  • VM类型信息(vm_type_info)
  • VM实例信息(vm_instance)
  • 其他需求(other_requirement)

数据案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{
"cluster_list": [
{
"cluster_name": "b04-dpdk-g1",
"host_info": [
{
"node_id": "host-3ts0t92p7u4e8i4mqozp",
"status": "ACTIVE",
"node_cpu": 88,
"node_mem_mb": 368776.0,
"numa": [
{
"node": 0,
"total_cpu": 44,
"free_cpu": 6.0,
"memory_huge_total_mb": 184388.0,
"memory_huge_free_mb": 28740.0
},
...
],
"rack_id": 14
},
...
],
"vm_type_info": [
{
"vm_type": "ecs.g1.2xlarge",
"flavor_limit": 362
},
...
],
"vm_instance": [
{
"instance_id": "i-b5oy384o4ffwak4csmr2",
"instance_type": "ecs.g1.2xlarge",
"host_id": "host-3ts0t92p7u4e8i4mqozp",
"numa": [
{
"node": 0,
"cpu": 8,
"mem_mb": 32768.0
}
],
"allow_migration": true
},
...
],
"other_requirement": {
"deployment_set": [
{
"granularity": "host",
"data": [
"vm_647",
"vm_1011",
...
]
},
...
]
}
}
],
"vm_type_list": [
{
"vm_type": "ecs.g1.xlarge",
"request_cpu": 4,
"request_mem_mb": 16384.0,
"numa": 1,
"expected_newly_created_num": 0,
"weight": 0.0
},
...
],
"general_requirement": {
"optimization_objective": 1,
"maximum_migration_each_batch": 1000,
"maximum_migration": 10000,
"maximum_time": 600,
"available_zone": "cn-beijing-a",
"family_type": "ecs.g1"
}
}

获取方式

2. 阿里巴巴集群数据集

数据集概述

该数据集记录了约4000台机器在8天内的运行情况,包含6个主要数据表。

适用场景

  • 传统调度算法研究
  • 资源利用率分析
  • 在线服务和离线作业混合调度
  • 集群性能分析

数据表说明

  1. machine_meta.csv:机器元信息和事件信息
  2. machine_usage.csv:机器资源使用情况
  3. container_meta.csv:容器元信息和事件信息
  4. container_usage.csv:容器资源使用情况
  5. batch_instance.csv:批处理作业实例信息
  6. batch_task.csv:批处理作业任务信息

数据特点

  • 时间戳以秒为单位
  • 内存和磁盘大小进行了归一化处理([0, 100]范围)
  • 支持在线服务和离线作业分析

数据案例

有表格的具体说明位于schema。展示如下:

常见字段的一些解释。

  • time_stampstart_timeend_time:表中的这些字段都以 ““为单位,数字是实际时间与跟踪采样周期开始时间之差。采样周期的起始时间为 0

  • 出于保密原因,我们对内存大小磁盘大小等一些值进行了归一化处理,并在 [0, 100] 之间对这些字段进行了重新缩放。不过,也有一些无效值会被设置为-1 或 101。

machine_meta.csv

字段类型标签注释
machine_idstring机器唯一标识符 uid
time_stampbigint时间戳,单位为秒
failure_domain_1bigint容器故障域的第一级
failure_domain_2string容器故障域的第二级
cpu_numbigint机器上的CPU数量
mem_sizebigint归一化后的内存大小,范围[0, 100]
statusstring机器状态
  • 关于failure_domain_1:我们有多级故障域,在这个版本的日志中提供了两个。对于任何需要容错的应用程序,其实例应该分布在多个故障域中。这是一个枚举值。

machine_usage.csv

字段类型标签注释
machine_idstring机器唯一标识符 uid
time_stampdouble时间戳,单位为秒
cpu_util_percentbigintCPU使用率,范围[0, 100]
mem_util_percentbigint内存使用率,范围[0, 100]
mem_gpsdouble归一化后的内存带宽,范围[0, 100]
mkpibigint每千条指令的缓存未命中数
net_indouble归一化后的入站网络流量,范围[0, 100]
net_outdouble归一化后的出站网络流量,范围[0, 100]
disk_io_percentdouble磁盘IO使用率,范围[0, 100],异常值为-1或101

container_meta.csv

字段类型标签注释
container_idstring容器唯一标识符 uid
machine_idstring容器所在主机的唯一标识符 uid
time_stampbigint时间戳,单位为秒
app_dustring同一应用组的容器共享相同的app_du值
statusstring容器状态
cpu_requestbigintCPU请求量,100表示1核
cpu_limitbigintCPU限制量,100表示1核
mem_sizedouble归一化后的内存大小,范围[0, 100]
  • 关于 app_du:属于同一部署单元的容器提供一种服务,通常情况下,它们应分布在不同的故障域中

container_usage.csv

字段类型标签注释
container_idstring容器唯一标识符 uid
machine_idstring容器所在主机的唯一标识符 uid
time_stampdouble时间戳,单位为秒
cpu_util_percentbigintCPU使用率,范围[0, 100]
mem_util_percentbigint内存使用率,范围[0, 100]
cpidouble每条指令的周期数
mem_gpsdouble归一化后的内存带宽,范围[0, 100]
mpkibigint每千条指令的内存访问未命中数
net_indouble归一化后的入站网络流量,范围[0, 100]
net_outdouble归一化后的出站网络流量,范围[0, 100]
disk_io_percentdouble磁盘IO使用率,范围[0, 100],异常值为-1或101

batch_task.csv

字段类型标签注释
task_namestring任务名称,在每个作业job内唯一
instance_numbigint实例数量
job_namestring作业名称
task_typestring任务类型
statusstring任务状态
start_timebigint任务开始时间
end_timebigint任务结束时间
plan_cpudouble任务所需的CPU数量,100表示1核
plan_memdouble归一化后的内存大小,范围[0, 100]
  • Task name 表示 DAG 信息,请参阅批处理工作负载的说明

batch_instance.csv

字段类型标签注释
instance_namestring实例名称
task_namestring实例所属的任务名称
job_namestring实例所属的作业名称
task_typestring任务类型
statusstring实例状态
start_timebigint实例开始时间
end_timebigint实例结束时间
machine_idstring实例所在机器的唯一标识符
seq_nobigint实例的序列号
total_seq_nobigint实例的总序列号
cpu_avgdouble实例平均CPU使用率,100表示1核
cpu_maxdouble实例最大CPU使用率,100表示1核
mem_avgdouble实例平均内存使用率(归一化)
mem_maxdouble实例最大内存使用率(归一化,范围[0, 100])
  • Task name 在 job 中是统一的;注意 Task name 表示 DAG 信息,请参阅批处理工作负载的说明
  • 共有 12 种类型,其中只有部分类型有 DAG 信息

获取方式

3. 谷歌集群数据集

数据集概述

该数据集提供了2019年5月期间8个不同Borg cells的信息,数据量约2.4TiB(压缩后)。

  • 数据集包含多个文件clusterdata_2011_1clusterdata_2019_aclusterdata_2019_b、……、clusterdata_2019_h
  • 每个文件中包含多张表collection_eventsinstance_eventsinstance_usagemachine_attributesmachine_events。其中collectioninstance的关系,类似于jobtask的关系。

适用场景

  • MapReduce等分布式框架研究
  • 大规模集群调度优化
  • 资源分配策略研究
  • 作业依赖关系分析

数据特点

  • 每5分钟的CPU使用信息直方图
  • 资源分配集(alloc sets)信息
  • 作业级父信息(job-parent information)
  • 支持MapReduce等分布式计算框架分析
  • 侧重于资源请求和使用情况,不包含有关终端用户end users、其数据或存储系统和其他服务的访问模式的信息

获取方式

  • 通过Google BigQuery访问,获取方式参考博客如下:
    1. 点击”+添加数据“ / “+ Add Data
    2. 点击”按名称为项目加星标“/“Star a project by name
    3. 输入名称”google.com:google-cluster-data
    4. 点击”加星标“/“star
  • 数据集文档:Google cluster-usage traces v3
  • 示例分析代码:Kaggle


  • 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
  • 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。

📝参考文献

[1] Xianzhong Ding, Yunkai Zhang, Binbin Chen, Donghao Ying, Tieying Zhang, Jianjun Chen, Lei Zhang, Alberto Cerpa, and Wan Du. 2025. Towards VM Rescheduling Optimization Through Deep Reinforcement Learning. In Proceedings of the Twentieth European Conference on Computer Systems (EuroSys ‘25). Association for Computing Machinery, New York, NY, USA, 686–701.

[2] VMR2L Dataset

[3] Alibaba Cluster Data

[4] Google Cluster Data

[5] Google Cluster Usage Traces v3

[6] Google Cluster Data Analysis Example

  • 标题: 【集群】云计算集群调度数据集整理
  • 作者: Fre5h1nd
  • 创建于 : 2025-06-09 14:07:20
  • 更新于 : 2025-06-10 14:43:54
  • 链接: https://freshwlnd.github.io/2025/06/09/k8s/scheduler-datasets/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论