Looking for feedback on M1 Mac Mini rig setup

I’m looking at putting together a space- and energy-efficient scalable plotting rig(s) with Mac Minis. Here’s what I’m looking at buying. Any feedback most appreciated!

  1. Mac Mini 16GB
  2. Seagate FireCuda 510 2TB M.2 NVMe SSD
  3. Orico Intel Certified Thunderbolt 3 40Gbps NVME M.2 SSD Enclosure
  4. 16GB Seagate HDD for long-term storage

My plan would be to buy two sets of these initially but plan to scale up if it’s working out.

I like the Mac Minis because they are reportedly fast for plotting, small, cheap and very energy efficient (as I understand it).

I suspect in about a week’s time none of this stuff will be buyable due to stock issues :slight_smile:

Any thoughts, comments, feedback most appreciated!

5 Likes

Tell me more of this report that you speak of (specifically the fast part) small :white_check_mark: , energy efficient :white_check_mark: :face_with_raised_eyebrow:

A bunch of folks on Reddit are running them on ARM native and getting 4 plots every 10 hours :slight_smile:

2 Likes

The main limitation is 16gb ram, but that should be enough for 4 plots. The M1 SoC is truly awesome.

1 Like

I’m using an almost identical setup, with a slightly different Orico enclosure. I’m using a Sabrent Rocket 2tb inside it.

I’m still trying to figure out the best setup, I’m easily getting 12 to 13 plots per 24 hours. Hoping to get that up slightly by using plotman and keeping things automated.

Some things I’ve run into that are slowing me down:

  • Occasional crash
  • 16tb WD drive self-ejecting during final copy from SSD (power issue?)

It is important to install python3 via “universal” installer and check that your python processes are “Apple” and not “Intel” in Activity monitor

A bunch of folks on Reddit are running them on ARM native and getting 4 plots every 10 hours :slight_smile:

This is a bit of an understatement. If I kick off 5 plots in parallel without staggering, they are done in 6.3 hours. If I do 3 x at once, they are done in 5.10hr, and 2x at once about 4hr. Staggering should even out resource usage and avoid plots finishing at the same time which means that the SSD → HDD copy becomes VERY slow because each process is trying to write to the HDD at the same time, leading to thrashing.

Keep in mind that macOS tends to start to swap from ram pretty quickly, which can mean with plotting it’ll be doing a lot of read/writes off the internal SSD. This could be a factor if you intend to resell the Minis when plotting becomes less desirable (your plan doesn’t include very much HDD space so not sure what your long term goals are). Part of this is that M1 macs appear to suffer from excessive wear in general. To hedge against this I installed Big Sur onto a spare 1tb NVME in a usb 3.0 (not thunderbolt) enclosure and have been using that. My thinking is that should mean any swap files land on that SSD instead of the permanent internal one. I have no idea if this reasonable or not. Aside from slightly slower boot times the system is smooth.

I’m using my mini in headless configuration, so I disabled filevault and turned on autologin. The ScreenSharing demon seems to bug out a lot so I’ve enabled SSH so I can restart it. this seems to be a longstanding issue but I’ve never relied on headless configuration before so new to me.

Final thought is that i’m running a remote harvester on the Mini. My main Farmer/Full-Node is a Raspberry Pi 4b, but I don’t wan’t the plots on the HDD on the mini to go to waste, so the mini is harvesting them. When the drive is full I’ll move it to the Pi with my other full plot HDDs (I have a Sabrent powered USB hub) and put connect a new empty HDD to the mini.

I’ve been plotting and farming for about 10 days, and the entire time “Expected time to win” has been 9 days as netspace is scaling as fast as I am, which is a bit disheartening. At this point I think I’ll stop at 5 HDDs (10tb - 16tb) partly because I’m looking at the price of them go way up and partly because my goal from the start was to establish a handful of full drives and let it farm in peace.

Happy to answer any questions you may have.

8 Likes

That is a HUGE understatement. People are seeing the wear of almost a years usage in a few weeks after purchase. I’m not sure why you’d go out of your way to defend a product that is so anti-consumer at this point. Don’t hear me wrong, I currently own 3 iPhones, 2 macbooks, an iPad, a Homepod, 4 apple tv’s, you get the idea. Apple has made great products, I just don’t like the trajectory they’re on. Those new iMacs look beautiful on the outside, toys on the inside - that “innovative external power brick” more like $229 additional land fill waste when it breaks.

I have my 16GB/2TB M1 Mini plotting on the internal disk and DriveDx says the “SSD Lifetime Left Indicator” is at 96% with a total of 165TB written to it.
My NAS is already half full so I think there will be enough drive health left once I’m done plotting (not planning on buying more drives). I’m keeping a close eye on the health stats though.

On SSD wear, @vandy I share some of your concerns on anti-consumerism, I stuck with a 2012 iMac as my desktop machine for along time because I could swap both the drives and the ram (and install a second drive!), but my impression is that the jury landed on the side on “weargate” being largely scary seeming numbers without being a real worry.

@Creeper interesting! care to share any performance stats? The internal SSD is going to be a lot faster than even the best thunderbolt nvme.

The plots take on average 5,5h each with 4 in parallel, although not perfectly staggered. I don’t think it’s much faster than with an external nvme.

I’m using the native M1 plotter and each plot uses 4 threads and 3400 ram.

OK similar to mine, I’m getting under 5 hours including copy time with staggering.

plotman analyze ~/chialogs/2021-04-25*
+-------+----+-------------+--------------+-------------+-------------+--------------+---------------+
| Slice | n  |   %usort    |   phase 1    |   phase 2   |   phase 3   |   phase 4    |  total time   |
+=======+====+=============+==============+=============+=============+==============+===============+
| x     | 14 | μ=100.0 σ=0 | μ=7.4K σ=369 | μ=2.7K σ=96 | μ=6.2K σ=81 | μ=428.8 σ=20 | μ=16.8K σ=443 |
+-------+----+-------------+--------------+-------------+-------------+--------------+---------------+

I’ve only been running consistently for a day but it should be completing 20 or 21 plots each day with my current config.

Are your processes “Apple” or “Intel” in activity monitor? Mine were Intel until I installed the “Universal2” Python 3 version, now they are Apple, not sure how much of a hit the Rosetta layer incurs.

Have you found any improvements with adjusting thread count?

(Edit: missed your notes on those)

2TB a day on a Mac Mini is nuts. Awesome! I can’t wait until mine arrive tomorrow.

Just to check, that’s 4 in parallel? With staggering?

Just to check, that’s 4 in parallel? With staggering?

Yes I’m using Plotman with 60 minute stagger, but also configured it to prevent more than two jobs running in phase 1 at a time, so the stagger changes a bit for each job.

Here’s a table showing the start and finish time for my last 10 20 plots. The start time is pulled from the plot filename itself and the finish time from the filesystem timestamp, so this is inclusive of final destination drive copying which is not included in the plotman stats above

Plot ID Start Time Finish Time Duration Actual stagger (m)
e4aab4e150 4:45 9:39 4:54
3148a6c5f0 6:13 11:06 4:53 88
c197241ac2 7:27 12:19 4:52 74
8966d55e93 8:28 13:23 4:55 61
3e3527c3f4 9:40 14:32 4:52 72
de77381343 11:06 16:00 4:54 86
d3fd6379d9 12:19 17:11 4:52 73
3ec650621d 13:24 18:19 4:55 65
29b17788f5 14:32 19:27 4:55 68
74f403a34a 16:00 20:57 4:57 88
f755dbed29 17:11 22:04 4:53 71
af68f22c1c 18:19 23:11 4:52 68
3b20731fdd 19:27 0:19 4:52 68
655527b9e2 20:57 1:52 4:55 90
8a4e1f71a7 22:04 2:59 4:55 67
44bb18674c 23:12 4:05 4:53 68
6b90c70e9a 0:19 5:15 4:56 67
c9455e14a3 1:52 6:46 4:54 93
4dbae8c380 2:59 7:51 4:52 67
44f079479e 4:05 8:59 4:54 66
3 Likes

That is great! Is there any chance you’d be open to sharing your Plotman config file? I am trying to figure it out and the documentation is … not yet amazing. :slight_smile:

1 Like

Sure thing, here it is config.yaml · GitHub. As for the docs, I agree, I had a hard time understanding some of it at first. I opened an issue with some proposed revisions on the max jobs config if you are interested [Documentation] The tmpdir_stagger_phase_ options are very hard to understand · Issue #151 · ericaltendorf/plotman · GitHub

Also I’ve edited my above comment to show the last 20 plots as of this morning. This also represents a 24 hour window. The average actual stagger is 73 minutes, so I’m wondering now if i would be better served to set that as the stagger value instead of 60, and let a potential third job start when phase 1 already has two in it.

2 Likes

I’ve changed my settings to only run 3 plots in parallel now, and am getting 3 plots every 4,1 hours so slightly better than the 4 plots every 5,5 hours I was getting before.
I suspect the internal drive is the bottleneck so I will add an external ssd for a 4th plot and see how that goes.

2 Likes

Great to knows thanks! I have two Mac Minis coming tomorrow (hopefully). I’m in two minds about whether to use the internal SSDs are the external NVMEs that are also coming.

Internal would be faster for sure (how much I’m not sure though? Thunderbolt is FAST too). But internal burns up the internal SSDs and will one day brick the Mini.

Hrmmm.

This feels a tad deceptive as generating one plot makes an ABSURD amount of writes!! Better question: how many TOTAL plots do you have?

I have multiple computers plotting so that wouldn’t tell you much, and I haven’t kept count of how many plots the mini has made.
Right now the drive is at 206TB of writes and 95% health left indicator. I think it’s 1,6 or 1,8 TB writes per plot so that would give an estimate of 120 plots from the mini so far?

3 Likes

Hi Guys,

Can anyone share a config file for plotman or swar that will optimize plotting for an 8GB ram M1?
The best I have done is 8 plots a day so far …

@basilhorowt I presume if I use your plotman config, I could just lower the plots in parallel to 3, and reduce the memory to say 2500MB

Regarding SSD lifetime on the M1, my internal one has 92% left according to smartctl, and that will be due to swap space thrashing … agree, should not happen … (I am plotting to a external temp SSD over thunderbolt3 I get 2GByte writes/sec on that :slight_smile: )

Cheers,

1 Like