alibaba trace_201708 数据集简介

原文地址
1.简介
数据中心增长的大规模的在线服务以及批处理作业的联合分配被用来提升数据中心的效率。这种联合分配为现有的集群管理系统带来了很大的挑战,特别是一起工作的用来提升集群利用率和效率的服务和作业的调度。
跟随我们认为的学术团体和工业界比较感兴趣的研究热点,我们提取出以下挑战:

  • 负载特性:我们如何能够以一种有代表性的方式为调度器研究模拟各种生产工作负载的方式来描述阿里巴巴工作负载?
  • 新的算法来分配工作负载到机器和CPU内核。我们如何分配和重新调整工作负载到不同的机器和CPU,以获得更好的资源利用率和可接受的资源竞争。
  • 在线服务和批作业调度器协作:如何调整在线服务和批处理作业之间的资源分配,以提高批处理作业的吞吐量,同时维持在线服务的可接受服务质量和快速故障恢复。

为了帮助研究人员解决上述问题,我们提供了生产集群24小时内的跟踪数据。这些数据包括运行在整个集群上的机器和负载,以及所有可以同时运行在线服务和批处理作业的机器。

2.通用技术和领域
出于机密原因,我们在跟踪中模糊了特定信息
1)时间和时间戳
跟踪中的每条记录包含一个时间戳,以秒为单位与跟踪开始时间相关。且,时间0表示世间发生在跟踪之前,在某些文件中,有一小部分条目(例如batch_instance.csv文件中小于0.1%的数目)是负时间戳,这些也表示发生在跟踪之前。
对利用率的衡量,包括实例和机器利用率,时间间隔是60s,平均时间超过300s。为了保密,我们仅披露联系12个小时的使用数据。
2)唯一识别
每台机器、在线和服务负载给定一个在整个耿总期间唯一的数字id。没有给出服务和任务名称。
3)资源利用
大多数资源利用衡量以及请求已经被归一化,包含:

  • memory size
  • disk space
    cpu核数未被归一化

3.数据表
下面我们描述一下提供的表。牢记:不是所有的跟踪数据都包含这里提到的全部类型,列可能是以不同的排序,或者有不同的名字。这些定义的特殊性以及细节可以在schema.csv中找到。
1)machines
机器通过两张表描述:machine events table 以及 the machine resource utilization table
a.Machine events(server_event.csv)
- timestamp
- machineID
- event type
- event detail
- capacity:CPU
- capacity:memory
这些追踪包含机器事件的三个类型:
- add 一台机器对于集群来说变得可用。追踪数据中所有的机器都有一个add事件,在追踪之前机器时added,则时间戳为0
- softerror 机器由于软件失败例如低磁盘空间以及代理失败导致的短暂性不可用
- harderror 由于硬件故障,例如磁盘故障,机器变得不可用。在软件和硬件错误的情况下,新的在线服务和批处理作业不应该放置在机器中,但是现有的服务和作业仍然可以正常工作。可以从事件细节字段推断错误原因。

机器容量反映了每台机器每一维归一化的物理容量,每一维(CPU核数,RAM大小)是相互独立归一化的。

b.Machine utilization(server_usage.csv)
- timestamp
- machineID
- util:CPU
- util:memory
- util:disk
- load1: linux cpu load average of 1 minute
- load5: linux cpu load average of 5 minute
- load15: linux cpu load average of 15 minute
机器利用率是百分数,反映了所有工作负载的总资源使用率,包括操作系统的全部资源使用量。
batch workload
批处理作业用一下表描述:
- instance table
- task table
用户以job的形式提交批处理负载(不包含在追踪数据中)一个job包含多个task,不同的task执行不同的计算逻辑。根据数据依赖任务形成一个DAG。instance是批处理作业中最小的调度单元,任务中的所有实例用相同的资源请求执行完全相同的二进制,但使用不同的输入数据。

Task table(batch_task.csv)

  • create_timestamp: the create time of a task
  • modify_timestamp: latest state modification time
  • job_id
  • task_id
  • instance_num: number of instances for the task
  • status: Task states includes Ready | Waiting |Running | Terminated | Failed | Cancelled
  • plan_cpu: cpu requested for each instance of the task
  • plan_mem: normalized memory requested for each instance of the task

    Instance table(batch_instance.csv)

  • start_timestamp: instance start time if the instance is started
  • end_timestamp: instance end time if the instance ended
  • job_id
  • task_id
  • machineID: the host machine running the instance
  • status: Instance states includes Ready | Waiting | Running | Terminated | Failed | Cancelled | Interupted
  • seq_no: running trials number, starts from 1 and increase by 1 for each retry
  • total_seq_no: total number of retries
  • real_cpu_max: maximum cpu numbers of actual instance running
  • real_cpu_avg: average cpu numbers of actual instance running
  • real_mem_max: maximum normalized memory of actual instance running
  • real_mem_avg: average normalized memory of actual instance running

    一个instance可能会因为机器问题或者网络故障而失败。instance表中每一条记录代表尝试一次。开始和结束时间戳在某些instance 状态下可能为0,例如,对于status为ready 和 waiting,所有时间戳均为0,对于状态为running和failed,开始时间非0但结束时间为0。

    扫描二维码关注公众号,回复: 1685183 查看本文章

online service
在线服务用以下表描述:

  • service instance event
  • service instance usage

    service instance event(container_event.csv)

  • ts: timestamp of event
  • event: event type includes: Create and Remove
  • instance_id: online instance id
  • machine_id
  • plan_cpu: cpu number requested
  • plan_mem: normalized memory requested
  • plan_disk: normalized disk space requested
  • cpuset: assigned cpuset by online scheduler, cpus delimited by ‘|’

    这些追踪数据不仅仅包含instance 事件的两种类型。每个create事件记录了一个在线instance的创建,每个remove时间记录了一个在线instance的删除。对于在追踪记录之前的容器创建,属性ts的值为0。instance的创建和删除的开始时间可以从结束时间推测,因为创建和删除通常在几分钟内完成。
    service instance usage (container_usage.csv)

  • ts: start time of measurement interval
  • instance_id: online instance id
  • cpu_util: used percent of requested cpus.
  • mem_util: used percent of requested memory.
  • disk_util: used percent of requested disk space.
  • load1:
  • load5,
  • load15,
  • avg_cpi, average cycles per instructions
  • avg_mpki: average last-level cache misses per 1000 instructions
  • max_cpi: maximum CPI
  • max_mpki: maximum MPKI

    在线服务instance的cpu/mem/disk占用与请求资源是相关的,最大占用是100(full usage)。负载度量与分配的cpu相关。CPI和MPKI度量每隔1s测量一次,5个采样用于计算平均值和最大值。

    批处理task和instance的机器状态

  • Task
    Terminated: A task goes to ‘Terminated’ when all its instances are done
    Waiting: A task in not initialized yet
    Failed: Task fails
    Running: The Task is being processed

  • Instance
    Terminated: An instance is done
    Waiting: The instance can not run because some of its dependencies have not finished
    Running: An Instance is ‘Running’ on a worker
    Failed: An instance fails
    Interrupted: It is feature we introduced for backup instance, the instance stops due to some reason
    3.文件格式
    每隔数据表以csv格式给出,使用unix风格的行结束(ASCII LF)。csv文件没有表头。所有表的简介在schema.csv文件中。
    4.使用Alibaba cluster data的paper
    我们发布集群数据的基本思想是让研究人员和实践者做更真实的数据和仿真,从而使结果更接近于行业采用。通过我们的数据看到更多的作品对我们来说是一个巨大的鼓舞。下面是使用阿里巴巴群集数据的现有工作列表。
    Chengzhi Lu et al, Imbalance in the Cloud: an Analysis on Alibaba Cluster Trace
    5.已知问题
    当前数据集版本中存在一些问题,在接下类的版本中我们将会努力修复他们:

  • 一些task_id或者job_id在batch_instance中丢失了。issue#10提出的,大约85%的记录丢失了task_id job_id(开始时间在60k~80k之间)

  • 有一些在container_usage.csv中出现的instance_id在container_event.csv中未出现。例如,instance_id = 9088以及其他的
  • batch_instance.csv中丢失了一些利用率信息
  • -

猜你喜欢

转载自blog.csdn.net/u012679583/article/details/80503856