cluster-trace-v2018 阿里集群数据集中文简介
原文地址(英文版):https://github.com/alibaba/clusterdata/blob/v2018/cluster-trace-v2018/trace_2018.md1简介作为阿里巴巴开放式集群跟踪计划的一部分,cluster-trace-v2018今年将发布新版本的集群跟踪。跟踪从我们的一个生产集群中采样。与2017年的跟踪类似,在群集中的每台计算机上都存在联机...
原文地址(英文版):https://github.com/alibaba/clusterdata/blob/v2018/cluster-trace-v2018/trace_2018.md
1简介
作为阿里巴巴开放式集群跟踪计划的一部分,cluster-trace-v2018
今年将发布新版本的集群跟踪。跟踪从我们的一个生产集群中采样。与2017年的跟踪类似,在群集中的每台计算机上都存在联机服务(也称为长时间运行的应用程序,LRA)和批处理工作负载。在过去的一年中,在线服务和批量工作负载的托管规模大大增加,从而提高了我们的整体资源利用率。
共同定位的工作负载由两个调度程序(用于在线服务的Sigma)和用于批处理工作负载的Fuxi的协调来管理。下图描绘了Sigma和Fuxi coloation的架构。
2跟踪的数据文件
2.1关于
Cluster-trace-v2018包括大约4000台机器,每天8天,由6个表组成(每个都是一个文件)。以下是表的简要介绍,每个表的详细信息在2.2 Schema中提供。
- machine_meta.csv:机器的元信息和事件信息。
- machine_usage.csv:每台机器的资源使用情况。
- container_meta.csv:容器的元信息和事件信息。
- container_usage.csv:每个容器的资源使用情况。
- batch_instance.csv:有关批处理工作负载中实例的信息。
- batch_task.csv:有关批处理工作负载中实例的信息。请注意,task_name字段中描述了每个作业任务的DAG信息。
下载数据
在非常短的调查(调查链接)之后,下载链接将可用。我们恳请您这样做,以便我们稍后通知您有关重大通知的信息,我们会将信息保密。
您可以按如下方式验证下载。
校验:
(单独的文件)
$sha256sum *
e73e5a9326669aa079ba20048ddd759383cabe1fe3e58620aa75bd034e2450c6 batch_instance.tar.gz
7c4b32361bd1ec2083647a8f52a6854a03bc125ca5c202652316c499fbf978c6 batch_task.tar.gz
febd75e693d1f208a8941395e7faa7e466e50d21c256eff12a815b7e2fa2053f container_meta.tar.gz
b4bd3b1b82f5407c1b0dd47fe736ff5152c4b016a9c30cb26f988e2d1c5e5031 container_usage.tar.gz
b5b1b786b22cd413a3674b8f2ebfb2f02fac991c95df537f363ef2797c8f6d55 machine_meta.tar.gz
3e6ee87fd204bb85b9e234c5c75a5096580fdabc8f085b224033080090753a7a machine_usage.tar.gz
(单个文件)
$sha256sum alibaba_clusterdata_v2018.tar.gz
ccb3dc93786507dd42eed29ef62c82220d07f877f269e5fad39f31bf75134ed1 alibaba_clusterdata_v2018.tar.gz
文件大小(注意您需要6个单独的文件或单个alibaba_clusterdata_v2018.tar.gz
文件):
$ls -sh1
total 98G
49G alibaba_clusterdata_v2018.tar.gz
20G batch_instance.tar.gz
125M batch_task.tar.gz
2.4M container_meta.tar.gz
28G container_usage.tar.gz
92K machine_meta.tar.gz
1.7G machine_usage.tar.gz
2.2架构
常见字段的一些解释。
- time_stamp,start_time和end_time:表中的这些字段都是单位“second”,如果是实际时间与采样跟踪的周期开始之间的差值,则为数字。期间的开头是0。
- 出于保密原因,我们将某些值(例如内存大小和磁盘大小)标准化,并在[0,100]之间重新调整此字段。但是,有一些无效值,它们设置为-1或101。
表的解释。
- machine_meta.csv
列名 | 类型 | 说明 | 评论 |
---|---|---|---|
machine_id | 串 | 机器的唯一ID(uid) | |
TIME_STAMP | INT | 时间指数 | 0表示时间戳在8天时间跨度之前或之后 |
disaster_level_1 | 枚举 | 第一级故障域 | 我们有多个级别的故障域,其中两个在此版本的跟踪中提供。对于任何需要容错的应用程序,它们的实例应分布在许多故障域中 |
disaster_level_2 | 枚举 | 第二级故障域 | 与disaster_level_1类似,这只是另一个级别的故障域 |
cpu_num | INT | 一台机器的cpu数 | 单位是“核心”,例如4表示机器上有4个核心 |
mem_size | INT | 机器的内存大小 | 规范化为所有机器的最大内存大小 |
状态 | 枚举 | 给定time_stamp的机器状态 | 机器的状态。见下面的解释 |
- machine_usage.csv
列名 | 类型 | 说明 | 评论 |
---|---|---|---|
machine_id | 串 | 机器的唯一ID(uid) | |
TIME_STAMP | INT | 时间戳 | 0表示时间戳在8天时间跨度之前或之后 |
cpu_util_percent | INT | cpu利用率 | 用户和系统都包括在[0,100]之间。有一些无效值,它们设置为-1或101 |
mem_util_percent | INT | 内存利用率 | [0,100]。有一些无效值,它们设置为-1或101 |
mem_gps | INT | 内存带宽使用率 | 使用所有机器标准化为最大内存带宽 |
mpki | INT | 每千条指令缓存未命中 | |
net_in | INT | 传入网络包的数量 | 标准化为此列的最大值 |
net_out | INT | 传出网络包的数量 | 标准化为此列的最大值 |
disk_usage_percent | INT | 磁盘空间利用率 | [0,100]。有一些无效值,它们设置为-1或101 |
disk_io_percent | INT | 磁盘io利用率百分比 | [0,100]。有一些无效值,它们设置为-1或101 |
- container_meta.csv
列名 | 类型 | 说明 | 评论 |
---|---|---|---|
CONTAINER_ID | 串 | 容器的唯一ID(uid) | |
machine_id | 串 | 容器主机的机器uid | |
deploy_unit | 串 | 部署容器组 | 属于同一部署单元的容器提供一种服务,通常,它们应分布在故障域中 |
TIME_STAMP | INT | 时间戳 | 0表示时间戳在8天时间跨度之前或之后 |
cpu_request | INT | 计划的cpushare请求 | 100表示1核心 |
cpu_limit | INT | 计划的cpushare请求 | 100表示1核心 |
mem_size | INT | 计划的内存大小 | 规范化为所有机器的最大内存大小 |
状态 | 枚举 | 给定time_stamp下容器的状态 | 给定时间戳的容器状态,有关详细信息,请参阅状态机 |
- container_usage.csv
列名 | 类型 | 说明 | 评论 |
---|---|---|---|
CONTAINER_ID | 串 | 容器的唯一ID(uid) | |
machine_id | 串 | 容器运行的机器uid | |
TIME_STAMP | INT | 时间戳 | 0表示时间戳在8天时间跨度之前或之后 |
cpu_util_percent | INT | cpu利用率 | [0,100]。有一些无效值,它们设置为-1或101 |
mpki | INT | 每千条指令缓存未命中 | |
CPI | INT | 给定time_stamp处的容器的cpi | |
mem_util_percent | INT | 内存利用率 | [0,100]。有一些无效值,它们设置为-1或101 |
mem_gps | INT | 内存带宽使用率 | 使用所有机器标准化为最大内存带宽 |
disk_usage_percent | INT | 磁盘空间利用率 | [0,100]。有一些无效值,它们设置为-1或101 |
disk_io_percent | INT | 磁盘io利用率百分比 | [0,100]。有一些无效值,它们设置为-1或101 |
net_in | INT | 传入网络包的数量 | 规范化为所有机器的最大net_in |
net_out | INT | 传出网络包的数量 | 规范化为所有机器的最大net_out |
- batch_instance.csv
列名 | 类型 | 说明 | 评论 |
---|---|---|---|
inst_name | 串 | 批处理实例的唯一ID(uid) | 实例名称在(作业,任务)对中是唯一的 |
任务名称 | 串 | 实例所属的任务名称 | 任务名称在工作中是唯一的; note任务名称表示DAG信息,请参阅批处理工作负载的说明 |
task_type | 枚举 | 任务的类型 | 共有12种类型,其中只有一些具有DAG信息 |
JOB_NAME | 串 | 实例所属任务的job_name | 工作由许多任务组成。请参阅job-task-instance的说明 |
状态 | 枚举 | 实例的状态 | 实例的状态 |
开始时间 | INT | 实例的开始时间 | 0表示时间戳在8天时间跨度之前或之后 |
时间结束 | INT | 实例的结束时间 | 0表示时间戳在8天时间跨度之前或之后 |
machine_id | 串 | 实例运行的计算机ID | |
seq_no | INT | seq没有实例 | |
total_seq_no | INT | 一个实例的总seq否 | |
cpu_avg | INT | 实例的cpu的平均cpu利用率 | 100表示1核心 |
cpu_max | INT | 一个实例的cpu的最大cpu利用率 | 100表示1核心 |
mem_avg | INT | 实例的cpu的平均内存利用率 | 规范化为所有机器的最大内存大小 |
mem_max | INT | 实例的cpu的最大内存利用率 | 规范化为所有机器的最大内存大小 |
- batch_task.csv
列名 | 类型 | 说明 | 评论 |
---|---|---|---|
任务名称 | 串 | 实例所属的任务名称 | 注意任务名称表示DAG信息,请参阅批处理工作负载的说明 |
inst_num | INT | 任务具有的实例数 | |
task_type | 枚举 | 任务的类型 | |
JOB_NAME | 串 | 任务的job_name | |
状态 | 枚举 | 实例的状态 | 任务的状态 |
开始时间 | INT | 实例的开始时间 | 0表示时间戳在8天时间跨度之前或之后 |
时间结束 | INT | 实例的结束时间 | 0表示时间戳在8天时间跨度之前或之后 |
plan_cpu | INT | cpu为每个任务实例请求 | 100表示1核心 |
plan_mem | INT | 为每个任务实例请求的规范化内存 | 规范化为所有机器的最大内存大小 |
2.3 DAG of batch worloads
在此版本的群集数据中,我们包含许多类型的批量wokrload。他们中的大多数是DAG,而其中一些不是。对于那些不是DAG的任务,我们使用随机字符命名它们,例如task_Nzg3ODAwNDgzMTAwNTc2NTQ2Mw==
或task_Nzg3ODAwNDgzMTAwODc2NTQ3MQ==
。这些任务可以视为独立任务。在本节的其余部分,我们将解释如何从任务名称中推断出作业的DAG。
可以使用“作业 - 任务 - 实例”模型来描述完整的批处理计算作业。我们将描述每个术语的含义以及如何在跟踪中表达DAG信息。
作业通常由若干任务组成,其依赖性由DAG(有向无环图)表示。每个任务都有许多实例,并且只有当任务的所有实例都完成后才能将任务视为“已完成”,即如果任务-2依赖于任务-1,则任务2的任何实例都无法启动在任务-1的所有实例完成之前。作业中的任务DAG可以从task_name
该作业的所有任务的字段中推断出来,并通过以下示例进行说明。
Job-A的DAG如下图所示。Job-A由5个具有一些依赖性的任务组成。5个任务的DAG用它们表示task_name
。对于每项任务:
task1
的task_name
是M1
:意味着task1
是一个独立的任务,可以在不等待任何其他任务开始。同样的休息M2_1
:意味着task2
取决于完成task1
M3_1
:意味着task3
取决于完成task1
R4_2
:意味着task4
取决于完成task2
M5_3_4
:意味着task5
依赖于两个task3
和task4
,也就是说,task5
既可以的所有实例之前不会启动task3
和task4
完成。
请注意,对于DAG信息,只有task_name中的数字值很重要,而第一个字符(例如M
,R
在示例中)与依赖关系无关。
每个任务的实例数用另一个字段表示instance_num
。
更多推荐
所有评论(0)