日志框架不是瓶颈,您的笔记本电脑会告诉您其他谎言

2020-05-14 09:08:00

很容易想象大型的、令人印象深刻的服务器硬件比您可能带到咖啡馆的机器更快。事实是,服务器硬件是不同的,不一定更快。

机械同情界长期以来一直主张开发人员使用服务器硬件作为日常驱动程序。我过去常常担心,接受他们的建议意味着失去我习惯的许多桌面功能。就像声卡一样。最后,我听从了他们的建议,今年换成了多插槽Xeon ThinkStation。我保留了笔记本电脑,以供移动使用。

我的笔记本电脑的i7CPU的基本频率是2.8 GHz,涡轮增压(更多信息见下文)高达3.9 GHz。同时,我在Google Cloud上使用的至强处理器的基本频率为2.3 GHz。什么给予?

这个想法大概是这样的:消费者工作负载服务于一个人做的事情很少。服务器工作负载正在为许多用户提供服务。

在家玩视频游戏时,您需要主游戏循环的高时钟频率。

挂在旧的数据中心,同时为1000人呈现网页?这是一个不同的故事。对于服务器工作负载,为了在相同的热量/功率空间中“容纳”更多内核,放弃时钟频率通常是有意义的。

有很多例外,当你进入CPU数量更高的消费类机器时,时钟频率通常会下降,而且Xeon的范围也很广。你想怎么快就怎么快就能搞到Xeons。

您的笔记本电脑可能会告诉您,单线程工作负载的性能优于并行工作负载,而事实恰恰相反。

在生产中,您的笔记本电脑可能会告诉您性能瓶颈不是CPU,而是CPU。

大多数消费类机器都有一个单插槽,周围有RAM DIMM,访问RAM的任何部分都有大致相同的延迟。

服务器通常有许多CPU插座,每个RAM芯片都有一个“主”插座,也就是它所连接的特定插座。访问插座上“本地”的RAM速度很快,而访问另一个插座上的RAM则很慢。

默认情况下,mmap将在连接到执行系统调用的插槽的DIMM上为您提供内存。请参阅set_mempolicy(2)。

你的笔记本电脑会告诉你,一个程序在一个线程中分配内存,然后在另一个线程中使用它是很快的。

今天一台好的笔记本电脑都有一个大的NVMe固态硬盘插在它的小脑袋里。NVMe的尖叫速度很快,这正是你处理照片、视频或玩游戏等大文件时想要的。

平均而言,服务器有不同的需求。接受网络请求并进行数据库调用的Rails应用程序可能几乎不接触磁盘。文件服务器通常将文件缓存在缓冲池中,从RAM而不是磁盘为它们提供服务。

您在GCP上得到的默认磁盘,即区域永久磁盘,最多只能达到240MiB/s,这比您笔记本电脑上的NVMe磁盘慢一个数量级。

您的笔记本电脑会让您认为日志记录框架不是您的主要瓶颈。

Xeon CPU也有Turbo Boost,所以这不是消费者硬件和服务器硬件之间的严格区别,而是消费者和服务器工作负载的区别。

在具有并行负载的服务器上,Turbo Boost可能无法发挥作用。它旨在加速低并发工作负载,如您的游戏渲染循环。如果服务器上的所有内核都在工作,它就已经运行得很好、很热,不会为您提供Turbo Boost。

因此,您的单线程基准测试将获得甜美的5 GHz翘曲速度并投入生产吗?享受2.4 GHz的公园漫步。

多亏了Turbo Boost,您的笔记本电脑测试可能会看到真实世界中时钟速度的两倍。

如果您的主要开发环境是基于终端的,那么流行的选择是简单地在云VM上运行shell。

对我来说,我选择了一台双至强ThinkStation P720,我现在把它作为我的主要开发机器,每天我都会更多地了解我正在为其编写软件的硬件。