zl程序教程

您现在的位置是:首页 >  Java

当前栏目

软硬件融合技术内幕 进阶篇 (2) —— 共产主义的幽灵

2023-02-18 16:26:55 时间

在上期,我们发现,从2010年至今,服务器单机计算能力是线性提升,而网卡硬件吞吐能力却是指数上升。因此,处理器用于处理网络数据包收发的开销,也越来越大。

与此同时,另一个幽灵,一个共产主义的幽灵,在数据中心中游荡……

马克思指出,共产主义社会的特点是:

  1. 物质极大丰富——数据中心具备几乎无上限的计算能力;
  2. 生产资料公有制——数据中心进化为多租户数据中心MTDC(Multi Tenant Data Center);
  3. 按需分配——资源可以按各租户的需求进行分配调度;

也就是说,在云计算时代,计算机需要摆脱资本主义生产关系的剥削与束缚,从社会主义走向共产主义。

初中政治课本中指出,资本主义的剥削方式有两种:

  1. 延长劳动时间。服务器在机房中是24小时工作全年无休的,甚至有RAID等技术,在磁盘不堪重负而损坏的时候还能继续工作;
  2. 提高劳动强度。这是我们本期的一个重点话题。

如何提高服务器的劳动强度呢?

读过《包身工》的同学一定有深刻的印象,包身工所在的工厂,有一名工头“拿摩温”,监督包身工在工作时间里面不得偷懒,否则将进行严厉的惩罚。

但是,服务器的工作并非像包身工那样简单重复,而是需要运行多个并行的任务。因此,这对“拿摩温”的要求也就更高,需要安排在一个任务被阻塞的时候,处理器立即切换到另一个任务。这就是操作系统的功能。

显然,如果包身工的数量指数增长,“拿摩温”的管理能力也需要提升。

以腾讯云使用的星星海AC221服务器为例:

AC221服务器整机最高可以支持128个物理核,开启超线程技术后可以得到256个vCPU。显然,这是一台具备极致性能的服务器,其计算能力是业界普通服务器的2.5倍以上。在腾讯云中,有数以万计的这样的超高性能的服务器在运行,为社会主义新基建奉献着自己的力量。

我们提到,马克思指出了,生产关系也会对生产力起反作用。因此,如果没有一个合适的分布式操作系统调度管理这样的大规模计算资源池,反而会束缚生产力的发展。这就是我们反复提到的云计算与虚拟化技术。

我们在《虚拟化与云计算硬核技术内幕 (4) —— 马克斯韦伯的启示》中提到过,为了让CPU中高达数百个的vCPU能够协同工作,发挥极致效能,在物理服务器上运行虚拟机,已经成了企业级IT架构中,标准的实现方式。

在腾讯云上,通过虚拟化技术,将这样的一台服务器虚拟化为多台SA3类型的虚拟机,对外按需发放资源,并通过弹性收缩的方式进行动态调节,使得所有的CPU物理核都能够有合适的工作负载。

那么,在物理服务器虚拟化以后,工程师们就需要解决两个问题:

  1. 如何把来自云数据中心外部的访问,正确地送到目标虚拟机;
  2. 如何让云数据中心内部的两个虚拟机实现互访;

这就涉及到了一个新问题——网络虚拟化。

网络虚拟化的出现,使得CPU处理能力与网络收发需求之间的矛盾进一步激化了。

下图是一个典型的宿主机运行虚拟化的架构图:

图中,宿主机的操作系统Host OS内,有一个vSwitch进程,连接各个VM上虚拟的网卡,并负责各个VM之间的互通及出宿主机的通信。

显然,随着宿主机物理网卡的性能从1Gbps提升到100Gbps,vSwitch占用的CPU资源也会随之增加。特别地,当计算资源的调度从虚拟化演进到云计算后,还会带来更多的开销。这种开销被称为“数据中心税”(Datacenter Tax)。

下期开始,我们将详解“数据中心税”的来龙去脉。