本帖最后由 wxyhgk 于 2024-7-11 13:16 编辑
这个机器是上个月十几号买的,过去快一个月了,才搞好,真的是麻烦,开始为了静音,用的分体式水冷,没想到水冷漏水,后面CPU,主板又出问题了,来来回回退货收货搞了快一个月才搞好,真的折磨人,好在最后的结果是好的.
1.概述
最近 EPYC 7K62 的大船来了,好像是因为腾讯云的原因?不管如何,反正价格很香.
下面是相关的配置和价格
上述配件中我买猫扇是因为我要放在出租屋里面,猫扇会非常安静,自己睡觉也舒服,也不会吵到别人,Intel 905P 这个硬盘虽然比较小只有 480G,但是这个是傲腾硬盘,4k 小文件速度是顶级的,所以做计算理论上会更快一点.
需要注意的是这个主板,这个主板的配置其实一般,上面只有 pcie3.0 ,以及 M.2 硬盘也只有一个位置,主板相对而言比较丐,与此同时这个主板的 MOS 部分散热比较差,MOS 部分是下面的图中的:
这个 MOS 容易过热,所以最好后期换一个纯铜的散热的,防止报警.
在省钱的情况下可以把三星 980 PRO 和 Intel 905P 换成其他的,可以节省 $700$ 左右,还可以把电源换成长城巨龙 1200w, 风扇换成非猫扇,也可以节省小 $1$ 千,上面的猫头鹰风扇集线器也可以不要,我是后悔了,因为上了集线器后面超微主板的 ipmi 后台不好控制每个风扇转速了,这个实际上是不好的.
购买像CPU,主板,二手硬盘硬件之前,一定要卖家微信视频,不如会到你手里点不亮或者出现问题到时候得退货什么的,非常麻烦!而且有些卖家货根本不是自己的,从别处拿货的,可能拿到的就是带锁的!
如果要买和我一样的配置,你还得配置一个 T20 螺丝刀,这个是上 CPU 用的,以及为了防止涂硅脂的时候防止把硅脂搞到 CPU 的插槽里面去了,最好买一瓶"530 精密仪器清洗剂”,以及一个"无绵毛刷”
2. 解决主板忽快忽慢问题 2.1 问题再现
装好主机后,你可能会发现风扇转速忽快忽慢,一会儿非常慢,一会儿又非常快,听起来很不舒服。实际上论坛中似乎也有这种问题,但是没看他们解决了。
这是我第一次买服务器主板,才知道有个叫 BMC(基板管理控制器)的东西。简单来说,BMC 就是服务器主板上的一个小系统,可以监控和管理主板的信息。
BMC 不仅能监控风扇的转速,还能查看温度、电压等硬件参数。它还能让你远程控制服务器,比如开关机、重启,甚至在你不在现场的情况下也能操作。另外,如果服务器出现了问题,BMC 会记录下各种错误日志,帮助你快速找到问题所在。
从上面的图中可以看到,这个是可以直接看到 bios 设置的,还能远程装系统什么的.
本质上风扇的转速什么的是可以通过 BMC 来调节的,会有一个阈值,比如风扇低于某个值系统就会任务目前不安全了,所以才会自动增加风扇转速来散热,原理上我们只需要改变这个阈值就行了.然而直接设置阈值是一个不好的做法,因为 CPU 有时候高速运行,实际上这个时候风扇并不会加速,这也会影响我们的散热,更好的做法是根据温度来调节.
猫扇因为转速比较小,所以会低于系统的阈值,就会导致风扇忽快忽慢
从这里的后台就能看到这里说风扇速度太慢,触发了报警,造成风扇加速
2.2 问题解决
这里我是使用 Ubuntu24.04 LTS 系统,通过将主板上的 ipmi 口和网口都接到同一个路由器上面,这样系统才能通过远程进入 BCM 系统,下图所示的就是连接的
连上之后,重启,就会在开机的界面或者路由器上有显示,可以在远程控制电脑的风扇,以及实时监控上什么的,还是蛮方便的,如果自己做了内网穿透,甚至可以在外面安装系统什么的,非常方便。记录下后台的 ip,后续我们通过代码,来连接和控制风扇的转速什么的。
首先安装 `ipmitool` (Ubuntu 上通过命令行可以远程连接 BCM)和 `sensors` (可以查看温度)两个包
- sudo apt install ipmitool sensors -y
复制代码
然后设定阈值
- ipmitool -I lanplus \ # 使用 IPMI over LAN+ 协议
- -H 192.168.31.252 \ # 指定 BMC 的 IP 地址
- -U ADMIN \ # 用户名为 ADMIN
- -P ADMIN \ # 密码为 ADMIN
- sensor thresh FAN1 \ # 设置 FAN1 的阈值
- lower 200 300 400 # 设定低阈值,警告为200,低临界为300,非回复低临界为400
复制代码
(上面的代码需要分行输入,不要一次性输入,这是 Linux的 shell 命令,不懂的可以查一下)
按照我的代码注释去修改就行了,这个很简单,注意这里的 FAN1 的阈值,或者说调整哪个风扇的阈值,需要通过网页进入到 BCM 的后台才能看到那些风扇。例如这里我的风扇是这样几个
设置好之后,重启 BCM 系统
- ipmitool -I lanplus \ # 使用 IPMI over LAN+ 协议
- -H 192.168.31.252 \ # 指定 BMC 的 IP 地址
- -U ADMIN \ # 用户名为 ADMIN
- -P ADMIN \ # 密码为 ADMIN
- mc reset cold # 执行 BMC 的冷重启(cold reset)
复制代码
上面这么做了之后可以防止上面的情况,但是这个又有一个问题是,随着 CPU 的运算,到时候温度上来了,风扇也不会加大风力,这是不利于我们的温度管理的,所以我们要做的是随着温度的改变风扇的转速发生相应的改变,为了实现这个目的,我们可以使用 shell 脚本来做到这一点,下面是具体步骤:
自己在某处建立一个叫做 `fans.sh` 的文件,然后输入下面的代码
- #!/bin/bash
- IPMI_HOST="192.168.31.252"
- IPMI_USER="ADMIN"
- IPMI_PASS="ADMIN"
- # 初始风扇速度级别:1 = 低, 2 = 中, 3 = 高, 4 = 全速
- CUR_FAN_SPEED_LEVEL=1
- # 将风扇控制模式设置为手动(Full Speed Mode)
- ipmitool -I lanplus -H "$IPMI_HOST" -U "$IPMI_USER" -P "$IPMI_PASS" raw 0x30 0x45 0x01 0x01
- sleep 2
- # 设置初始风扇速度(低档,设置为20%)
- ipmitool -I lanplus -H "$IPMI_HOST" -U "$IPMI_USER" -P "$IPMI_PASS" raw 0x30 0x70 0x66 0x01 0x01 0x14
- sleep 2
- # 获取温度函数
- get_temp() {
- # 获取两个 CPU 的温度并取最大值
- temps=$(sensors | grep "Tctl" | awk '{print $2}' | sed 's/+//g' | sed 's/°C//g' | awk -F. '{print $1}')
- echo "$temps" | sort -nr | head -n 1
- }
- while true; do
- TEMP=$(get_temp)
- if [ -z "$TEMP" ] || [ "$TEMP" -eq 0 ]; then
- echo "$(date +"%F %T") 获取温度失败,退出"
- exit 100
- fi
- if [ "$TEMP" -ge 75 ]; then
- if [ "$CUR_FAN_SPEED_LEVEL" -ne 4 ]; then
- echo "$(date +"%F %T") 温度: $TEMP 风扇速度: 4(100%)"
- ipmitool -I lanplus -H "$IPMI_HOST" -U "$IPMI_USER" -P "$IPMI_PASS" raw 0x30 0x70 0x66 0x01 0x01 0x64 # 设置为100%
- CUR_FAN_SPEED_LEVEL=4
- fi
- elif [ "$TEMP" -ge 65 ]; then
- if [ "$CUR_FAN_SPEED_LEVEL" -ne 3 ]; then
- echo "$(date +"%F %T") 温度: $TEMP 风扇速度: 3(60%)"
- ipmitool -I lanplus -H "$IPMI_HOST" -U "$IPMI_USER" -P "$IPMI_PASS" raw 0x30 0x70 0x66 0x01 0x01 0x3C # 设置为60%
- CUR_FAN_SPEED_LEVEL=3
- fi
- elif [ "$TEMP" -ge 55 ]; then
- if [ "$CUR_FAN_SPEED_LEVEL" -ne 2 ]; then
- echo "$(date +"%F %T") 温度: $TEMP 风扇速度: 2(40%)"
- ipmitool -I lanplus -H "$IPMI_HOST" -U "$IPMI_USER" -P "$IPMI_PASS" raw 0x30 0x70 0x66 0x01 0x01 0x28 # 设置为40%
- CUR_FAN_SPEED_LEVEL=2
- fi
- else
- if [ "$CUR_FAN_SPEED_LEVEL" -ne 1 ]; then
- echo "$(date +"%F %T") 温度: $TEMP 风扇速度: 1(20%)"
- ipmitool -I lanplus -H "$IPMI_HOST" -U "$IPMI_USER" -P "$IPMI_PASS" raw 0x30 0x70 0x66 0x01 0x01 0x14 # 设置为20%
- CUR_FAN_SPEED_LEVEL=1
- fi
- fi
- sleep 60
- done
复制代码
脚本中只需要修改下面的部分:
- IPMI_HOST="192.168.31.252"
- IPMI_USER="ADMIN"
- IPMI_PASS="ADMIN"
复制代码
这个每个人都不一样,ip 这个好说,至于这个 impi 的用户和密码就需要自己去问卖主板的人了。 接着使用命令 - bash fans.sh > fan_control.log 2>&1 &
复制代码
当然了这个基本目前还不成熟,可以参考下,可以自己修改。
3. 需要注意的的点 3.1 显示问题由于服务器主板只有 vga 接口,而且只能用老式的那种显示器,用新有些的显示器都是不行的,我的 4k 显示器和一个 2k 显示器,我买了一个 vga 转 hdmi 不能使用,所以你最好还需要准备一个老式的显示器,在咸鱼上淘一个就行了,大概 100 不到。
当然了你可以买独立显卡,这时候就能使用 HDMI 或者 DP 接口了,也不贵,如果买个亮机卡,比如 RX580 这种三朝元老也是可以的,但是这样增加了不必要的开支,以及增加功耗,再者我现在没有使用 GPU 算力的需求,所以我感觉没有必要买。
3.2 安装系统这里的 Boot 部分需要改成 UEFI 的模式,然后安装系统,如果开始不是 UEFI 模式安装的系统,那么后面即使改了也没用,所以安装系统前需要修改成 UEFI 模式
|