花了半个月捡垃圾

这半个月开源项目拖更,啥事没干成,主要要感谢我的 MacBook Pro。大年二十五,风扇异响;大年二十六,更换风扇;大年二十七,更换风扇后无法通过屏幕自检;大年二十九,更换主板;正月十二,主板短路,浓郁的线路烧焦的气味从风扇口传出;正月十三,机器第五次返厂维修,问题分类「安全性第一问题」,维修后需要返售前检测,预计需要到周四才能修好。这一下子家里一台能用的机器都没有。除了安装着 Windows 的一台机器,还有一台是 NAS,唯一装着 Linux 的是一台软路由。于是决定捡垃圾捡台新机器来写代码。

捡垃圾思路

  • Q: 为什么是捡垃圾?
  • A: 因为是备机,不想花太多钱。穷。
  • Q: 从哪里捡?
  • A: 本来打算从闲鱼捡,后来想想闲鱼二手可靠性太差,最后还是打算主要零件从淘宝捡,一些配件从京东捡。
  • Q: 需要满足的需求?
  • A: 完美的日常编码和跑机器学习。

主要是最近写了点卷积神经网络,放 CPU 上跑实在太慢。一开始试图接了个 GTX970,然后我这个数据预处理又太慢,最好能搞个核心数足够多的机器,这样才能爽。

一说到核心数多,第一反应就是二手服务器。1800 元收了个 IBM 的二手服务器,一代志强 E5645 双路,64GB 内存,2 块 SATA 的 1TB 机械硬盘。本来想把机器拆了,改装到家用主机上。因为服务器风墙实在太吵,实测 70db 噪音,受不了。

  • Q: 为什么服务器二手那么便宜?
  • A: 很多服务器都是过了保修期就白菜价卖出来的,比如我手上的机器是百度卖出来的,开机自检还有百度 Logo。服务器的内存由于是 ecc 的,和 PC 内存不通用,更是便宜,这半个月翻遍淘宝,ddr3 reg ecc 内存的底价大约是 28 元 4GB,90 元 8GB。

改装机箱

结果 IBM 机器一拆,定制的主板规格,没有机箱能塞得下,只能另寻它路,最后买了块泰安 S7012 主板,这板子比英特尔的公版还好用,内存插槽 18 个,5 条 pci-e x8。英特尔的公版为了能让你差显卡,弄了个 x16 孔位的 x8,而这块主板更暴力,直接 x8 尾部不封死,想插几块 x16 随便你。说着也有意思,德州仪器不是山东的是美国的;泰安电脑是台湾的也不是山东的。这个山东地名真是风水好,建议硬件创业者可以观望注册。

京东上买了个先马坦克机箱打算装机,因为听说这机器拆掉了硬盘位正好能塞下 EEB-ATX 规格的主板。谁知道拿到货发现上当了,EEB-ATX 铜柱的孔位确实留了出来,但是孔位没有攻丝,据说早先批次的机箱是有攻丝的,新批次的机箱取消了。而我没有丝锥,这下就麻烦了。于是去楼下五金店要了个自攻螺丝,拧进去拔出来,然后把铜柱再拧进去,解决。

改装散热

泰安 S7012 虽然使用 1366 针,但散热器规格和标准的 1366 颇有区别,主要在于背后上了个不锈钢的富士康背板,正面留出的是四个 M3 螺丝槽位,而不是四个大洞,这大大方便了服务器风墙的安装,但 PC 散热器就装不上了。如果你使用的是有背板的散热器,很遗憾的是,怎么都是装不上的;再三尝试下,发现,扣具式的散热器,可以改装上去。具体方法是:

  1. 准备一个 1366 扣具式的散热器
  2. 将提供的膨胀螺丝的下半部分剪掉,用以作为正常螺丝的垫片固定
  3. 使用 M3 螺丝拧入固定

遇到的比较坑爹的问题是,楼下的五金店根本不懂 M3 是什么,经询问,发现这个不能去建材的五金店买,要去标准件店购买。不过后来在百安居的五金区域里找到了这个螺丝,拧入。

安装系统

由于主板过于古老,无法识别 USB-HDD 作为启动项。烧录 Windows 镜像到 USB 后,需要用 Force FDD 的模式,把 USB-HDD 转换成 USB-FDD 作为软盘读取,安装,成功。不过安装 Ubuntu 时就没那么幸运了,主要是,FDD 模式的 Ubuntu ISO 根本没法运行。最后在 Windows 下安装了 GRUB4DOS 作为引导,引导硬盘中的 ISO 安装。坑很多,特别是 GTX-970 驱动不识别,安装一点直接黑屏。需要加入启动参数 nomodeset,安装完毕后进入恢复模式选择安装专有驱动,开机,解决。

成品和效果

机器弄完是这样的。噪音 12db,比起 70db 完全是可以睡觉的音量了。

不服跑个分?

7zip 压缩和解压缩是 i7-5930K 的 1.2 倍性能,跑纯 CPU 的机器学习速度是 i7-4770K 的四倍。多核的优势被完全体现出来了,给一代志强又续了一秒。

不过这玩意游戏性能就捉急了,毕竟主频不高。不过由于显卡用了 GTX970,画质上还是不会有什么问题的。守望先锋 1080P 最高画质,60fps+ 流畅运行,但只能占用 14% 的 CPU,大约是完整吃掉 3 个逻辑核心的样子;

文明 6 2560x1080 最高画质,30 fps 到 60 fps 之间波动。不过文明 6 对多核有较好的优化,能占用 25% 左右的 CPU。

在一些多核优化很差的游戏上就完全不忍直视了。可见这机器虽然物美价廉,但是你得熟悉你用在那里才能发挥它最大的价值。

细节

IBM 服务器使用的硬盘位螺丝极其复杂,标准件编号是 T6H,和传统梅花六角螺丝不同,中间还有个凸起,所以需要梅花六角中空心螺丝刀。这种螺丝刀一般出现在 T10 以上的大螺丝上,而 IBM 的硬盘位用的是 T6 规格的小螺丝。。。除了淘宝暂时没找到能买到这螺丝刀的地方。

服务器主板 I/O 口很少,没有板载声卡和板载 USB 3.0,我是通过 PCI-e 扩展获得的。

电源要求很复杂,因为双路需要 24+8+8 两个 CPU 电源供电,如果是全模组电源,应该是能搞的,支持这个的非模组电源很难找。

耗电略高,发热略高。至强一代有个特点就是待机功耗高,满负载其实还好。

仔细算了下,如果你没有走我很多弯路,大概能在 4000 左右搞下整台机器,而我花了 5000。(此价格包括一块 240GB 的 SSD 和一块 GTX970 的显卡,在家里翻出来的。。。如果买二手的话价格还能进一步压下去)

最后我有个问题:

为什么散热器厂家都喜欢弄灯,弄得这服务器一整个光污染!