本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 [署名 4.0 国际 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.zh) 本文作者: 苏洋 创建时间: 2023年02月04日 统计字数: 15985字 阅读时间: 32分钟阅读 本文链接: https://soulteary.com/2023/02/04/cheap-home-workstation-solution-mac-pro-2013.html.html ----- # 廉价的家庭工作站设备改造记录:苹果垃圾桶(Mac Pro 2013) 聊聊最近对一台便宜的苹果老设备的使用和升级改造,以及过程中的小经验。 ## 写在前面 ![折腾的结果](https://attachment.soulteary.com/2023/02/04/macpro2013.jpg) 最近想分析一些有趣的开放数据集,考虑到综合成本,并且数据不在云端,所以我考虑再入手一台能够搭载大容量内存的设备,来帮助我省心的解决问题。 之前有好几台 64G 的设备了,所以这次除了搞定大容量内存(128g或以上)之外,我还希望这个机器能够做到以下几点: - **核心数尽可能多**,提升并行处理效率。 - **安静**,毕竟是放家里嘛,不喜欢吵的设备,之前分享《[廉价的家用工作站方案:前篇](https://soulteary.com/2021/07/02/cheap-home-workstation-solution-part-one.html)》的时候也有提到过。 - **得支持 ECC 内存**,我不想在密集处理数据的时候来回折腾,或者多写额外的校验逻辑。 - 避免“焊接”魔改,通过换现成的模块化的组件就能解决改装问题。 - 成本越低越好。 上面几个条件和 “CAP” 三个因素类似,又要安静、又要支持 ECC 内存、还要尽量不折腾魔改,还要便宜,所以可选面非常窄。 幸运的是,五六年前由于工作需要,我的老板给我批过一台 Mac Pro (感恩!),当年这台设备除了价格之外,都满足我上述的要求。我曾经测试过这个在媒体口中被“诟病不少”的来自苹果的“失败”的“工业设计产品”。其实,如果不使用默认搭载的两颗显卡,只用设备做纯 DC 计算,还是比较靠谱的: 1. 设备整体功耗和发热量能够得到有效控制。 2. 电源供电更能够保障 CPU 发挥,不会出现 CPU 和显卡抢资源的问题。 3. 散热压力小,被诟病的散热问题得到缓解。 当然,在选择垃圾桶的过程中,也有一些注意事项。如果你感兴趣的话,可以阅读下文中相关的部分。 随着时间的推移,这台设备的残留价值也越来越低,尤其感谢 M1 / M2 设备的后浪,让这台设备溢价最高的媒体处理的价值越来越低。(下文中有和 M2 以及最后一代 Intel CPU MacBook Pro 的性能比较) ![硬件成本](https://attachment.soulteary.com/2023/02/04/cost.jpg) 我最终购置设备的成本是 3800 元(箱说齐全、机箱无划痕、硬盘写入量十几T),为了最高效率的利用这台设备,我额外花了 1600 块,将设备升级到了 12核心24线程、128G RECC 内存、2TB 固态,总成本 5400 元左右。(和我 21 年购置的锐龙笔记本差不多) 这差不多是一台去年的无显卡的锐龙笔记本的价格,正好春节出二手回收掉了一台笔记本,所以最终差不多添了不到一台 Switch 游戏机的价格,获取到了更高的算力。 好了,下面来聊聊这台设备的折腾细节吧。 ## 设备具体型号的购买选择与升级 我对于这台设备的需求,简而言之**集中在安静的进行比较大规模的数据运算上。** 所以,我们先来聊聊,关注 DC 计算场景下的,关于这台“过时设备”的购买问题。 ### 购买一台过时的 Mac Pro 2013 你可以通过任何的渠道来购置这台设备,**如果你确实需要的话**。 如果你急不可耐,可以选择淘宝的翻新或回收的店铺,能够得到一些“购物保障”,比如有限时间内的退换货保障。 因为春节淘宝店铺都放假回家了,所以我的选择是本地的“海鲜市场”。我找到了一家售价相对低、品相较好、没有“升级改装”过,带有原始包装的设备。 在选择设备型号的时候,个人推荐选择最低配置显卡 D300 系列 ([Apple 官方设备规格清单](https://support.apple.com/kb/SP697?locale=zh_CN)),原因有三点: 1. 能够避免浪费不必要的成本,首先我的需求是 DC 计算,不在乎显卡性能,其次 Mac Pro 的显卡都是“过时”产品,功耗不低,发热还不少。远不如在 M1 / M2 设备上渲染视频省心。(我使用过 M1 / M1 Pro / M2,真心推荐新设备做媒体渲染) 2. 尽量避免后续潜在的维修成本和浪费的时间,海外社区中有不少用户反馈 D500 / D700 的设备存在质量问题,官方曾经发布过召回计划,比如[这篇显卡门的报道](https://www.leiphone.com/category/zixun/MaF5ogjMD1mxB9lW.html)。所以尽量不选择 D300 之外的设备。 3. 能够省不少电,因为 Mac Pro 使用比较老的服务器 CPU,没有搭载核心显卡,我们无法完全禁用 Mac Pro 搭载的显卡,中高端配置的 D500 / D700 会消耗更多的电。在我们的场景中,这玩意并不会创造什么价值。 接下来,聊聊怎么对这台 Mac Pro 进行硬件升级。 ### 如何升级这台 Mac Pro 2013 设备 ![升级完毕后,系统信息的变化](https://attachment.soulteary.com/2023/02/04/upgraded.jpg) 升级完毕的配置信息如上图,看起来是不是“便宜大碗”?其实机器原始配置还是比较“简陋”的。 ![“原装硬件”的系统信息](https://attachment.soulteary.com/2023/02/04/original-system-info.jpg) 如果你和我一样,选择了最低配置的 Mac Pro 2013,那么你将获得一颗四核心 3.7GHz(L3 缓存 10MB)、12GB ECC、256GB 硬盘的“垃圾桶”。 为了较低成本挖掘着台设备的最佳“算力”,我们可以考虑升级这台设备的下面几个部分: ![一颗高性价比的“顶配” CPU](https://attachment.soulteary.com/2023/02/04/e5-2697v2.jpg) 首先是 CPU,我们可以购买一颗 12核心24线程的 E5-2697v2(L3 缓存 25MB),成本大概 200 块左右,获得巨幅的性能提升,尤其是并行计算。当然,相比较默认的四核心的 CPU,这颗 CPU 在实际运转过程中,机器功耗会增加 20 瓦。 ![4根 32GB 的 RECC 内存](https://attachment.soulteary.com/2023/02/04/recc-128g.jpg) 然后是内存,我们可以将升级内存到 64GB 或 128GB。不过需要注意的是,当设备内存超过 64GB 之后,工作频率会从 1866 MHz 降低到 1066 MHz。即使如此,也能够带来比设备 SSD 带宽 2 倍的读取性能提升,非常利于缩短数据折腾时间。唯一需要注意的是:只能选择 RECC 版本的内存,所以放弃幻想使用 64GB x 4 的 256GB 内存组合吧。[官方对于内存的升级文档在这里](https://support.apple.com/zh-cn/HT205044),如果你不会安装内存,可以参考。 我个人选择将内存一次性升级到 128GB,四根 32GB 的金士顿内存,一共 720 块,在挂载内存盘玩的时候,以及开十几二十台虚拟机的时候,可以更随意一些,不用紧紧巴巴的。 ![随便选择一款打折的 PCIe 3.0 的硬盘就行啦](https://attachment.soulteary.com/2023/02/04/disk.jpg) 最后是硬盘,因为设备本身的带宽限制,所以我们只需要选择 PCIe 3.0 的 M2 硬盘即可,不需要加钱购置 4.0 设备,除非价格便宜特别多。此外,PCIe 4.0 的设备发热更大,我们安装的硬盘普遍没有散热马甲,合理的温度对于硬件和系统的稳定性有益。 所以,随便选择一条在打折的 PCIe 3.0 版本的 M2 固态,搭配一个转接头,性价比十足。不出意外,你的选择应该比“原装拆机 1TB”立省 400~500 块,性能和寿命还更高,更别提能多出一倍的容量。 ### 进行 Mac Pro 硬件自检 Mac 设备自带了一个“傻瓜化”的硬件自检功能,推荐不论是购置设备刚刚到手,还是进行硬件升级完毕之后,都手动执行一次硬件自检,更早的了解到设备的状况,做一些应对和选择,避免不必要的问题排查。 类似 Mac Pro 这类采用了 Intel CPU 的设备,我们可以在开机的时候长按 D 键,来启动 Mac 设备的自检程序。 ![耐心等待设备完成自检](https://attachment.soulteary.com/2023/02/04/self-test.jpg) 当自检完毕,我们能够直观的看到设备是否有问题。 ![没有硬件问题的 Happy Ending](https://attachment.soulteary.com/2023/02/04/no-problem.jpg) ### 拆机升级 CPU 的细节 Mac Pro 的[拆机非常简单](https://zh.ifixit.com/Guide/2013%E5%B9%B4%E6%9C%ABMac+Pro+%E6%8B%86%E8%A7%A3/20778),但是即使如此,也还是要小心一些,除了拆卸外壳,任何一步都不要大力出奇迹。 比如,大力拆卸设备供电底座,可能会在拆机过程损坏传感器,维修特别麻烦,毕竟这是一台配件除了苹果库存之外,市场上并不多的设备,过保的设备“麻烦”苹果的天才吧维修,应该不便宜。 ![顺便清理灰尘](https://attachment.soulteary.com/2023/02/04/clean.jpg) 此外,在拆机过程中,可以找一根不用的软毛牙刷对主板做清灰处理。 下面简单记录下拆机步骤: ![拆机第一步](https://attachment.soulteary.com/2023/02/04/step1.jpg) 拆机第一步,是解锁机箱锁,去掉机箱,然后去掉顶部的风扇。打开风扇的时候,小心拆下风扇的供电和数据线。 ![拆机第二步](https://attachment.soulteary.com/2023/02/04/step2.jpg) 拆机第二步,将设备机箱立柱的螺丝去掉后,我们将设备翻转,去掉底部供电主板的两颗螺丝,然后将供电主板拔下来。依旧是小心连着的数据线。 ![拆机第三步](https://attachment.soulteary.com/2023/02/04/step3.jpg) 小心的拆掉供电主板后,耐心的拆掉连接 CPU 所在主板的供电线的螺丝。然后稍微用力的拆卸掉将 CPU 固定在巨大的散热器上的几颗螺丝。当所有的螺丝都拆卸完毕之后,CPU 就展示在我们面前了。(硅脂居然还没有完全被烤干) ![拆机第四步](https://attachment.soulteary.com/2023/02/04/step4.jpg) 在清理完毕散热器上的老硅脂之后,我们重新涂抹均匀新的硅脂,然后完成 CPU 的更换安装。Mac Pro 扣具有一个槽,让 CPU 合适的放进去就行,不需要用力按。当我们组装还原机器的时候,之前拆卸的螺丝自然会让 CPU 的阵脚接触充分。 接下来就是逆向过程,怎么拆的,怎么安装回去,还原机器啦。 ## macOS 系统选择 因为更换了硬盘,所以我们需要重新完成系统的安装。 安装的过程中也有一些需要注意的细节。 ### 选择合适的 macOS 系统版本 我们能够找到和进行安装的 macOS 版本,可以在[官方的系统列表](https://support.apple.com/zh-cn/HT201260)中找到,但是并不是所有的系统都能够安装在这台 Mac Pro 设备上,可以参考这个[macOS 兼容性列表](https://support.apple.com/zh-cn/HT212551)进行选择。 目前最新版本的 Ventura (macOS 13),是不能直接安装在 Mac Pro 2013 上的,需要使用“黑苹果”方案,解除安装限制。不过考虑到最佳设备资源利于,我不倾向和推荐使用 Ventura 和 Monterey (macOS 12)。 当然,苹果并非只针对 2013 款的 Mac Pro 进行了Ventura 新版本系统的安装限制,下面列表中的设备都被“放弃”支持了: ```bash * 2013 Mac Pro * 2014 Mac mini * 2015 iMac * 2015-2016 MacBook Pro * 2015-2017 MacBook Air * 2016 12 英寸 MacBook ``` 虽然 Mac Pro 支持运行 Monterey,使用流畅度尚可,但系统占用相比更早一些的版本(1%)占用率高了非常多(20%),这些资源用来做实际的使用多好,是吧?Ventura 除了不必要的资源占用之外,还存在不确定的不稳定因素,以及需要浪费一些时间做额外的稳定性验证。 而更早的版本中,比如 Yosemite、El Capitan 虽然资源占用更低,但是系统中缺少能够支持“三方 NVMe 硬盘”的驱动,同样得借助黑苹果方案,需要自己手动注入驱动,存在和 Ventura 相同的“隐患”。而伴随设备发布时候的系统 Mavericks ,官方并未提供下载镜像,我们只能使用三方镜像进行安装,安装镜像缺乏安全保障。所以,也不推荐使用这个版本。 经过筛选和测试,我的选择是安装 10.15.7 的 macOS Catalina,系统资源使用在 1% 左右,将更多的资源完全让度给用户进程,并且系统原生对非苹果固态硬盘支持良好。 如果你的硬盘选择是官方拆机硬盘或者不升级硬盘,你也可以选择使用 Yosemite 或 El Capitan 这两个版本的系统。 ## 进行 macOS 系统的安装 macOS 的安装一般有三种方式: 1. 使用设备自身的网络恢复方案,重新安装相同版本的 macOS 系统。 2. 使用 U 盘制作恢复引导盘,从网络安装你期望的 macOS 版本。 3. 使用 U 盘制作离线的安装盘,安装指定版本的 macOS 系统。 如果你希望更快的完成系统安装,不希望因为安装过程中因为网络状态变化而产生一些不必要的小问题。 个人推荐你使用最后一种方案。如果你的网络状况非常好,第二种方案,也不失为一个好的选择。 ![对 U 盘进行格式化](https://attachment.soulteary.com/2023/02/04/format.jpg) 如果你选择第二或者第三种方案,为了避免安装引导过程出现不必要的翻工的麻烦,我们可以先在“磁盘工具”中,将 U 盘格式化为 “Mac OS 扩展(日志式)/ Mac OS Extended(Journaled)”格式,并选择 “GUID 分区图”,如果你不希望调整本文中使用的命令,可以将 U 盘暂时命名为 “MyVolume”。 ![重置机器内部安装的磁盘](https://attachment.soulteary.com/2023/02/04/reformat-local-disk.jpg) 如果你希望来一场完完全全从零到一的干净的安装,可以在制作好启动盘或恢复盘之后,打开安装界面的“macOS 实用工具”,选择“磁盘工具”,对系统分区或者整个磁盘进行完全抹除。 ### 制作 macOS 离线安装盘 我整理了官方提供的场景镜像的下载地址,你可以通过在浏览器中打开下面的链接,来下载官方经过完整性验证的系统镜像: ```bash # macOS Ventura (13) macappstores://apps.apple.com/app/macos-ventura/id1638787999?mt=12 # macOS Monterey (12) macappstores://apps.apple.com/us/app/macos-monterey/id1576738294?mt=12 # macOS Big Sur (11) macappstores://apps.apple.com/us/app/macos-big-sur/id1526878132?mt=12 # macOS Catalina (10.15) macappstores://apps.apple.com/us/app/macos-catalina/id1466841314?mt=12 # macOS Mojave (10.14) macappstores://apps.apple.com/us/app/macos-mojave/id1398502828?mt=12 # macOS High Sierra (10.13) macappstores://apps.apple.com/us/app/macos-high-sierra/id1246284741?mt=12 ``` 当然,你也可以从[官方的这个下载页面](https://support.apple.com/zh-cn/HT211683)获取更早的系统版本。不过更早的系统的安装包和最近几年的安装包在结构上有一些不同,你需要使用 `pkgutil` 进行一些额外的解压缩操作,比如 `OS X El Capitan`: ```bash # 解压缩 pkg 安装包 pkgutil --expand-full "/Volumes/Install OS X/InstallMacOSX.pkg" PSInstaller # 切换工作目录 cd OSInstaller/InstallMacOSX.pkg # 移动制作引导需要的 ESD 文件 mv InstallESD.dmg Payload/Install\ OS\ X\ El\ Capitan.app/Contents/SharedSupport/ # 将处理完毕的镜像文件放到“应用程序目录” mv Payload/Install\ OS\ X\ El\ Capitan.app /Applications ``` 当我们完成系统下载之后,可以参考官方的[创建 macOS 安装引导工具](https://support.apple.com/zh-cn/HT201372)教程来创建安装盘。磁盘格式化的注意事项参考上文提到的即可。 各个版本的 macOS 启动盘制作命令如下: ```bash # macOS Ventura (13) sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume # macOS Monterey (12) sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume # macOS Big Sur (11) sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume # macOS Catalina (10.15) sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume # macOS Mojave (10.14) sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume # macOS High Sierra (10.13) sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume ``` 执行命令,我们将看到类似下面的日志输出,系统盘就制作完毕啦: ```bash Password: Erasing disk: 0%... 10%... 20%... 30%... 100% Making disk bootable... Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 100% Install media now available at "/Volumes/Install macOS Catalina" ``` 制作完毕启动盘之后,将设备插到 Mac Pro 上,重启设备,开机按住 Option (ALT)键不放,等待界面出现引导 U 盘,然后根据提示进行安装即可。 ![根据你的需要和选择,进行系统安装](https://attachment.soulteary.com/2023/02/04/installer.jpg) 基本上各个版本的安装过程都是基本一样的,一路“Next”即可。 ### 使用恢复的方式来完成 macOS 的安装 使用恢复的方式来完成 macOS 的安装有两种方式,一种借助于 Mac 设备内置的引导工具,进行在线安装。一种和上面的离线安装盘一样,借助 U 盘进行安装。 ![使用恢复盘进行系统安装引导](https://attachment.soulteary.com/2023/02/04/recovery.jpg) 在启动的时候,按着 “CMD+R” 键,可以进入 Mac 内置的修复工具。我们可以在里面进行磁盘格式化,或者重新安装设备当前安装的系统版本。 或者在启动的时候,插好制作好的恢复启动盘,长按“CMD”键,直到看到苹果 Logo 出现后松开,这时界面会出现 USB 设备的引导选择图标。我们选择 USB 设备,就可以进入 USB 设备上带着的某个 macOS 的版本的恢复工具啦。 制作恢复引导盘的格式化的前置准备以及注意事项和制作离线安装盘一致。不同的是对于不同系统命令稍有差别(安装包的差别)。这里可以参考黑苹果手册中,“[Making the installer in Windows](https://dortania.github.io/OpenCore-Install-Guide/installer-guide/windows-install.html#downloading-macos)” 提到的方式,使用 “macrecovery” 来制作恢复盘。 比如我们要制作 “Catalina” 的恢复盘,可以使用命令得到恢复镜像: ```bash python3 macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download ``` 然后参考文档,选择 Rufus 等工具制作恢复盘即可。 ## 性能测试 作为一台 2013 年设计完成后,直至停产都没有设计变化的设备,性能自然无法完全和近几年的设备进行对比。但即使我们将它和 2019 年的高配 MacBook Pro(i9)、2022 年末的 MacBook Pro(M2)进行对比,也能够发现在一些指标上,还是比较好的。 ### CPU 能力对比 CPU 性能测试,这里使用一款老牌的开源工具 SysBench:[akopytov/sysbench](https://github.com/akopytov/sysbench),macOS 的安装非常简单,使用 [homebrew 的软件包](https://formulae.brew.sh/formula/sysbench)即可: ```bash brew install sysbench ``` 完成安装之后,执行下面的命令,我们就能够进行 CPU 测试了: ```bash sysbench cpu run ``` 不添加参数,测试的是单核的性能,以10秒为限制,对比完成“event”的计算次数(计算素数次数)。 直接执行命令,我们将得到类似下面的结果: ```bash sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3) Running the test with following options: Number of threads: 1 Initializing random number generator from current time Prime numbers limit: 10000 Initializing worker threads... Threads started! CPU speed: events per second: 14801180.02 General statistics: total time: 10.0001s total number of events: 148016951 Latency (ms): min: 0.00 avg: 0.00 max: 0.09 95th percentile: 0.00 sum: 480.52 Threads fairness: events (avg/stddev): 148016951.0000/0.00 execution time (avg/stddev): 0.4805/0.00 ``` 上面的结果是 M2 款 Mac Book Pro的单核心测试,我们接着来测试 Intel i9 的 Mac book Pro: ```bash CPU speed: events per second: 4671496.53 General statistics: total time: 10.0000s total number of events: 46720188 Latency (ms): min: 0.00 avg: 0.00 max: 0.10 95th percentile: 0.00 sum: 3720.83 Threads fairness: events (avg/stddev): 46720188.0000/0.00 execution time (avg/stddev): 3.7208/0.00 ``` Intel 款的 MacBook Pro 单核的算力大概只有 M2 版本的 31%。接着我们继续测试 Mac Pro 2013: ```bash CPU speed: events per second: 3835734.38 General statistics: total time: 10.0000s total number of events: 38364835 Latency (ms): min: 0.00 avg: 0.00 max: 0.05 95th percentile: 0.00 sum: 1313.64 Threads fairness: events (avg/stddev): 38364835.0000/0.00 execution time (avg/stddev): 1.3136/0.00 ``` Mac Pro 2013 能够达到 i9 款 Mac Book Pro 单核性能的 82%,M2 款 Mac Book 单核性能的 25%。毕竟 CPU 就 200 块钱,就不要指望单核峰值计算能够有多“实惠”啦。多核心测试中,将有不同的结果。 调整命令,我们使用标称的“核心数”对不同设备分别进行测试。先对 M2 Mac Book Pro 使用 4 颗性能核心进行测试(系统会自动负载选择大核进行计算): ```bash sysbench cpu --threads=4 run ``` 命令执行完毕,我们将得到 10 秒内 5376 万次的测试结果: ```bash CPU speed: events per second: 53769493.86 General statistics: total time: 10.0001s total number of events: 537718167 Latency (ms): min: 0.00 avg: 0.00 max: 1.01 95th percentile: 0.00 sum: 17399.43 Threads fairness: events (avg/stddev): 134429541.7500/53271.21 execution time (avg/stddev): 4.3499/0.04 ``` 调整测试命令,对 i9 款的 Mac Book Pro 进行 8 核心的测试,得到了 3199 万次的计算结果: ```bash CPU speed: events per second: 31998304.51 General statistics: total time: 10.0002s total number of events: 320023267 Latency (ms): min: 0.00 avg: 0.00 max: 0.34 95th percentile: 0.00 sum: 21209.31 Threads fairness: events (avg/stddev): 40002908.3750/352026.64 execution time (avg/stddev): 2.6512/0.03 ``` 对 Mac Pro 2013 使用其 CPU 核心数 12 进行测试: ```bash CPU speed: events per second: 37160277.28 General statistics: total time: 10.0004s total number of events: 371682110 Latency (ms): min: 0.00 avg: 0.00 max: 0.86 95th percentile: 0.00 sum: 33848.77 Threads fairness: events (avg/stddev): 30973509.1667/88596.32 execution time (avg/stddev): 2.8207/0.00 ``` Mac Pro 2013 的测试结果是 3716 万次,达到 M2 的 69% 的性能,达到了 i9 款 116% 的性能。是不是还不错,其实还有潜力没有挖掘。 最后,调整命令使用 CPU 全部核心(线程)数量进行测试。先对 M2 设备,进行全部的核心数量进行测试(大核+小核): ```bash sysbench cpu --threads=8 run ``` 测试结果为 10 秒内计算 8006 万次: ```bash CPU speed: events per second: 80069102.36 General statistics: total time: 10.0001s total number of events: 800722811 Latency (ms): min: 0.00 avg: 0.00 max: 10.89 95th percentile: 0.00 sum: 26156.40 Threads fairness: events (avg/stddev): 100090351.3750/240418.96 execution time (avg/stddev): 3.2695/0.01 ``` 针对 i9 款设备进行 16 线程的测试,得到了 4935 万次的计算结果: ```bash CPU speed: events per second: 49357397.14 General statistics: total time: 10.0002s total number of events: 493652499 Latency (ms): min: 0.00 avg: 0.00 max: 8.76 95th percentile: 0.00 sum: 43856.54 Threads fairness: events (avg/stddev): 30853281.1875/134914.77 execution time (avg/stddev): 2.7410/0.03 ``` 同样调整 Mac Pro 2013 的测试参数,使用全部的 24 线程进行计算: ```bash CPU speed: events per second: 61442952.09 General statistics: total time: 10.0008s total number of events: 614588781 Latency (ms): min: 0.00 avg: 0.00 max: 6.17 95th percentile: 0.00 sum: 68624.01 Threads fairness: events (avg/stddev): 25607865.8750/295410.64 execution time (avg/stddev): 2.8593/0.03 ``` 最终计算结果为 6144 万次,达到了 i9 款的 124% 的性能,M2 款设备的 76% 的性能。200 块钱的 CPU 是不是便宜大碗?! 当然,三款设备的能耗差别还是很大的,M2 设备使用 67 瓦的电源,i9 款设备使用 96 瓦的电源,而 Mac Pro 2013 的运行瞬时功耗在 120~150瓦。 ![最近的使用电力消耗记录](https://attachment.soulteary.com/2023/02/04/power.jpg) 不过,就冲着能把它扔一边稳定的运行,安静不吵,能装 128G ECC 内存,价格只有上述设备的 25%~30%,还是挺划算的。(随用随开,别 24 x 365 的跑嘛 ) ### IO 能力对比 IO 能力测试,这里使用的是一款朋友推荐的开源测试工具:[maxim-saplin/CrossPlatformDiskTest](https://github.com/maxim-saplin/CrossPlatformDiskTest)。 我们还是先进行参照物的性能测试。 ![MacBook Pro 2019 磁盘IO能力](https://attachment.soulteary.com/2023/02/04/disk-macbook-i9.jpg) 2019 款的 MacBook Pro 是最后一款搭载 Intel CPU 苹果笔电设备。性能表现放在今天来看,中规中矩。可能是受到文件加密保护的原因,顺序读并不是很好。 ![MacBook Pro 2022 磁盘IO能力](https://attachment.soulteary.com/2023/02/04/disk-macbook-m2.jpg) 搭载 M2 芯片的 MacBook Pro 除了随机写入之外,全面碾压 Intel CPU 的 MacBook Pro。 ![Mac Pro 2013 磁盘IO能力](https://attachment.soulteary.com/2023/02/04/disk-macpro-2013.jpg) 最后来测试 Mac Pro:顺序读写都在 1GB/s 以上,随机读写都能够保持在 60MB/s 左右,内存复制的速率只有 7GB/s。 坦白说,美中不足的有因为追求内存容量降频的内存读写效率,以及不能享受 PCIe 4.0 M2 的硬盘带宽。但是换来了 128GB 的便宜大碗的“自带校验的偷懒装置” 的内存(ECC),以及即使没有使用 PCIe 4.0,硬盘读写效率也还不错。 ### 网络能力对比 Intel 芯片和 M1 、M2 芯片的MacBook 使用雷电协议进行数据交换,以及借助 2.5 G 网卡进行数据交换,在之前的两篇文章里有提到,这里就不再展开,感兴趣可以自行翻阅:[《MacBook 与其他设备的低成本高性能数据传输方案(一)》](https://soulteary.com/2023/01/01/low-cost-high-performance-data-transfer-solution-for-macbook-and-other-devices.html)、[《MacBook 与其他设备的低成本高性能数据传输方案(二)》](https://soulteary.com/2023/01/03/low-cost-high-performance-data-transfer-solution-for-macbook-and-other-devices-part-2.html)。 ![默认两个网口的聚合](https://attachment.soulteary.com/2023/02/04/bond.jpg) Mac Pro 2013 默认有两个千兆网口,实际使用的时候,我们可以进行简单的链路聚合(2G口),来提升内网的数据交换效率。 如果你追求最大化的带宽,可以购置 6 个雷电 2 转 USB 转接头,然后加上 USB 网口一共新增 10 块 USB 网卡,来形成更强的链路聚合效果。(脏辫模式) ## macOS 老系统使用经验 因为我的场景主要是 SSH 远程连接,或者使用 VNC 连接远程桌面,使用 VMware 启动大量虚拟机。 不包含任何媒体剪辑的工作,所以我就上面两个场景进行一些经验展开。 ### 使用内存盘提升数据存储效率 数据处理过程中,如果能得到即时反馈,或者响应更快,是一件很幸福的事情。 这里,我们可以用一个小技巧,将 128G 内存中的 120G 作为自带纠错校验的内存盘使用: ```bash diskutil erasevolume HFS+ 'RAM Disk' $(hdiutil attach -nomount ram://251658240) ``` 命令执行完毕,我们将看到下面的日志: ```bash Started erase on disk3 Unmounting disk Erasing Initialized /dev/rdisk3 as a 120 GB case-insensitive HFS Plus volume Mounting disk Finished erase on disk3 RAM Disk ``` 你可以通过下面的公式来创建其他尺寸的内存盘: ```bash 命令中的 ram://251658240 (目标)120(GB) * 1024(MB) * 1024(KB) * 2 ``` 磁盘创建完毕,`cd /Volumes/RAM\ Disk` 切换到目录中就能够像和一般的磁盘一样进行操作了。 ![将 Mac Pro 2013 接入 UPS 供电](https://attachment.soulteary.com/2023/02/04/ups.jpg) 当然,内存盘是易失数据,如果遭遇断电会损失正在处理的内容。所以,我将设备插在了之前文章[《低成本搭建一台家庭存储服务器:前篇》](https://soulteary.com/2023/01/15/building-a-home-storage-server-at-low-cost-part-one.html)中提到的新购置的 UPS 上,能够避免这种意外出现。 ### VMware 虚拟机的使用 和之前文章[《快速构建和安装干净的 ESXi 8 镜像指南》](https://soulteary.com/2023/01/29/how-to-easily-create-and-install-a-custom-esxi-image.html)提到的,我们可以免费申请个人使用的 ESXi 授权一样,你也可以申请 VMware Fusion 的使用。 不过在版本使用上,我使用的系统版本只能使用 12.1.2 及之前的版本(之后的版本不支持 Catalina)。 在完成首次安装之后,我们启动虚拟机,可能会遇到 “Pipe 断开” 的错误提示,解决方法很简单,命令行输入: ```bash sudo spctl --master-disable ``` 然后,查看系统安全设置,允许加载不受信任的驱动即可。过程中如果没有看到驱动提示,可以重启下系统,并再次启动虚拟机,就能够看到“加载驱动”的确认了。 然后虚拟机的使用就一切正常了。 ### 其他:社区中提到的问题是否存在 社区中常见的问题有几个:散热、网络休眠唤醒、系统崩溃等等。 我的使用方式和硬件更换在上文中基本都提到了,我目前使用过程中一切正常。 ## 最后 **如果你没有在家里安静的进行长时间密集计算的需求,也不想“烧烤”你的 MacBook ,并且没有总成本低一些的要求,那么这个方案或许并不适合你。** 相比之下,我更推荐采购支持 ECC 内存的搭载 13 代桌面 CPU 工作站(如 P360 之类的),功耗比、性能、可扩展性都很棒,美中不足的只有三点:体积大一些,使用的是工作频率不高的 DDR5 ECC 内存,价格会是这台设备的三倍。 好啦,这篇文章就先写到这里啦。也算是对群里的小伙伴的一个交代,希望大家都玩的开心。 --EOF