从核心性能不一致到sub-numa

既然都是9102年了,云计算早就成了服务器的主要任务,就如同我之前说过的:“那种期待一个应用就把一台主机塞满的时代是回不来了!”不同于服务传统的称之为“科学计算”的模式,云计算的业务场景要求CPU的隔离性更优于性能,尽可能的各个core之间是搭积木似的即可随意打通(单虚机多CPU)又要互不干扰的。Xeon为代表的服务器CPU给出的主流解决方式是单socket,更多核心。

继续阅读“从核心性能不一致到sub-numa”
推荐阅读:
首先列出本站之前相关的几篇帖子
事出这一段时间做了不少基于SP
继续在NUMA和性能差异的路上

LLC缓存一致性保障原理

如果大家了解一点CPU的知识,应该能够了解到当前的x86架构的CPU都通过多级缓存实现内存的快速访问。目前较为流行的做法是3级缓存的设置,L1/L2为每个CPU core独享,而L3 或者LLC(last level cache)则由同一个socket上的所有物理core共享。这个时候如果考虑双路甚至多路CPU的话,由于内存中的数据有且只有一份,但多个CPU很可能在此基础上创建属于自己socket的缓存。对于内存的读访问来说,多份数据并不会影响到一致性,但一旦有一个socket上的某个core修改了数据,一致性问题则会凸显。究竟CPU是如何实现一致性保障的呢?

继续阅读“LLC缓存一致性保障原理”
推荐阅读:
既然都是9102年了,云计算早
有感于CPU的各种电源状态描述
事出前些日子有人咨询我:“在某

CPU的电源状态分类

有感于CPU的各种电源状态描述复杂且混乱无比。常见的诸如S0/S1/S3,C0/C3一会儿又成了P开头的P0,P1,还有一堆P01~P0n之类的让人一时半会儿摸不着头脑,这次就一次性归纳一下吧。

继续阅读“CPU的电源状态分类”
推荐阅读:
既然都是9102年了,云计算早
如果大家了解一点CPU的知识,
事出前些日子有人咨询我:“在某

一个物理内存分布导致的问题

事出前些日子有人咨询我:“在某个关闭NUMA的双CPU机器上,通过lat_mem_rd跑分,为什么会出现差不多2倍的跑分差距?” 话说这里的lat_mem_rd是lmbench 的一个组件,它通过模拟排序来测试系统的内存读性能——主要是时延为主。

继续阅读“一个物理内存分布导致的问题”
推荐阅读:
继续在NUMA和性能差异的路上
首先列出本站之前相关的几篇帖子
NUMA(Non-Unifor

时延的误区

时延 latency(亦称为延时、潜伏时间等),是衡量一个系统性能的重要指标。这里就简单的谈谈在时延这个概念上经常容易犯的几个误区吧。

继续阅读“时延的误区”
推荐阅读:
既然都是9102年了,云计算早
如果大家了解一点CPU的知识,
有感于CPU的各种电源状态描述

从stream的多线程协同效率说起

似乎每次开头都要讲述一下计算机或者说x86架构的演进历史,这似乎成了站长Litrin的一种习惯。现在的x86架构CPU频率以及最大IPC已经接近极限,厂商倾向于将越来越多的核心通过SMP技术多线程负载。不妨做一个思想实验:将计算机的任务想象为搬砖,CPU核心则是搬砖的工人。根据我们的常识,工人越多则任务完成的越快,也就是意味着核心数和性能是成正比的。然而事实真的如此吗?

继续阅读“从stream的多线程协同效率说起”
推荐阅读:
继续在NUMA和性能差异的路上
任何一个合理的应用程序的运行时
5月中旬,我参加了在加利福尼亚

SEP,EMON和EDP

近一段时间一直在做些任务负载特征分析的事儿。针对服务器上运行的若干个不同的业务,分析它们对于不同细颗粒度资源的使用情况。本身这些分析的工作是可以通过vtune这类的工具直接得到的。但vtune是一个桌面版本的性能分析工具,一对一的执行、跟踪、数据分析不够“工业化”。于是,这里就讲讲VTune的底层实现SEP和EMON以及EMON结果的分析工具EDP。

继续阅读“SEP,EMON和EDP”

推荐阅读:
既然都是9102年了,云计算早

如果大家了解一点CPU的知识,

有感于CPU的各种电源状态描述

DCDC2018–混合部署场景下RDT的应用

5月中旬,我参加了在加利福尼亚圣克拉拉万豪举办的Intel Data Center Design Conference 2018(DCDC’18)这个主要针对与数据中心设计的会议。期间我做了关于Intel RDT技术在数据中心业务质量(QoS)保障为主题的presentation。尽管在本月还有台北、上海、北京三场普通话的同主题演讲,这里还是分享下整个英文版本演讲的主要内容。

继续阅读“DCDC2018–混合部署场景下RDT的应用”

推荐阅读:
任何一个合理的应用程序的运行时

似乎每次开头都要讲述一下计算机

长久以来,我们对计算机资源的理

Top-down性能分析模型

长久以来,我们对计算机资源的理解一直都停留在cpu,内存容量,IO这类的大粒度的划分之上。一个简单的top或者vmstat命令就很方便的帮助我们得到某某计算机需要升级CPU或者加内存这类的结论,经验告诉我们,这一切似乎没有什么错。

继续阅读“Top-down性能分析模型”

推荐阅读:
继续在NUMA和性能差异的路上

首先列出本站之前相关的几篇帖子

熟悉Linux内核内存管理机制

说说SSD硬盘

我们都知道SSD是“固态硬盘”的代名词,考虑到现在各种接口,各种指标规格的大混乱模式,这里我将会通过几个名词解释来说说SSD硬盘。

继续阅读“说说SSD硬盘”

推荐阅读:
既然都是9102年了,云计算早

如果大家了解一点CPU的知识,

有感于CPU的各种电源状态描述