Tales from the Lab - Minisforum MS-A2


Introduction

After being impressed with the performance and form factor of the Minisforum MS-01, I had to get my hands on their latest beast: the MS-A2, powered by AMD’s latest Zen 5 architecture. It’s also exciting to test a gadget before William Lam. Thanks for letting me be the first (I’m just kidding, of course).

In this post, I’ll give you a quick rundown of both systems and how they compare—especially from a homelab perspective focused on virtualization, low noise, and energy-efficient high performance.

A quick disclaimer first: I am not a hardware tester and do not have any real measuring equipment. Everything I report here is based on my experience with both devices in my environment.

MS-A2

MS-A2 (click to enlarge)

Use Case

Perhaps a quick word about what I do with the machines (for anyone who doesn’t read my blog regularly and stumbled across the article via Google). The minicomputers primarily provide compute and storage resources for my labs. My labs are 99% nested, which means that I install another hypervisor on top of the hypervisor to then perform my actual tests. Nesting offers several advantages: I don’t have to rebuild a test lab, and I can move a finished lab back and forth between hardware platforms, for example. The VCF setup I used to perform the more practical tests allows me to change the hardware base relatively quickly.

But let’s start with the less exciting stuff—tech specs.

Tech Specs Comparison

Feature Minisforum MS-01 Minisforum MS-A2
CPU Intel Core i9 13900H (14C/20T, 5.4 GHz Turbo) AMD Ryzen™ 9 9955HX (16C/32T, Zen 5, up to 5.4 GHz)
Architecture Raptor Lake (14nm) Zen 5 (4nm)
TDP 45W 55W
RAM Support 2x DDR5 SO-DIMM (up to 64 GB) 2x DDR5 SO-DIMM (up to 96 GB)
Storage 2x M.2 NVMe (PCIe 3.0), 1x M.2 NVMe (PCIe 4.0) 3x M.2 NVMe (PCIe 3.0)
Network 2x 2.5G Intel i226 NICs / 2x 10G Intel X710 1x 2.5G Intel i226 NIC / 1x 2.5G Realtek NIC / 2x 10G Intel X710
Graphics Intel® Iris® Xe-Grafik Radeon 610M
Cooling Dual-fan active cooling (customizable) Dual-fan active cooling (improved thermal design)
Size 154 x 150 x 64 mm 154 x 150 x 64 mm (identical chassis)
Power Supply External 19V DC External 19V DC
TPM Yes (firmware TPM) Yes (firmware TPM)
vPro/SEV Support vPro (limited)

At first glance, the two devices have a lot in common. Fortunately, the form factor is the same, so I don’t have to buy a new rack mount. The exciting details are in the small print. The MS-01 only officially supports 64 GB RAM, while the A2 only supports up to 96 GB RAM. Nevertheless, I have installed 128 GB of RAM in both systems. I am using the Crucial DDR5 RAM 128GB Kit (2x64GB 5600MHz SODIMM).

RAM

MS-A2 - RAM (click to enlarge)

The second difference is the CPU architecture. While Intel relies on its Big/Little architecture, which gives us performance and efficiency cores, AMD Zen 5 has symmetrical cores and uses SMT, which is equivalent to Intel’s Hyperthreading. I have described how to make P and E cores usable with ESXi here.

In my opinion, this is already a plus point for the MS-A2, as I can install ESXi just like that. What I find a little strange is the network card selection. While the MS-01 has two 2.5G cards from Intel, the MS-A2 comes with a strange configuration of one 2.5G Intel card and one 2.5G Realtek card. Unfortunately, there is no Realtek driver for built-in cards in ESXi. Fun fact: Realtek USB network cards do work, though. Overall, this isn’t important to me, as I use the X710 Intel cards throughout, since my network is completely 10G.

In summary, the following key data can be noted:

  • MS-01 14 Cores / 128 GB RAM / 2x10G / VMware ESXi, 8.0.3, 24674464
  • MS-A2 32 Cores / 128 GB RAM / 2x10G / VMware ESXi, 8.0.3, 24674464
RAM

MS-A2 - Inside (click to enlarge)

Cinebench Multicore Test – MS-01 vs MS-A2

As a first pragmatic test, I created a Windows 11 VM on both systems. Each VM was assigned the maximum number of vCPUs available on the host—meaning:

  • MS-01: 14 vCPUs (max useeable cores on i9 13900H)
  • MS-A2: 32 vCPUs (max useeable cores on Ryzen 9 9955HX)

Both ESXi server had the power policy set to High Performance, and Cinebench 2024.01 was executed in a continuous loop for 30 minutes to simulate thermal and sustained performance under load.

Cinebench

Cinebench on MS-A2 (click to enlarge)

This may not be a perfect test, but since the MS-01 is already in lab operation, I didn’t want to install Windows 11 natively. Of course, the Windows 11 test VM ran exclusively on the two hosts so as not to distort the results.

Metric MS-01 MS-A2
Power Policy High Performance High Performance
Idle Power Consumption 40 Watts 36 Watts
Cinebench Power Draw 86 Watts 121 Watts
Cinebench Score 734 pts (14 Cores) 1670 pts (32 Cores)

The difference is substantial. Even though the MS-A2 pulls more power under load, it doubles the Cinebench score compared to the MS-01. Idle consumption is slightly better on the MS-A2, likely due to the newer and more efficient AMD Zen 5 architecture. Performance-per-watt in multicore scenarios clearly favors the MS-A2.

Minisforum mentions more efficient cooling on its website, which may well be true, but the MS-A2 is somewhat louder and, above all, significantly warmer than the MS-01, which seems logical considering the power consumption. However, both are still within acceptable limits. I wouldn’t want to have the MS-A2 running 24/7 at full load next to my pillow, but anyone who knows my blog knows that I shut down devices I don’t need anyway. So my colleagues on the teams call haven’t complained about a tornado raging next to me.

All in all, I would say that the noise is justified for the performance. When idle, however, the MS-A2 is inaudible. My Mikrotik switch is louder, as is my Dyson fan, which is currently running thanks to the 28 degrees Celsius temperature.

Internal Network Performance – VM to VM on the Same Host

The external network performance was identical on both servers, which is not surprising since both have the same network cards and both CPUs have enough power to run a 10 Gb/s network. That’s why I’m not going to bother with detailed tests at this point.

What interests me much more is how the performance compares between two VMs, as I do a lot of nested labs and also vSAN nested, which is often a decisive factor.

Test Setup

  • 2x Alpine Linux VMs (2 vCPU, 2 GB RAM each)
  • alpine-a: runs iperf3 -s
  • alpine-b: runs iperf3 -c 192.168.16.11
  • No optimizations applied (default config, no tuning)
  • Only these two VMs were running on the host

MS-01

alpine-b:~# iperf3 -c 192.168.16.11
Connecting to host 192.168.16.11, port 5201
[  5] local 192.168.16.12 port 55930 connected to 192.168.16.11 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  5.03 GBytes  43.2 Gbits/sec    0   2.80 MBytes
[  5]   1.00-2.00   sec  4.33 GBytes  37.2 Gbits/sec   60   2.75 MBytes
[  5]   2.00-3.00   sec  4.96 GBytes  42.6 Gbits/sec    0   2.75 MBytes
[  5]   3.00-4.00   sec  5.88 GBytes  50.5 Gbits/sec    0   3.01 MBytes
[  5]   4.00-5.00   sec  6.93 GBytes  59.6 Gbits/sec    0   3.01 MBytes
[  5]   5.00-6.00   sec  6.99 GBytes  60.1 Gbits/sec    0   3.24 MBytes
[  5]   6.00-7.00   sec  6.54 GBytes  56.2 Gbits/sec    0   3.24 MBytes
[  5]   7.00-8.00   sec  6.32 GBytes  54.3 Gbits/sec    0   3.24 MBytes
[  5]   8.00-9.00   sec  6.62 GBytes  56.9 Gbits/sec  139   2.59 MBytes
[  5]   9.00-10.00  sec  6.37 GBytes  54.8 Gbits/sec    0   2.78 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  60.0 GBytes  51.5 Gbits/sec  199
[  5]   0.00-10.01  sec  60.0 GBytes  51.5 Gbits/sec           receiver

MS-A2

alpine-b:~# iperf3 -c 192.168.16.11
Connecting to host 192.168.16.11, port 5201
[  5] local 192.168.16.12 port 35168 connected to 192.168.16.11 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  9.47 GBytes  81.3 Gbits/sec    0   2.06 MBytes
[  5]   1.00-2.00   sec  10.0 GBytes  85.8 Gbits/sec    0   3.58 MBytes
[  5]   2.00-3.00   sec  10.2 GBytes  87.4 Gbits/sec    0   3.78 MBytes
[  5]   3.00-4.00   sec  10.1 GBytes  86.7 Gbits/sec    0   3.78 MBytes
[  5]   4.00-5.00   sec  10.1 GBytes  87.1 Gbits/sec    0   3.78 MBytes
[  5]   5.00-6.00   sec  10.1 GBytes  87.0 Gbits/sec    0   3.78 MBytes
[  5]   6.00-7.00   sec  10.3 GBytes  88.6 Gbits/sec    0   3.97 MBytes
[  5]   7.00-8.00   sec  10.3 GBytes  88.7 Gbits/sec    0   3.97 MBytes
[  5]   8.00-9.00   sec  10.1 GBytes  87.2 Gbits/sec    0   3.97 MBytes
[  5]   9.00-10.00  sec  10.1 GBytes  86.9 Gbits/sec    0   3.97 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   101 GBytes  86.7 Gbits/sec    0
[  5]   0.00-10.03  sec   101 GBytes  86.4 Gbits/sec           receiver

An attempt to interpret the results

The difference is likely due to the internal memory bandwidth, PCIe performance, and possibly better NUMA handling on the MS-A2’s Zen 5 platform. Since this is purely intra-host, the NICs themselves aren’t part of the data path, which makes this a good synthetic benchmark for VM-to-VM memory and CPU path efficiency. The MS-A2 has a clear lead here—offering nearly 70% higher throughput compared to the MS-01. In addition, the results on the MS-01 fluctuate, which in my opinion can happen when a vCPU is moved to an E Core. Since AMD does not have E Cores, the result is significantly more stable and subject to less fluctuation.

Noise - Methodologically incorrect investigation

I measured the noise development of the MS-A2 “professionally” with my iPhone. There are 100 and 1 apps for this, but I chose the one with the most reviews (Dezibel X – no advertising for the app) and I can’t calibrate it. If anyone wants to give me a dB meter, I’ll do more professional tests in the future. :D

However, I don’t have the time to compare it with the MS-01 - I tested this subsequently at the request of a LinkedIn user. I measured from a distance of 2 meters, as I normally sit between 2 and 3 meters away from my lab. I get a base load of 32-34 dB. However, it should be noted that it is quite warm in my office today and my Mikrotik switch is generally a little louder than usual, but the point is to measure the relative additional load. The background noise in my homeoffice ranges from quiet whispering to the gentle rustling of leaves in the wind. I live in a relatively rural area, so the loudest sounds are my neighbors or the owl outside my window.

In idle mode, the MS-A2 is completely inaudible in my environment. I haven’t noticed any real change in the dB meter. The fan is drowned out by the rustling of the Mikrotik router – I really should replace the fans in that box. I started my VCF Lab on the MS-A2 and waited about 10 minutes. The noise level rises to 35-36 dB but regularly reaches up to 42,3-43 dB. I have the fan curve set to performance, which means that the MS-A2 spins up quickly and then calms down again quickly, which results in a wave-like background noise with the noise constantly rising and falling. I need to see if I can set the fan curve and response behavior in the same way as on an ASUS NUC. The NUC has an incredible number of options for fan management.

A2 noise

MS-A2 noise level

The blue curve is the average, and you can see a clear increase in the high frequencies, which are the frequencies that most people find disturbing. To put this into context, 42 dB is still considered relatively quiet and may not even be noticeable in a city apartment. However, a difference of up to 10 dB is also significant. Humans perceive this as approximately double the noise level.

But can it run doom VCF?

First of all, I did not install VCF on the MS-A2. Why? Time! But I did migrate an existing nested lab to the MS-A2. Remember? Introduction and all that? That’s exactly why I build my labs nested. Here’s a brief overview of how my VCF lab is set up.

It’s a consolidated design and doesn’t use vSAN. It’s also built on three nested ESXi servers. This isn’t officially supported with VCF 5.X, but to be honest, I’m constantly doing things that aren’t supported, and that’s not going to bother us here. I deployed the original lab on 2 MS-01 and have been using it for quite some time. The 3 nested ESXi hosts each have 8 vCPUs, 45 GB RAM, and a small boot disk. The principal storage is NFS. If you’re wondering how that works, I wrote a blog post about it here.

If you’re good at math, you’ll have noticed that 3x 45 GB RAM is more than 128 GB RAM, but a little oversubscription never hurt anyone (except when it comes to licenses).

After everything had been migrated offline, since Intel and AMD are not compatible at all and therefore no live migration between the two systems is possible, I started VCF and the poor MS-A2 immediately went into full load.

A2 full load

MS-A2 on full load

Poor sweet summer child - the MS-A2 becomes slightly louder and the temperatures rise.

  • I received the first sign of life after approx. 3:30 minutes. My vCenter responded to the first ping. Of course, the ping times were far from ideal.
  • After 6:50 minutes i can logon to the vCenter. Only NSX Manager is taking its time. But we are already familiar with that.
  • After a good 8 minutes, NSX Manager is also available, but still a little sluggish.
  • After 10 minutes, everything has settled down enough that you can use the lab really well.

I don’t notice any difference in responsiveness compared to when it’s running on 2 MS-01.

Where’s the poop, Robin?

I’m not sure which of my readers are familiar with the series, but never mind. AMD and NSX is one of those things. Officially, NSX does not work on Ryzen or other AMD consumer CPUs.

At first, I was a little surprised, because I knew that NSX Edges cause problems during installation or upgrade on AMD consumer CPUs, but I deployed my Edges on Intel. A quick look at the console of one of my Edge VMs revealed the following.

Edge VM

Stress on the EdgeVM

So, at first, I was pretty clueless. Luckily, there’s the awesome vExpert community, because a) I’m getting older and forgetting more than I want to admit, and b) I don’t always know everything. My thanks go to Abbed Sedkaoui for his quick help. He put me on the right track. By the way, he has a great blog.

The problem is that when the Edge VM is started, a Python script is executed that checks whether an AMD CPU is installed and, if it is not an AMD EPYC, simply throws an error and prevents DPDK from starting. This leaves Edge offline.

Edge VM Error

EdgeVM - Here’s the problem

The solution is simple: log in to EdgeVM with root and edit the following script /opt/vmware/nsx-edge/bin/config.py.

# AMD only claims DPDK support of the following processors:
# (1) AMD EPYC 7XX1 series and newer.
# (2) AMD EPYC 3000 Embedded Family and newer.
vendor_info = "'
model_name = "'
for line in cpuinfo.splitlines():
    if line startswith( 'vendor_id'):
        vendor_info = line.split(':'1) [1].strip()
    if line startswith 'model name'):
        model_name = line-split(':', 1) [1] .strip()
    if vendor-info and model_name:
        break
#  if "AMD" in vendor_info and "AMD EPYC" not in model_name: <---here
#      self.error_exit("Unsupported CPU: %s" % model_name)   <---here

You just need to comment out the CPU check. After that, the Edge must be rebooted and our NSX will now work.

The problem is upgrading or redeploying the Edge VMs. You only have about a minute after the Edge has been deployed to adjust the script. That’s why I’ll be deploying my Edges via OVA in the future and using them on an Intel host. That’s the easiest way for me.

Conclusion - Is the MS-A2 the perfect home server?

I would give a clear yes and no. It depends greatly on what you intend to do with it. If you want to deploy VCF without workarounds and technical challenges, then I would definitely say go for the MS-01 and buy two of them. If you are using Proxmox or another hypervisor, then the MS-A2 is a no-brainer – buy it and be happy. Both the MS-01 and MS-A2 are excellent compact systems for homelab use, but the MS-A2 clearly sets a new bar. With twice the Cinebench score and significantly higher throughput on the internal network, this box is the clear winner for me. However, I don’t mind DIY solutions and unsupported solutions. I can completely understand if someone prefers to buy a home server on which they can run vcf without any tinkering—but that’s just not my thing.

Maybe one more thing—how much does it cost?

Since I haven’t had time to update my Lab BOM yet, I’ll briefly mention the costs here. I ordered the MS-A2 from Amazon because it was available immediately and I couldn’t wait for the one I actually ordered from Minisforum to arrive. I paid €1,395.88 for the MS-A2 with 2 TB NVMe and 128 GB RAM. On top of that, there’s a custom rack mount for €92, but I’m not counting that in the total cost. At €312, the RAM isn’t exactly cheap and is still hard to come by in some places. But I think that’s the price you pay for being an early adopter.