Truenas and Plex the right way

Team
I think my NAS hardware is good but don’t think its optimized the correct way.
Current system,
Intel I7 13th gen LGA1700
Consair 64g DDR4 so 4 16g sticks
SI SAS 9210-8i host bus adapter *provides high performance for internal
4 X20TB Seagate Ironwolf Pro in Raidz2
Intel 10G 520 dual with SP+ connection with is connected fiber to the switch
Main drive with Turenas is a Samsung 970 EVO plus 1TB
Motherboard ASrock Z790M

Network switch
Netgear XS728T full 10G switch
Cabling is all cat8

This system is mostly a media server and Issues the Nvidia shields states the connection to the nas is not fast enough to run 1080P and 4K streams

I will backup soon all of my movies but right now roughly its 27TB pool of movies in MKV format and just under a 1000 movies

I have watch a ton of youtube video some say use a large SSD as cache to speed up read. The system does not have space for videocard for Transcoding.

I will love some inputs on optimizing this guy.

I’d argue it would be of no use:

The 1TB boot drive is a waste; use something cheaper. Your boot drive is for the OS exclusively.

Consider an SSD (or two) for apps (Plex), because who knows? Maybe you’ll want more apps or even VMs in the future.

You might not be able to get a GPU, but maybe you’ll be able to use the onboard igpu for transcoding.

There can be arguable optimization of using a different motherboard & ECC ram, but for a media server, I’d argue you’re fine. Don’t forget to test RAM, stress test the CPU & cooling, burn in the hard drives, and then enjoy.

Uhh, what else? Don’t forget to confirm firmware of the HBA is up to date & flashed to IT mode. Also slap a fan ontop of it - those things expect server level airflow & without direct cooling, you may get some odd issues.

This part is weird because even a 1gig connection should be more than enough bandwidth for even 4k streams. Is this using direct play, or are you transcoding? What is the CPU usage looking like when you’re trying to play something back on your shield? Is Plex showing this a direct playback or remote playback (also… is the shield actually on the same network or is it remote)?

I remember when I first installed Plex I had to tweak a setting or two to treat all playback from the same WAN IP as ‘local’, and also to disable Plex Relays - otherwise I’d get awful performance.

1 Like

You need an SSD pool to host your apps and their data - so whilst you put your media on spinning rust, you should store the Plex metadata on SSD.

The reason for this is as follows:

  • When streaming, the client buffers data ahead of time and ZFS also does sequential pre-fetch to have the next load of data in memory - so spinning rust for media is just fine so long as its throughput is sufficient to keep up with the streaming needs

  • When the Plex client wants to display a list of TV series or films, it needs to access a shed load of data and graphics and send it to the client - and having this on SSD makes your Plex client feel noticeably more responsive. And an SSD will speed up both Plex’s regular checks for new and updated metadata and temporary files for transcoding.

  • L2ARC can cache ZFS metadata from both pools and data from both pools. But caching anything from the SSD pool on L2ARC is no different performance than reading it from SSD, and you don’t need (or want) media data on L2ARC. So the only benefit here is reading the HDD metadata - and even then only the first time after boot because after that with a reasonable amount of memory it will be in ARC anyway.

So I doubt L2ARC will do anything for you. But using SSD(s) for an apps pool will be very beneficial.

As Pavel @Fleshmauler says, this is a waste of a decent SSD. Buy a small SSD for TrueNAS and use the 1TB EVO for an apps pool (and either buy another 1TB for a mirror or replicate this to HDD as a backup).

Your network connection from the Nvidia Shield to the NAS is only as fast as the slowest link in the chain and that is usually the Wifi. What class of Wifi do you have and how is it connected to the switch, and what network speed does the Nvidia report it has negotiated?

According to my Plex server, 1080p transcoded files need between 8Mb/s and 20Mb/s to stream - pretty much any decent strength dedicated wifi should be able to achieve that, but clearly a weak Wifi signal or competing for wifi access with other devices can impact that.

You don’t need a GPU for transcoding - Plex can do CPU transcoding and a 13G i7 should have reasonable power for that - besides Plex GPU transcoding needs a Plex Pass anyway.

So, you should definitely be good for background transcoding, and might be good for real-time transcoding (depending on what resolutions you are transcoding from/to).

1 Like

It’s been a while since moved from plex to jellyfin, but jellyfin has a similar setting where you can define which subnets are considered local by plex (and in my case jellyfin) so plex knows if the device is from that subnet it doesn’t try to transcode because the device is “not local”