I'm testing Wowza 4 Transcoder performance on a sever with dual Intel Xeon E5-2670 (HT is on) and 48GB RAM. When transcoding 4 channels with my settings I'm getting about 40% CPU load, and it holds pretty steady, deviating in +/- 7% limits with relatively rare peaks. When I'm doubling the channels count, CPU load is predictably doubles too, but now it is constantly jumping from 60% to 100%. Of course, video stream is changing its complexity during playback, so different load on decode and encode, I assume. But is there any way (maybe with some caching, delaying) to level that load to be more smooth, leaving a (more) constant fraction of CPU resources for other tasks?
I've tried to switch Hyper-Threading on CPU and multi-threaded scaling in applications settings. The lesser CPU threads are available, the more threads Wowza is generating, the bigger performance deviations I get. Probably too many threads are blocking each other, resulting in constant 100% load when it must not to be that high. Threads count in Wowza's performance tuning settings are all at "Set automatically (recommended)".
Any suggestions if it can run more smoothly, anyone?
Updated: Some additional statistics.
Transcoding 2 channels: 20% load, +/- 3% deviations, almost no peaks.
Transcoding 4 channels: 40% load, +/- 5% deviations, peaks are happening once per each 10 (about) seconds.
Transcoding 8 channels: 80-90% load, +/- 10% deviations, peaks are constant, and along with high peaks there are low peaks also (down to 60%) so I assume some frame dropping happens.
Maybe an important note: due to test license limitations I'm transcoding the same single channels in several independent applications. So if channel's stream complexity matters, can it have a multiplicative effect?