崔鹏,任职于海能达通信股份有限公司,数据库开发高级工程师,致力于postgresql数据库在专网通信领域、公共安全领域的应用与推广。
赵全明 任职于华为技术有限公司,数据库内核开发工程师,曾参与云数据库及GaussDB多个项目的研发,致力于PostgreSQL在全行业的应用与推广。
本周开始,苹果开始使用他们自己的芯片交付Mac,首先是命名为M1的Mac SOC。M1使用ARM指令集,并声称在媒体工作负载方面有惊人的加速[校对注1]。 我想知道它运行PostgreSQL效果如何--PostgreSQL在各种ARM系统上运行多年的应用程序。结果太好了! OSS社区已经确认他们的PostgreSQL包可以运行M1上,并进行了一些重新编译工作,使得一切都如预期运行:$ opt/homebrew/bin/psql -c "select version()"
PostgreSQL 13.0 on arm-apple-darwin20.1.0, compiled by
Apple clang version 12.0.0 (clang-1200.0.32.28), 64-bit
我需要为我的基准测试工具包添加一些额外的软件,我看到的唯一编译问题是Qt和Python的numpy; 这两个问题发现后,似乎很容易解决。我上一篇博客介绍了我使用pgbench工具的基本方法,来评测过去MacBook Pro机型。我说过苹果需要在PostgreSQL上的性能结果超过“1.5万TPS单核心/6万TPS全部核心”,才能让英特尔彻底难堪。好吧,他们的表现超出了预期:
32K单核心/92K全部核心对于笔记本电脑来说速度简直太快了,我需要引入一些其它硬件来理解它。以下的表格是详细的数据,我还加上了两代AMD的Ryzen桌面硬件的结果:
这张图表让我很惊讶:

当然,英特尔拥有的至强处理器将单核性能推到了比这些面向笔记本电脑的英特尔更高的水平。但是,请查看低于5个客户端的大型群集,它显示了在功率和热量受到限制的情况下,它们在同一性能范围内停留了多长时间。我上次提到英特尔在我研究的MacBook机型的8年中仅使性能翻了一番,这并不是行业领先的性能。AMD在这方面做得更好,让他们的单核boost在他们的3000系列中具有竞争力。即使是去年的3950X--拥有强制水冷系统,才勉强比M1快,除非是遇到8个以上的客户端的情况。如果Apple可以将M1设计置入更大的内存空间并添加更多核,那么它可能是有力的中型服务器竞争者。这不会影响大家把服务搬到巨大的云计算系统上,在这种的数据中心上,超过48个核是很有必要安装的。有云计算规模的ARM服务器,苹果的ARM指令集mac使得开发该平台变得更容易。我期待着英特尔、AMD、苹果和其他ARM设计师之间的四方竞争。对于可以利用它的开发人员来说,M1是一个巨大的进步。希望这些显而易见的虚拟化问题在不久的将来能够得到解决。许多开发人员需要像Docker和VMs这样的工具来构建现代云软件。在解决这个问题之前,M1 mac并不适合所有人。在你考虑购买之前,确保你了解你的需求已经得到支持。为了使本文更完整,这是为进行基准测试而测试的硬件的详细列表,并且您可以通过挖掘我的Geekbench Profile来深入了解我在这里拥有的系统信息。 
校对注1:关于M1:M1是Apple第一款专为 Mac 设计的芯片,M1 也是 Apple 首款采用先进 5 纳米制程打造的个人电脑芯片,封装了惊人的 160 亿个晶体管,其数量为 Apple 所有芯片之最。据称M1 芯片将中央处理器速度提升至最高 3.5 倍,将图形处理器速度提升至最高 6 倍,将机器学习的速度提升至最高 15 倍。引用:https://baijiahao.baidu.com/s?id=1683001441894165268&wfr=spider&for=pc
请点击文章底部“阅读原文”查看内容!
PostgreSQL中文社区欢迎广大技术人员投稿
投稿邮箱:press@postgres.cn