Hey all.
So I thought I would just document a Plex server build I have recently put together with a view to getting maximum performance when it comes to the transcoding of 4K UHD files.
I used some sources as a good guidelines as to what the best components would be in order to achieve this goal. This article will cover the main components of the Plex server. The rest of my build will be listed, but components such as the Motherboard,PSU, Optical drive ETC are not vital to Plex server performance.
The CPU
The CPU is a massively important part of a Plex server. As the CPU will be doing the bulk of the transcoding of your files (Unless you have GPU hardware acceleration, we will get to that). I used a rough guidelines from the Plex crew in order to figure out an approximate best fit CPU. You can check this guide out here: https://support.plex.tv/articles/201...for-my-server/
While it is a guideline, it is a fairly accurate one. As we can see it is mentioned that for 4K HDR processing, it is best to have a CPU capable of 17000 points in Passmark or above. I hunted around and found that the Ryzen 2700X CPU is a great fit. It has a Passmark of 17599 which you can see HERE. With the Ryzen 2700X being relatively affordable, it seemed like a no brainer.
It is worth noting that the Passmark score detailed will be the Ryzen 2700X running at maximum performance through AMD's PBO technology (Performance Boost Overdrive), you can read all about how this works HERE. Arguably you can increase this score and transcoding performance with an all core overclock. However you will need to ensure your overclock is stable, otherwise your Plex server will be unstable.
The GPU
Plex can use Hardware Acceleration for transcoding. This means that if you can get a GPU into your server, then better for it as Plex will utilise the GPU for transcoding. GPU's due to their architecture are very efficient at processing video files, more so than a CPU. Now begins the journey of finding out the best GPU for that task.
After doing some research Nvidia is kind enough to supply a matrix that details their GPU NVENC capabilities which you can find here: https://developer.nvidia.com/video-e...support-matrix
A small snippet of the matrix
The matrix above cover Pascal,Turing and Volta architectures. At the time of writing this article you can pick of a Pascal GPU for hardware acceleration cheaply. However the Turing generation of GPU architecture actually comes with a new and improved NVENC chip, so it made sense at this time to go for a Turing based GPU. Now, there is no need to have a super top end GPU to help with transcoding. As such I opted for the GTX 1660. It offers the latest NVENC capabilities while remaining affordable.
I can tell you that when processing a 4K HDR File that the GTX 1660 Video utilisation never goes above 50% utilisation, that is not bad at all and certainly gives you plenty of headroom.
Now let it be known that a GPU is NOT a requirement for a Plex server. If you have an adequate CPU, you will be fine. GPU's are just more efficient and can help out if you have a weaker CPU in your build.
**NOTE** You will require a Plex pass subscription in order to use Hardware Acceleration. This can either be a monthly subscription or with a one off purchase (One off purchase is well worth it). Unfortunately using the free version will mean that your GPU will not be utilised.
Storage
In this day and age, we all know that SSD based drives are the way forward. Plex is no exception. I highly recommend that your Plex/Windows/Linux install uses an SSD. Why ? Well Plex creates temporary files for access when it is transcoding a file for streaming, the faster the drive the better, especially if you find yourself providing multiple streams at any one time, with an SSD you are less likely to hit an I/O limit whereby you start hitting performance issues. Ideally, if you have another SSD, you can use it as a dedicated drive for the Plex temporary files and keep those off of the main OS drive, but it is not 100% necessary.
Another reason for SSD, Optimized files. With Plex you can create pre-transcoded files also referred to as Optimized Files on Plex. On Plex you are able to create additional copies of a video in different file formats. This is useful if you know you will be streaming to a device that cannot natively play one of your video files. The good thing about optimized files is that your Plex server will identify these and stream these directly to the client. As these files are pre-transcoded...this lessens the burden on your system. An SSD again in this case would be ideal simply for quick files access and once again, there is less chance of hitting that I/O limit if you are providing multiple streams.
If you are wanting to go with the ultimate storage then you would want to Opt for M.2 SSD drives, but these do come at additional expense. I personally opted for a standard SSD using the Sandisk Plus 1TB, which admittedly I had laying around....so even better.
RAM
I am happy to say that RAM is a very small concern when it comes to Plex as it barely utilises any. While at the date of this article I would recommend most systems be built with 16GB of RAM, you can get away with 8GB. I personally built my Plex server with 16GB RAM, this was a personal choice as it allows me to utilize my Plex server for other purposes without worrying about running low on memory.
On another note regarding RAM. You can choose to use some of your RAM as a RAMDISK. This can be best explained HERE as to what this is.
If you are looking to create a super fast drive for Plex temporary transcoding files, this is also an option. that being said for my use case and for most use cases this will be overkill, however this is ExtremeHW, so if you are looking for the best of the best, then why not!
..........................................................................................
So that concludes the journey of sourcing the best components for my build, and will hopefully point you in the right direction on how to identify the best components for yours !
So now to my build in its entirety
CPU: AMD Ryzen 2700X @ 4.1Ghz all core.
CPU Cooler: Corsair Hydro H75 AIO
Motherboard: Asus ROG I-Gaming X570 (ITX) (Formerly the Asrock Phantom Gaming TB3, Had to be replaced due to terrible design flaw)
RAM: 16GB Corsair Vengeance 3200Mhz DDR4 CL16
Storage 1: Kingston A2000 256GB M.2 (For Windows OS)
Storage 2: Sandisk Plus 1TB SSD (For Plex transcoding temp files)
Storage 3: Toshiba X300 4TB HDD (Used for Steam Cache, not Plex)
GPU: GeForce GTX 1660 MSI Armour OC
PSU: Be Quiet Power 11 600 Watt
Case: Thermaltake Core V1
As you will see, I went for an ITX build. For me, I prefer that my Plex server be as discrete as possible while maintaining an element of power that will last me for the coming future. This is more easily done with an ITX build over an SFF or uSFF build, but each to their own. This build cost me approx: £650-700. You can most certainly go for a cheaper build with a lower end motherboard, a Pascal based GPU (over Turing) and 8GB RAM. A Plex server does not need to cost the earth and if done right can last you for years to come.
I did not document every stage of my build as I felt that is not necessary for this particular article, but you can see below some images of my build.
I enjoyed my latest build as well as writing this article, hopefully some of you Plex people out there will enjoy this read and hopefully helps you get a rough idea when it comes to your own server.
If you would like to read another users experience and build process you may wish to check out Laithan's thread.
All the best,
E