Ubuntu11.10を実行するDellPrecision 490ワークステーションがあり、2つのデュアルコアXeon 5160 CPU(つまり、2つの物理CPU、それぞれ2つのコア)があり、ffmpegとx264を使用してTV録画(MPEG2)をH264にエンコードするために使用しています。 ffmpegは約180fpsでエンコードしており、すべてが正常に機能しますが、CPU使用率は少し低く、コアあたり約30%で、100%に近いと予想されます。なぜこれなのか誰か知っていますか?
これらは私がffmpegに与えている入力です
time ffmpeg -i ch31.m2t -s 640x360 -acodec libfaac -ac 1 -ar 44100 -b:a 56k -vcodec libx264 -preset superfast -b:v 744k ch31_superfast_800.mp4
name -aの出力
Linux Dell 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:28:43 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
grep -i core/proc/cpuinfoの出力
core id : 0
cpu cores : 2
core id : 0
cpu cores : 2
core id : 1
cpu cores : 2
core id : 1
cpu cores : 2
mpstat -P ALLの出力
Linux 3.0.0-14-generic (Dell) 18/12/11 _x86_64_ (4 CPU)
15:46:52 CPU %usr %Nice %sys %iowait %irq %soft %steal %guest %idle
15:46:52 all 16.37 10.29 1.20 3.46 0.00 0.13 0.00 0.00 68.54
15:46:52 0 21.43 10.91 1.74 1.06 0.00 0.39 0.00 0.00 64.47
15:46:52 1 15.64 9.95 1.08 5.29 0.00 0.07 0.00 0.00 67.97
15:46:52 2 14.65 10.29 1.03 5.88 0.00 0.03 0.00 0.00 68.11
15:46:52 3 13.79 10.03 0.97 1.59 0.00 0.02 0.00 0.00 73.60
Ffmpegの実行中のトップの出力
top - 15:35:59 up 1:11, 3 users, load average: 0.00, 0.15, 0.29
Tasks: 162 total, 2 running, 159 sleeping, 0 stopped, 1 zombie
Cpu0 : 29.9%us, 1.7%sy, 31.6%ni, 36.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 30.4%us, 1.3%sy, 25.8%ni, 42.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 38.7%us, 2.0%sy, 22.7%ni, 36.0%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 27.2%us, 1.0%sy, 27.9%ni, 43.5%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4056484k total, 3939144k used, 117340k free, 16532k buffers
Swap: 4190204k total, 9348k used, 4180856k free, 3024616k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3559 decrypti 20 0 321m 91m 4708 R 240 2.3 45:52.11 ffmpeg
ほとんどのコードと同様に、このコードは複数のコアをうまく利用できていません。負荷をかけているコアを非常に迅速に(1秒間に約100回)切り替えることができますが、一度に1つのコアしか十分に活用できません。