Skip to content

Lec 1 介绍

什么是数据中心(DC)?

  • 互联网规模服务 & 云计算的计算基础设施
    • 1万服务器, 10万硬盘
    • e.g. Goole, Facebook,
  • ToB、ToC 服务

简单视角下

  • 企业计算的机房扩展版本
  • 由大量常见的硬件组件构成
    • CPU、DRAM、Disk
    • 以太网
    • 商业操作系统和软件栈
    • 数十万到数十万个计算节点
  • 高带宽网络(10Gbps à 40Gbps à 100Gbps)
  • 电力供应、冷却、不间断电源(UPS)(50 – 200MW)
  • 数据中心管理系统软件(集中式或分布式)
  • 实现互联网应用的软件

截屏2024-07-07 16.59.29

除了计算机&网络交换机等,你还需要以下共同设计

  • 电力基础设施: 电压转换器和稳压器,发电机和UPS(不间断电源)...
  • 冷却基础设施: 空调(A/C), 冷却塔、热交换器、空气叶轮...

数据中心动机/好处

  • 一些应用需要大型机器,比如搜索引擎等需要强大的计算能力
  • 用户体验:提供普遍的访问、灵活性和成本效益,让用户随时随地访问服务、同时确保服务的高可用和快速响应,节省了管理和时间成本
  • 供应商的好处(所有的都转换为成本降低)
    • 加快应用开发速度
      • 升级和修复的便捷部署
      • 提供了对存储和其他资源的单一系统视图
    • 通过多用户共享硬件资源降低成本
    • 通过分摊硬件/存储管理成本降低成本

截屏2024-07-07 17.10.02

数据中心硬件总览

  • 计算和内存资源
    • 基于个人电脑的服务器(大多数为x86)
    • 定制的Linux OS(针对延迟进行了优化)
    • 1U、2U或者刀片式机箱式流行的
      • 比如,2个处理器插,几十GB的DRAM, 2块磁盘
  • 网络资源
    • 与机架交换机连接的10Gbps以太网链路
      • 典型使用TCP/IP作为网络协议
      • 每台服务器的成本低于每Gbps<$30美金
      • 比Infiniband等更快网络(每端口$500)成本更低
    • 几个10Gbps链路连接到集群级交换机
      • 数据中心内部通常采用两级或三级层次结构
        • 其中底层是服务器直接连接到机架交换机,上层是连接到更高级的核心交换机或路由器,以支持整个数据中心的通信和数据流量管理
      • 上行链路的过度订阅:\着上层设备(如核心交换机或路由器)的出口带宽与下层设备(如机架交换机)连接的带宽比例较高。例如,1:10的过度订阅表示上行链路的带宽比下行链路的带宽高10倍。这可能导致在网络负载高时出现瓶颈和延迟问题
      • 为了改善性能和降低延迟,近年来的设计趋向于减少上行链路的过度订阅比例,例如调整为1:4
  • 存储资源
    • 使用服务器上的磁盘的分布式文件系统
      • 跨节点具有更好的容错性,成本更低,扩展性更好
    • 网络附加存储(NAS)设备
      • 具有磁盘阵列的专用系统,提供文件系统存储服务,并直接连接到网络结构
      • 在设备内具有更好的容错性,管理更容易
      • 通常设置为RAID配置

程序猿视角下的DC存储分层

截屏2024-07-07 17.26.24

有趣的发现

  • 远程内存通常比本地磁盘更快
  • 带宽瓶颈

机房的机架布局

截屏2024-07-07 12.56.23

  • 红色线:控制和带外网络,100BaseT 双绞铜线。用于管理和维护数据中心或网络环境中的设备
  • 洋红色: 连接存储网络
  • 绿色线: 数据网络(GE, Gigabit Ethernet)

有用的数据

截屏2024-07-07 17.32.20


例子说明

生成图像结果页面(包含30个缩略图)需要多长时间

设计1 :串行读取,现场生成256K大小的缩略图

30 seek × 10ms / seek + 30 * 256K / (30 MB/s) =560ms

设计二:并行发出读取请求

10ms/seek + 256K / (30 MB/s) = 18ms

还有很多的选项

  • 缓存(单个图像? 整套缓存缩略图?)
  • 等待

TCO

集群管理

  • 负责编排应用程序调度和资源分配的软件系统,其目标为

    • 确保每个应用程序或请求都能以高性能运行
    • 最大化计算资源的利用率
    • 减少调度任务的开销,使系统具有良好的可扩展性
  • 不同的设计和权衡

    • 集中式调度(一般比较复杂且慢)
    • 两级调度(中央协调器将资源分组,各个框架管理自己的资源)
    • 分布式共享状态调度(分布式事务决策,但集群状态全局可见)
  • 必须考虑干扰、硬件和任务的异构性、输入负载的变化

监控工具

监控生产环境的应用

  • 监控工作任务的执行时间或速率, 与预期性能比较并识别瓶颈
  • Gooda@Google:使用“perf record”获取的性能数据处理
    • 计数执行周期、缓存未命中、分支预测失败等
    • 根据源代码对事件发生位置进行分析
    • 识别停滞周期并提供优化建议
  • Dapper@Google(或 Zipkin@Twitter)采样完整的请求往返并将请求延迟分解到各个 RPC

数据中心应用

  • 3层架构应用(3-tier app)
    • e.g. web-email, maps, web docs, 社交网络
  • 搜索引擎
    • 类似3层应用,时延要求高,比如大多数数据都放在内存
  • 虚拟计算