CPU suggestion for Plex@FreeNAS? – Better than Intel Core i3-4370?

Server Version#: 1.16.5.1554
FreeNAS Version#: 11.2-U5

I run the latest Plex Server on FreeNAS, which is using an ASRock E3C226D2I motherboard with Intel Core i3-4370 | (CPUBenchmarknet) | (CPUMonkey), 16 GB RAM and 6 pcs. WD Blue 5 TB HDDs. Booting from SanDisk 32 GB USB-Stick (with backup stick).

My problem is that 1080p playback on an Apple TV 4 (non 4K; attached via 100 Mbit Ethernet) sometimes stutters with direct playback or with transcoding at high datarates.

I’m looking for suggestions for a better, faster, energy efficient CPU, which fits the FCLGA1150 socket in my above motherboard and provides the biggest bang for the buck. I’m looking at low-cost, not high-end.

Ideas? Or tip which specific spec to look for when checking benchmarks?

I get crazy over the fact that there are approx. 40 different models of each i3/i5/i7 in each generation. Holy ■■■■, which one to pick!?

With the myriad of players and player settings, I wouldn’t upgrade your core i3 until you’re 100% sure of what’s possible or fixable with your current setup.

Why is it stuttering with direct stream? 100 Mbps half duplex?
We gotta solve that first imo.

First off, I agree with Nibbles; I think there is something else at play here. Have you actually checked the server loads when this happens?

That said: If you are set on upgrading the CPU, I wouldn’t get hung up on an “energy efficient” CPU. This is because, within any particular family of CPUs less power is the same thing as saying slower. Since you will be limited (by the motherboard) to Haswell-family CPUs, this definitely applies. Don’t get hung up on TDP specifications; that is simply the maximum heat that the computer cooling system must be designed to dissipate. Though it is related to CPU power consumption, it does NOT indicate that a CPU of higher TDP will always use more power. In fact, for the same computational load, the power consumption should be more or less the same. It does, however, indicate (again, within a CPU family) that the higher TDP CPU will be a better ultimate performer.

All that said, a big factor in your choice will be what RAM you currently have installed. As it happens, with that Intel chipset and a Core i3 CPU, you could have either ECC or non-ECC RAM. However, only the Core i3 and Xeon CPUs support ECC. So, if you have ECC memory, you’re going to need to look for a Xeon (any of them) unless you want to replace your memory too. If you happen to have non-ECC RAM, then you can look for an i5 or an i7, though I’d suggest looking for an i7 (any of them).

First of all: Thanks for your comments and support!

After filtering the Intel CPU list, realized now too, that I’m pretty much limited to Intel Core CPUs 4th generation. Only exceptions are Core™ i7-5775C and i7-5675C, which are 5th gen Broadwell, buy way too expensive for my use.

Those 2x 8 GB RAM are Crucial 8GB DDR3-1600 ECC UDIMMs (CT102472BD160B), DDR3 PC3-12800 • CL=11 • Unbuffered • ECC • DDR3-1600 • 1.35V • 1024Meg x 72.

I’m was about to snipe a used i7-4790K or i7-4790 on ebay, but as it looks it doesn’t indeed support ECC, and requires non-ECC RAM. If so: Suggested CL value? RAM Frequency?

As for the Ethernet connection to the Apple TV 4: This is using approx. 20 m multi-wire twisted-pair phone cable which was pre-installed in walls and ceiling. It should be perfectly fine according to these instructions (sorry Google translation from German source), and provides IMO a better connection than both my 2.4 and 5 GHz Wifi. According to the router dashboard it’s a 100 MBit connection, but I can’t tell whether half or full duplex (how can I?).

If I run a Speed Test from that Apple TV 4 to an internet server through my 200 Mbps down/20 Mbps up cable connection, I get 92 Mbps down, 21 Mbps up, 10 ms Ping, 2 ms Jitter, 0% packet loss on average. Looks good to me, or doesn’t it?

The problem I’m having and which bothers me is that not every video file plays equally good/quick/smooth. I often find myself tinkering around with the settings such as conversion resolution/data rate, Experimental Player on/off, Automatic Quality on/off to make a video container play reliably. What also bugs me is the often slow scrubbing speed: jumping from position to another, takes sometimes ages for the playback to pick up again.

I think I misstated that I’m using Direct Play: Most of my video containers are MKV, which if I understood correctly according to this article can’t be Direct Played, but only Direct Streamed.

"The article also states that enabling an incompatible Subtitle track automatically requires full transcoding. (Expand for citation)." ... which is one of the problems I'm dealing with (see my tests below)

Note: Subtitles can introduce a wrinkle here sometimes. Even if a file’s audio, video, and container are all compatible with a Plex App, if a subtitle stream is selected and is not compatible with the Plex App, then the Server will “burn in” the subtitle text within the video. This requires a full transcode of the video stream.

I’ve made a few simple, unorthodox test, playing back an mkv of Stranger Things S03E01-1080p:

Test Video Specs
• Length 50:33
• Bitrate 6813 kbps
• Width 1920
• Height 1080
• Aspect Ratio 1.78
• Video Resolution 1080p
• Container MKV
• Video Frame Rate 24p
• Video Profile main 10

• File stranger.things.s03e01.german.dl.hdr.1080p.web.h265.internal-eisbock.mkv
• Size 2.41 GB
• Container MKV
• Video Profile main 10
• Codec HEVC
• Bitrate 5533 kbps
• Bit Depth 10
• Chroma Subsampling 4:2:0
• Color Primaries bt2020
• Color Range tv
• Color Space bt2020nc
• Color Trc smpte2084
• Frame Rate 23.976 fps
• Height 1080
• Level 4.0
• Profile main 10
• Ref Frames 1
• Width 1920
• Display Title 1080p (HEVC Main 10 HDR)
• Codec EAC3
• Kanäle 6
• Bitrate 640 kbps
• Sprache Deutsch
• Audio Channel Layout 5.1(side)
• Sampling Rate 48000 Hz
• Display Title Deutsch (EAC3 5.1)
• Codec EAC3
• Kanäle 6
• Bitrate 640 kbps
• Sprache English
• Audio Channel Layout 5.1(side)
• Sampling Rate 48000 Hz
• Display Title English (EAC3 5.1)
• Erzwungen true
• Codec SRT
• Sprache Deutsch
• Titel German Forced
• Display Title Deutsch Erzwungen (SRT)
• Codec SRT
• Sprache Deutsch
• Titel Deutsch
• Display Title Deutsch (SRT)
• Codec SRT
• Sprache English
• Titel Englisch (CC)
• Display Title English (SRT)

No other significant processes besides FreeNAS and Plex Media Server running. Memory usage at all times below 10 GB.

  • Test 1CPU between 15 and 125%. Smooth playback.
    Subtitles: On
    Automatic Quality: On.
    Home Network: 12 Mbit 1080p.
    Experimental Player: Off.

  • Test 2CPU continuously 125% CPU. However no playback at all.
    Subtitles: On
    Automatic Quality: Off.
    Home Network: Maximum.
    Experimental Player: Off.

  • Test 3CPU continuously 125%. Smooth playback, slow scrubbing.
    as Test 2 but
    Subtitles: Off

  • Test 4CPU below 5%. Stuttering playback, faster scrubbing.
    as Test 2 but
    Subtitles: Off
    Experimental Player: On

  • Test 5CPU below 5%. Occasional stuttering.
    as Test 2 but
    Subtitles: On
    Experimental Player: On

It should be noticed that compared to the ATV4 there is no noticeable stuttering when playing back in a web browser on a 2015 13" MacBook Pro Retina i5-2.6 GHz.

So, what to do? Faster FreeNAS CPU? Switch from my existing ATV4 with dual-core A8 to an ATV 4K with triple-core A10?

I want smooth playback at all times and preferably quicker playback resume after scrubbing.

Since this is your FreeNAS box, I would suggest you give careful thought before moving away from ECC memory with it. While the chance of getting bitten by memory errors is statistically remote these days, the nature of large NAS could mean that any errors, should they occur, might go unnoticed until the worst possible time. I won’t belabor the point, but you might want to review the FreeNAS documentation and guides on the topic of RAM selection before making a move.

As for RAM speed and timings, I would simply look for the fastest RAM that your chipset and CPU can support natively (as in without overclocking); anything more is almost certainly a waste in this instance. (In other words, DDR3 1600 is fine; timings really shouldn’t matter much beyond that.)

That said, I’m pretty puzzled here. As it happens, I have a very similar setup. I run PMS on a FreeNAS box, built with an ASRock server board from the same family as yours. I have an Apple TV (though the 4k version, connected wirelessly), and I use the MKV format for my libraries. I do have more RAM, and I have my WD Red drives attached to dedicated SAS controller cards (rather than the built-in SATA controllers), but I doubt that is the key difference here, unless there are additional (simultaneous) disk access loads being placed on your FreeNAS box. I do have a Xeon E3 CPU, but given the loads I usually see, it’s also hard for me to imagine that your Core i3 alone is making that much difference for a single stream. (For reference, my CPU loads are almost completely unaffected by Plex unless it is transcoding and, even then, the loads remain relatively light unless I’m transcoding multiple streams.)

The description of your Ethernet cable is a bit curious, though. Is the cable actually (at least) Category 5 that was simply installed as “phone cable” (that is pretty common here in the US with newer construction) or is it some other grade of cable (perhaps Category 3)? IF it is a lower grade of cable (which means the conductor diameter and rate of twist in the pairs are both lower), it is conceivable that you could achieve a network link (which is really all that is required to claim the “100Mbit” status), but not achieve stable, error-free transmission of data. This could result in the network having to sporadically re-send packets that get corrupted, which might result in unstable streaming performance and, maybe, additional workload for the server (as it re-sends packets regularly). Granted, this is a little bit theoretical, but it may be worth experimenting with a wireless connection or (if possible) a direct wired connection with a known-good Ethernet cable.

Beyond that, the only additional guess I can make is that it is something about the way your videos are encoded. What codecs are you using for the video and audio within the MKV container?

EDIT: By the way, assuming the material is encoded with compatible codecs within the MKV, the Apple TV should have no problem Direct Playing them. That has been my experience MKVs containing HEVC-encoded video up to 1080p, and with audio ranging from AC3 stereo to DTS-HD 7.1.

Test only with Direct Play or Direct Stream, no subs, using whatever format the AppleTV4 Plex forum people say it supports. Your current setup is overpowered for Direct Play or Direct Stream. Neither involves transcoding. The latter only repackages the audio and video.

The article you linked does not mention the capabilities of the AppleTV4. Determine those from the AppleTV tagged posts here or the Plex articles.

In general, RAM timings cause far more problems than errors ever do.

Mass storage access times have been the chief cause of computer delays since time began. Add an SSD into your NAS, and get the OS+Plex+its data on there. It will be 40x faster for most things.

Your LAN speed test was excellent. You’re near the theoretical max speed of Full Duplex.

Plex settings are in flux. They are changing core code. I’ve had the most success recently when enabling experimental settings. It tends to make good choices, and I get Direct Play to my iMac.

I think taking a step back for a moment and making headway only on Apple4TV formats that allow Direct Play or Direct Stream is your best course to eliminate variables, allowing you to tune the software to a state you know runs without stutter.

Once you do that, progress to transcoding and upgrading hardware.

Consider transcoding in advance as Plex suggests. It’s very expensive to transcode in real time. You’d want an SSD for read cache, one for write cache, and another two in a RAID to hold your OS and Plex in the best case scenario. Because any audio transcode uses only software, a faster bus, newer mainboard is a good idea for that.

Good luck!

the server dashboard will tell you what is going on with your stream, whether it is direct play/stream/transcoding, how much cpu usage, and how much bandwidth is being used.

Plex Web > settings > status

Thanks for your support, I need to let that sink for a minute to fully understand it.

Because of the huge amount of media (something like 1,200 titles using 17 Terabytes), I simply can’t convert the files, even if automated (it would probably run weeks or months, if it goes beyond rebundling/repacking the containers, and re-coding/pre-transcoding the actual audio/video).

How can I force direct play? If I understood correctly, one just can’t…

You cannot force direct play.

Plex direct play’s by default.

Plex only converts when-

  • the client player is not compatible with the video and/or audio codec and/or subtitles type (pgs/srt/etc)
  • the client bandwidth/quality settings are configured that are below the original media format
  • the server upload bandwidth or remote streaming quality limits are exceeded

If something is being converted, it is because something is preventing it from being direct played.

Your job is to figure out what/why, and resolve that problem.

Different clients have different capabilities.

The web client is a crappy video player. It is not compatible with all the various codecs. So many of them must be converted.

Other clients have their own capabilities.

Just because your file may direct play outside of plex, does not mean it will direct play inside of plex.

My long post was just saying that an SSD would make the system feel as instantaneous as your smart phone. It’s the first part of building a lag free anything.

Also to repeat a Direct Stream is as good as a Direct Play for testing. Neither takes a transcode. Neither would be at all CPU intensive, nor RAM hungry.

To answer your question about forcing Direct Play: you cause Direct Play to occur when your video’s specifications fall with those that the AppleTV4 is built to handle. There will be a FAQ or article about that player with regards to Plex, listing what it can handle.

Every single requirement about what it can handle must be met if you want to cause a Direct Play to occur.

If only the container is unacceptable to AppleTV4 yet every other spec is acceptable, then Plex will repackage and Direct Stream that video.

To determine the specs of my various files, inside Plex I click the Get Info menu item to see what format and audio details are within, e.g. 50fps or 25fps, 4:2:0 chroma, etc… Usually the most important specs are audio format and container. The other specs often match, making it easy to see just by filename those two spec.

I also use MediaInfo. It’s the stand alone app everyone uses.

My 6 HDDs (as I write each 5TB, from tomorrow on each 8TB) occupy all 3.5" slots in my Node 304 case and form together a ZFS pool. That SSD you suggest would be a single SSD as cache/buffer so to say? That gets configured as such where? In FreeNAS or Plex Media Server? Any hint where to find detailed, idiot-proof instructions on that?

I’ve also ordered an Apple TV 4K 64 GB today in order to see if it’s perhaps my previous generation Apple TV 4 (not 4K) 32 GB causing (some of) the problems.

That AppleTV 4K is a nice upgrade. When I first replied I didn’t know that your
4th gen had a few limitations, sorry. You can read the AppleTV specs here.
Let us know how the 5th gen works for you.

I was lucky enough to have a free slot I could put a spare SSD into.
It’s nice, not mandatory. I chose to use mine not as a read/write cache
but as storage, and I adjusted my NAS to favor that drive when storing
often used data.

Adding an SSD just to manually copying the videos to it and to watch it from there, is not exactly a sexy option. Is there such a thing as automated caching for Plex using that SSD? Often used files of course doesn’t apply here.

On the other hand I don’t see how an SSD could help … I mean where does Plex transcode to? It reads the original from the HDD RAID and then transcodes it to … the RAM and playing it back from there? Or back onto the HDD RAID from where it then gets read into the RAM again when needed? Can I check if my RAID too slow for the latter. Because if it is, an SSD cache would make sense. Otherwise probably not.

My QNAP NAS has a feature called QTier.

You’re running a whole operating system. If you don’t think running it off an SSD helps, I’m not sure I can explain it :slightly_smiling_face:

With Operating System you mean the FreeBSD underlaying the FreeNAS or the Plex Media Server (PMS) as such?

My FreeBSD/FreeNAS boots from a SanDisk USB Memory Stick, while the PMS runs in a jail on my 6x8 TB HDD ZFS Pool. My idea now would be to replace the USB Memory Stick with a cheap 120 or 250 GB SSD (with another one as mirrored backup) as not only boot volume, but Plex Temporary Transcoding Directory (saw that one can specify such in PMS’ Transcoding settings) or move PMS entirely to the SSD (while the MKV files remain on the HDD ZFS pool).

Makes sense?

Quick update: Upgrading to the Apple TV 4K (5th gen, A10 CPU) has resolved my playback issues. It is much snappier than the Apple TV 4 (4th gen, A8 CPU).

Still intend to move Plex Server app/index/transcoding cache to a separate SSD inside my FreeNAS in order to make it even snappier.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.