Megaplex - Custom Plex Server

As part of my plan to cut cable I built a custom server specifically for hosting Plex and handling hardcore HD video processing/transcoding - something for which the Synology isn’t quite as well suited.

Research

Plex has some recommendations on what sort of CPU you need to accomplish transcoding. Using a separate server to do the video processing and leaving the content stored on a NAS is something several folks have working well.

There is a benchmark called “Passmark” that helps guide what sort of CPU might fit the bill. The rough guideline is that if we want HD content, we need to multiply 2000 (the benchmark required for a single stream) by the number of streams we might have (say, 2 or 4). For me, I figured four streams would be enough to future-proof things for a while, so I wanted a CPU with Passmark of ~8000.

I ended up choosing an AMD FX-8350 processor with a Passmark of 8988 and a pretty good price-to-performance ratio.

Storage

I originally tried to use the WD Green drives I had tried in my Windows Home Server. FAIL. The poor performance on these drives caused any sort of heavy Plex library indexing to fail with I/O errors. I ended up having to replace these with different, better-performing drives.

I used a drive I already had for the system drive on the box and added two higher-perf drives I bought as storage for the Plex library and scratch/temp space.

I originally wanted to configure them in Windows Storage Spaces for fault tolerance, but I ran into an issue where Plex constantly refreshed item metadata endlessly so I switched to standard drives and just made sure everything had a good backup running. This has better performance over mirroring anyway, and perf is key.

On August 23, 2019 I upgraded the OS drive on the server to a Samsung 860 EVO 500GB SSD. While the Plex server performance itself was decent, any time I had to log in and perform maintenance was extremely slow. Rebooting or doing any sort of system updates was also very slow. The SSD has addressed that as well as some of the noise from the “spinning rust” disk.

As part of the SSD update I cloned the HDD. There were three partitions - a system partition, an OS partition, and a recovery partition. Items of note:

  • I had to use a “server” version of Macrium Reflect since the OS on the machine is Windows Server. That required a 30 day trial rather than just being able to use the free version of the product.
  • The clone created an MBR disk rather than a GPT disk, which I think is fine. GPT seems to only be usable by UEFI; MBR seems to be usable by both UEFI and BIOS (?).
  • The system and OS partitions cloned fine (I was able to resize the OS partition as needed), but I had to manually recreate the recovery partition. For some reason, the recovery partition just would not clone.

Performance

After getting this built, I was very pleased with the performance. Transcoding a 1080p video barely raises the CPU usage to 10%, and a typical 2-hour 1080p movie can be converted with Handbrake in under three hours.

Fan Upgrade

In September 2019 I upgraded the CPU cooler to a be quiet! Dark Rock TF because the existing CPU fan got pretty loud when people were using the Plex server or I was ripping movies. It was $90 at the time of purchase, but now when the CPU is fully loaded I don’t hear a single thing. It makes working in the office next to the Plex server much easier.