简体中文 / [English]


AIO Ep19. Lenovo HR630x(HR650x) Server Build Log - A 1300 RMB Dual-Socket 8259CL with a Heaping Bowl of Optane Memory

 

This article is currently an experimental machine translation and may contain errors. If anything is unclear, please refer to the original Chinese version. I am continuously working to improve the translation.

TL;DR

My HomeLab finally welcomed its second server, officially entering the era of compute-storage separation.

First, the final result: LGA3647 platform + dual Platinum 8259CL (48c96t total) + 256GB Optane Persistent Memory (PMem)

Successfully powered onSuccessfully powered on

Bill of Materials

/ModelPriceNotes
CPUPlatinum 8259CL ×2290 RMBCheap AWS cast-offs, great deal, but requires motherboard power unlock (see below)
ChassisLenovo HR630x450 RMB + 80 RMB shippingFull fan set + dual heatsinks + single PSU + backplane, includes a dual-port 10G OCP NIC; no drive bays or riser
RAM8GB 2R×8 2133MHz ×2137 RMBRequired for Optane operation
Optane MemoryGen1 128GB ×2340 RMBMain memory
Test CPUSilver 411015 RMBOptional, just for unlocking 8259CL power; easier with a test CPU, and it makes a nice desk ornament
USB to GPIOMCP2221A42 RMBUsed to unlock motherboard power limit
ScrewdriverLGA3647 Screwdriver (T30 Torx)8.9 RMBFor heatsink screws; this type isn’t very common

Total cost: 1360.9 RMB

Performance Benchmarks

All tests below were conducted with default BIOS settings. At this configuration, the CPU can boost to 3.1GHz on all cores and 3.5GHz on a single core, with peak CPU power draw around 400W. Disabling turbo reduces power by ~50–100W but sacrifices 20–25% performance, so I kept it enabled.

CPU-Z result in Windows PE: single-core 365, multi-core 21078CPU-Z result in Windows PE: single-core 365, multi-core 21078

AIDA64 memory test in Windows PE. Uncertain if AIDA64 accounts for PMem, and I only used dual-channel, so treat this as entertainmentAIDA64 memory test in Windows PE. Uncertain if AIDA64 accounts for PMem, and I only used dual-channel, so treat this as entertainment

Cinebench R23 in Linux. Due to Wine issues, only 64 threads were recognized, score: 37246Cinebench R23 in Linux. Due to Wine issues, only 64 threads were recognized, score: 37246

Sysbench results using the same script commonly used for VPS reviews (fusion monster script), single-core 951, multi-core 75249:

1
2
3
4
# sysbench cpu --threads=96 --cpu-max-prime=10000 --events=1000000 --time=10 run
events per second: 75249.09
# sysbench cpu --threads=1 --cpu-max-prime=10000 --events=1000000 --time=10 run
events per second: 951.79

Same sysbench memory benchmarks:

1
2
3
4
# sysbench --test=memory --num-threads=1 --memory-block-size=1M --memory-total-size=102400G --memory-oper=read --max-time=5 --memory-access-mode=seq run
Sequential read speed: 21736.36 MiB/sec
# sysbench --test=memory --num-threads=1 --memory-block-size=1M --memory-total-size=102400G --memory-oper=write --max-time=5 --memory-access-mode=seq run
Sequential write speed: 18155.88 MiB/sec

Selected benchmarks from Phoronix Test Suite (common ones, not too time-consuming). Full online results here:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Percentile Classification Of Current Benchmark Run
PROCESSOR
BYTE Unix Benchmark
Dhrystone 2: 78th
John The Ripper
bcrypt: 74th
HMAC-SHA512: 61st
MD5: 74th
7-Zip Compression
Compression Rating: 26th
D.R: 86th
Timed ImageMagick Compilation
Time To Compile: 32nd
Timed Linux Kernel Compilation
defconfig: 37th
Timed PHP Compilation
Time To Compile: 30th
Primesieve
1e12: 76th
FLAC Audio Encoding
WAV To FLAC: 3rd
OpenSSL
SHA256: 45th
SHA512: 77th
ChaCha20: 77th
AES-128-GCM: 67th
SYSTEM
Stress-NG
CPU Stress: 82nd

It performs well in CPU-heavy tests like OpenSSL/Stress-NG, matching or even beating the 9950X. However, in compilation workloads, it only competes with consumer-grade DDR5 systems like the 9700X or 13700K. I’m not sure if this is due to Optane being used as a system drive (causing memory-disk contention) or just the limited dual-channel bandwidth. I plan to upgrade to more memory channels later… will update if anything changes.

For detailed noise and power consumption tests, see the fan speed control section below.

Background & Selection Rationale

Recently, I’ve had a lot of local data requiring Spark and Python analysis. My previous 10900 platform had a motherboard fault under heavy load (now fixed), and I was just itching to build a new machine anyway, so I decided to upgrade my HomeLab.

I initially considered upgrading to AMD’s 9950X (2800 RMB) or Intel’s Ultra7 265K (1700 RMB), but DDR4 prices skyrocketed recently. Just adding 64GB of RAM would cost another 2000+, and new-gen motherboards aren’t cheap either. A full build would easily exceed 5000 RMB—way over my 1000–2000 RMB budget. I decided to wait a few generations.

Motherboard

To finally fulfill my long-standing regret of never diving into Xeon builds since the E5 days, I decided to go full rack-mount server.

While browsing Taobao, I noticed LGA3647 platforms have now hit rock-bottom prices. With such affordability, I chose to go new instead of old, leaving the E5 era behind.

Dell R740 platforms (same generation) are still not widely retired, with chassis still costing nearly 5000 RMB. Other budget options included the Inspur SA5212M5 (1100 RMB), Foxconn RM760-FX (700 RMB), and Lenovo HR650x (~700 RMB). The Inspur was pricier, the Foxconn had almost no public documentation online, but the Lenovo HR650x had full official documentation and some community guides. Sold. (I ended up with the HR630x—same motherboard as HR650x, but 1U chassis with less expandability. Docs are interchangeable, and it’s 200 RMB cheaper, at this price, even stripping the board for parts is profitable)

The HR630x comes in two motherboard variants: 24 or 16 DIMM slots. Mine has the 24-slot version, plus three PCIe 3.0 x16 slots (half-height), and support for up to 8 U.2 NVMe drives (with backplane). For 450 RMB, the seller included all fans, dual CPU heatsinks, U.2 backplane and cables, a 550W PSU, and even threw in a dual-port 10G OCP NIC.

Delivery guy helped carry it upstairs. Some scratches on the case, dusty fans, average condition but fully functionalDelivery guy helped carry it upstairs. Some scratches on the case, dusty fans, average condition but fully functional

CPU

With the platform chosen, I turned to CPUs. I was initially torn between first-gen Xeon Scalable Gold 6138 (30¥) and Platinum 8175M (70¥). But then I stumbled upon the second-gen Platinum 8259CL, and the decision was instant. Despite modest performance gains and a 150¥ price tag, it’s the only second-gen Xeon that supports Optane Persistent Memory, drastically reducing large-capacity memory costs. It’s currently the only sub-200¥ second-gen Xeon—everything else costs at least a grand. Game over.

Of course, it’s cheap for a reason: as an OEM CPU, it has a 210W TDP, exceeding the standard 205W limit for these Xeons. On the HR630x, it won’t boot by default. You’ll need an MCP2221A adapter to reprogram the VRM controller and unlock the power limit. Details below.

Massive LGA3647 CPUs ×2Massive LGA3647 CPUs ×2

Memory

DDR4 prices went absolutely bananas recently (Oct 2025)—never thought near-EOL DDR4 would surge like this. So, the second-gen Xeon’s support for first-gen Optane Persistent Memory became a lifesaver. This is it:

Looks just like a regular RAM stick with a heatspreaderLooks just like a regular RAM stick with a heatspreader

Intel’s abandoned black magic tech. Uses standard DIMM slots, speed between traditional RAM and SSD, and can be configured in BIOS as either system memory or a block device. Yep, you can choose whether it acts as RAM or disk. How cool is that? (x)

Since it only works with specific CPUs and motherboards, it’s much cheaper than regular RAM. My 128GB PMem stick cost only 170¥—still up in price, but nothing compared to 1500¥+ for a 128GB DDR4 ECC stick. Total win.

According to the manual, Optane (DCPMM) must be paired with DRAM in cache mode—one PMem and one DRAM stick per channel. I cut corners with two 8GB 2R×8 2133MHz DDR4 sticks, below the manual’s recommended 16GB minimum, but it booted fine and was recognized.

Guides & Pitfalls

Unlocking VRM Power Limit

The first thing to do after unboxing is unlock the VRM power limit—otherwise, the 8259CL won’t boot. (Good news: most motherboards expose the required TTL pins; see the linked thread.)

The method comes from a ServeTheHome forum post. You need an MCP2221A module: one end connects to your PC, the other via TTL to the motherboard, then write a new power limit. The original post provides the tool, but I first tried JDDKCN/KCNVrmModTool, which worked perfectly.

Find the VRM I2C header near CPU2 and the fan. Use a multimeter to confirm GND, then guess the other two pins—or just try all combos or refer to the imageFind the VRM I2C header near CPU2 and the fan. Use a multimeter to confirm GND, then guess the other two pins—or just try all combos or refer to the image
Tool output. Command: ./ModTool.exe -PXE1610C 74 76Tool output. Command: ./ModTool.exe -PXE1610C 74 76

The trick is sending I2C commands to the VRM chip to override the default current limit. The 8259CL only exceeds the 205W limit by 5W, so hardware damage under load seems unlikely. So far, peak CPU power hasn’t exceeded 420W (210W per CPU) under full load.

BIOS & BMC Update

According to a Bilibili post, the HR630x may require a BIOS update to support 8259CL and Optane. I even bought a test CPU just in case. But my unit must’ve been pre-updated—the seller probably did it—so it booted right away. No test CPU needed. Leaving this here for reference.

If you don’t know the BMC password, you can create a new admin user in BIOS (set Channel to 1), or reset it via ipmitool once in the OS.

Official Docs & IPMI Commands

Lenovo provides full manuals for this platform: https://datacentersupport.lenovo.com/us/en/products/servers/thinksystem-hyperscale/hr630x

Like many rack servers, installation tips and hardware notes are printed on the chassis lid. If you’re unsure about compatibility or installation, consult the manual. For example, installing LGA3647 CPUs is different from consumer platforms—you place the CPU on the heatsink first, then mount both onto the motherboard. There are two types of PCIe riser cards: one supports three half-height cards; the other supports one full-height + one half-height card. All covered in the manual.

Also, Lenovo provides a full IPMI command reference—no need to dig through forums or guess commands like with other OEM servers.

Fan Speed Control

With IPMI commands, I can manually adjust fan speeds to reduce noise. With some AI help, I quickly whipped up a fan control script that adjusts speed based on CPU temperature, either locally or over the network: https://gist.github.com/lyc8503/fb615f8874111bdbf896edd3f01443f0

By default, the fans run at 60% (~14,000 RPM), which is loud and consumes 35W just for fans. Out of curiosity, I tried 100%—20,000 RPM, 80W just for fans. The noise was pure psychological warfare. This 1U beast has terrifying fans.

Full Load

But with IPMI control, just 35% speed (~8900 RPM) keeps both CPUs at ~85°C under full load (420W total power), with other components under 55°C—perfectly acceptable. At this point, BMC reports total system power at 525W:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# ipmitool -H 192.168.6.99 -I lanplus -U user -P password sdr
Inlet_Temp | 14 degrees C | ok
Outlet_Temp | 32 degrees C | ok
CPU1_Temp | 85 degrees C | ok
CPU2_Temp | 88 degrees C | ok
PCH_Temp | 44 degrees C | ok
DIMMG1_Temp | 36 degrees C | ok
DIMMG2_Temp | 34 degrees C | ok
CPU1_VR_Temp | 51 degrees C | ok
CPU2_VR_Temp | 54 degrees C | ok
PSU1_Temp | 0 degrees C | ok
PSU2_Temp | 26 degrees C | ok
CPU1_DTS | 8 degrees C | ok
CPU2_DTS | 5 degrees C | ok
FAN1_F_Speed | 8855 RPM | ok
FAN1_R_Speed | 8740 RPM | ok
FAN2_F_Speed | 8855 RPM | ok
FAN2_R_Speed | 8970 RPM | ok
FAN3_F_Speed | 8855 RPM | ok
FAN3_R_Speed | 8970 RPM | ok
FAN4_F_Speed | 9545 RPM | ok
FAN4_R_Speed | 8280 RPM | ok
FAN5_F_Speed | 8740 RPM | ok
FAN5_R_Speed | 8970 RPM | ok
FAN6_F_Speed | 9315 RPM | ok
FAN6_R_Speed | 8395 RPM | ok
FAN7_F_Speed | 8855 RPM | ok
FAN7_R_Speed | 8970 RPM | ok
Airflow_rate | 32 CFM | ok
PSU2_PIN | 525 Watts | ok
PSU2_POUT | 500 Watts | ok
PSU2_VIN | 224.48 Volts | ok
PSU2_IIN | 2.35 Amps | ok
PSU2_VOUT | 12.10 Volts | ok
CPU_Power | 420 Watts | ok
MEM_Power | 4 Watts | ok
HDD_Power | 1.29 Watts | ok
FAN_Power | 14 Watts | ok
MB_Power | 62 Watts | ok
Total_Power | 525 Watts | ok

Only extreme loads (e.g., stress -c 96) push CPU power to 420W. Most real-world full loads (like compiling) stay around 300W, so 35% fan speed is more than enough. When compiling the Linux kernel, 300W load is kept under 60°C.

Using a questionable decibel meter app on my phone, noise at 0.5m is about 65 dB. If placed on the balcony, it’s still audible in the living room through one door. But completely inaudible in the bedroom behind two doors—guess I’ll schedule heavy jobs for nighttime.

Idle

After installing Linux and booting normally, with no compute tasks, fans can drop to 10% (~3700 RPM). CPU temps ~50°C, idle power ~150W. Oddly, the PCH runs hotter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# ipmitool -H 192.168.6.99 -I lanplus -U user -P password sdr
Inlet_Temp | 21 degrees C | ok
Outlet_Temp | 38 degrees C | ok
CPU1_Temp | 51 degrees C | ok
CPU2_Temp | 49 degrees C | ok
PCH_Temp | 56 degrees C | ok
DIMMG1_Temp | 43 degrees C | ok
DIMMG2_Temp | 43 degrees C | ok
CPU1_VR_Temp | 39 degrees C | ok
CPU2_VR_Temp | 39 degrees C | ok
PSU1_Temp | 0 degrees C | ok
PSU2_Temp | 33 degrees C | ok
CPU1_DTS | 42 degrees C | ok
CPU2_DTS | 44 degrees C | ok
FAN1_F_Speed | 3680 RPM | ok
FAN1_R_Speed | 3680 RPM | ok
FAN2_F_Speed | 3680 RPM | ok
FAN2_R_Speed | 3795 RPM | ok
FAN3_F_Speed | 3680 RPM | ok
FAN3_R_Speed | 3795 RPM | ok
FAN4_F_Speed | 3795 RPM | ok
FAN4_R_Speed | 3450 RPM | ok
FAN5_F_Speed | 3680 RPM | ok
FAN5_R_Speed | 3795 RPM | ok
FAN6_F_Speed | 3795 RPM | ok
FAN6_R_Speed | 3450 RPM | ok
FAN7_F_Speed | 3680 RPM | ok
FAN7_R_Speed | 3795 RPM | ok
Airflow_rate | 12 CFM | ok
PSU2_PIN | 150 Watts | ok
PSU2_POUT | 144 Watts | ok
PSU2_VIN | 226.92 Volts | ok
PSU2_IIN | 0.65 Amps | ok
PSU2_VOUT | 12.10 Volts | ok
CPU_Power | 96 Watts | ok
MEM_Power | 4 Watts | ok
HDD_Power | 0 Watts | ok
FAN_Power | 4 Watts | ok
MB_Power | 40 Watts | ok
Total_Power | 150 Watts | ok

Such high idle power? I’ll just power it off when not in use…

I don’t have a power meter, so I haven’t tested BMC-only power when fully shut down. Online sources suggest ~15W, with fans adjustable down to 5% or lower. In cool environments, you could even turn fans off.

Installing the OS into Memory

My main storage is still on the i9-10900 platform. This new server has no drive bays for a boot disk. I could use a small USB drive or SSD, or set up PXE netboot.

But as mentioned, Optane PMem can be configured as a block device in BIOS. It can even be recognized as a boot device. So we can finally install the OS directly into memory, persistent across reboots—no external boot device needed.

Just enter BIOS Optane settings, reduce the Memory Mode ratio, reboot, and you’ll have free space to create a Region and Namespace. The resulting block device (e.g., /dev/pmem0) can host an EFI partition and boot the system. I went with EndeavourOS—its graphical installer correctly set up systemd-boot. I won’t admit I failed to manually install Arch due to missing kmod.

Finally, the old meme "install OS in RAM" becomes realityFinally, the old meme "install OS in RAM" becomes reality

Conclusion

I just got a new gigabit fiber connection at (another) home. Once I unlock the ONT, I’ll move the old i9-10900 HomeLab over, connect them via 10G NIC, and use NFS or iSCSI to mount storage. With local compute power now, I’ll save a lot of time compared to shipping data to a remote EPYC 9654 in Nanjing.

This article is licensed under the CC BY-NC-SA 4.0 license.

Author: lyc8503, Article link: https://blog.lyc8503.net/en/post/19-first-rack-server-hr630x/
If this article was helpful or interesting to you, consider buy me a coffee¬_¬
Feel free to comment in English below o/