This question comes to my mind after finished reviewing HP EX470. While more RAM the system has, more memory cache effect it returns—that’s good and gives such a obvious result absolutely. CPU for NAS could give better performance and CPU cache effect, but is CPU in EX470 the bottleneck really?

I could imagine that we could achieve higher throughput by replacing better CPU. The need of very fast file transfer, especially comparing to already fast one, is just minimal. Thus, this point is negligible. Another point of being media server like this is streaming to multiple clients. I conducted 6 test scenarios:-

  • A – Streaming video file to 1-client
  • B – Streaming video files to 2-client
  • C – Streaming video files to 3-client
  • D – Streaming video files to 5-client
  • E – Streaming video files to 5-client + transferring files [66*350MB] from 1 host to server
  • F – Streaming video files to 5-client + transferring files [66*350MB & 2*10GB] from 2-host to server

Note: each scenario, every tasks are running simultaneously; all video files are encoding by xvid 640px*352px, 25 frame/sec.

Well, streaming video should be the most bandwidth consumed task for multimedia. Otherwise, directly file transfer is the most heaviest task for NAS. The tests shall begin..

CPU usage on each scenario

Page File Usage on each scenario

As you see, CPU usage patterns were almost the same in first 4 scenarios which basically did the same thing, but more sessions involved. Page file usage also didn’t help indicated anything :-( Memory, however, had been invoked a lot more when many sessions occurred as shown below. That’s such a good sign showing that RAM we added earlier helped not to use virtual memory.

Performance Monitor -- Scenario A
Performance Monitor -- Scenario A
Performance Monitor -- Scenario C
Performance Monitor -- Scenario C
Performance Monitor -- Scenario F
Performance Monitor -- Scenario F

Last 2 scenarios, there are writing processes involved. CPU and disk needed to work harder. Transfer rate in scenario F was about 20-30MB/s whole the process—I’m not sure how many exactly since I was not quite interested at the time. With this level of performance, I think it’s acceptable; remember, there are two copying task from 2-host to the server, not just this one shown in screenshot below.

Network Throughput in scenario F
Network Throughput in scenario F

Back to our topic, CPU usage was around 40-50% on average all the test. If it were around 80%, I wouldn’t hesitate to get faster processor, but so far CPU limit problem is still not convincing enough. We’ll see if Intel Celeron E1200, dual-core, helps Shuttle K45 do better job than this. Then it will be clear whether CPU is the bottleneck or not.

update : Tom's Hardware did the benchmark on different CPUs in EX47x, it showed that upgrading CPU didn't give any significant performance as same as our assumption.

CPU Reference:

cpu-list

** This is the best possible CPU for replacement w/o any modification. 1MB L2-cache, faster processor frequency, and a bit greener & cooler. I just don’t know if it’s worth spending $30 for extra 2-3MB/s throughput.
Original CPU: AMD Sempron 3400+, 256kB L2-cache, 1800MHz, 90nm, TDP 62W