Building Our Kick-Ass Plex Server With AMD Ryzen Threadripper 1950X
Intro, Goals, and Hardware
Regular PC Perspective readers probably know that we're big fans of Plex, the popular media management and streaming service. While just about everyone on staff has their own personal Plex server at home, we decided late last year to build a shared server here at the office, both for our own day-to-day use as well as to serve as the backbone of our recent cord cutting experiment.
You can run a Plex server on a range of devices: from off-the-shelf PCs to NAS devices to the NVIDIA SHIELD TV. But with many potential users both local and remote, our Plex server couldn't be a slouch. So, like the sane and reasonable folks we are, we decided to go all out and build a monster Plex server on AMD's Ryzen Threadripper platform. With up to 16 cores and 32 threads, a Threadripper processor would give us all of the transcoding horsepower we'd need.
It's now been several months since our Plex server was brought online, and so we wanted to share with you our build, along with some discussion on why we chose certain hardware and software.
First, let's take a brief look at our goals and requirements for our Plex server. Since we were building an overpowered system, we decided to also migrate our local PCPer file server to the new hardware as well.
This required reserving about 15TB of storage and it also determined our choice of operating system. If we were building a server exclusively for Plex, an operating system such as FreeNAS or unRAID would have been ideal. But with the server needing to pull double-duty for office work, we decided to go with Windows 10 Pro.
The Plex Media Server application runs great in a Windows client environment, and sticking with Windows let us maintain compatibility with our existing backup and testing workflows. It's possible of course to use one of the aforementioned storage-focused operating systems and virtualize Windows as necessary, but we wanted to both keep things simple with a single OS as well as have access to native performance when we needed it.
We also briefly looked at running Windows Server for its improved management features and its ability to better handle and defer those unfortunately timed Windows Updates, but we determined that Windows Server's improved capabilities didn't justify its higher cost, at least when it came to our needs.
As mentioned, we went with Threadripper for this build, specifically the top-end 1950X. AMD's Ryzen lineup may not be the best choice for single-threaded workloads, but for tasks such as transcoding multiple video streams simultaneously, the 1950X's 32 threads are hard to beat.
At the time we were planning this build, there weren't many Threadripper-compatible motherboards available. We therefore went with what we could find, which was the Gigabyte X399 AORUS Gaming 7. It's a fine board that has thus far served us well but, as its name states, it's a gaming focused board that has more features than we need. A build like this doesn't demand a feature-rich motherboard, so if we were building it today, we'd likely go with a cheaper option.
Similar to the motherboard situation, there were not many CPU coolers available at first either. Thankfully, one of the few that was available was the Noctua NH-U9 TR4-SP3, a 92mm dual-fan cooling solution that has kept our 1950X, at stock frequencies at least, humming right along.
RAM is important with the Threadripper platform, and while we didn't go with the fastest memory on the market, we ended up with 32GB (4 x 8GB) of Corsair Vengeance LPX at 3200MHz. As we'll see later on in the "Performance" section, the 1950X performs just fine at stock processor and memory speeds.
We also needed a video card to connect to our server room monitor. Although Plex now supports hardware-accelerated transcoding, we didn't need to worry about that as our 1950X would be more than capable of handling our video encoding needs. We therefore went with an NVIDIA GTX 750 Ti that we had on hand here at the office. We chose this card not only because we had one available, but also because it does not require external power, helping us keep cables at a minimum for a cleaner layout and improved airflow.
To take advantage of our office's recent upgrade to 10Gbps Ethernet, we equipped the server with an Intel X540-T1 NIC. This is an older model that Intel has since replaced, but it still performs great and can be found used (or in some cases even new) for between $120 and $150. There are cheaper 10GbE NICs out there, but these Intel cards have been rock-solid in both our server and in many of our workstations. A 10GbE upgrade isn't necessary in most cases for just Plex, but since this server will also handle our PCPer data, including large 4K video projects, we wanted to ensure the best performance possible.
We'll dive into the storage aspects of our server next, but to round out our build hardware, we used a spare 120GB Samsung 840 SSD for our boot drive. We're storing our Plex database on another dedicated drive (a 1TB Samsung 960 Pro), so we didn't need a large or especially fast drive just to run Windows.