このサーバーで1つのことだけを行います-ffmpeg
によるビデオのエンコード。そして、時々それはうまくいきます、時々それは本当に遅いです。
テストのためだけに同じコマンドを実行します。
$ Sudo time ffmpeg -i test.mp4 -c:a copy -vf 'drawbox= : x=0 : y=0 : color=invert : t=2' output1.mp4
ffmpeg version n2.2.15 Copyright (c) 2000-2015 the FFmpeg developers
built on Apr 30 2015 13:20:09 with gcc 4.8.2 (GCC) 20140120 (Red Hat 4.8.2-16)
......
16.24user 0.04system 0:16.30elapsed 99%CPU (0avgtext+0avgdata 60972maxresident)k
0inputs+6088outputs (0major+15811minor)pagefaults 0swaps
5時間後、再び動作が遅くなったので、もう一度実行しました。
$ Sudo time ffmpeg -i test.mp4 -c:a copy -vf 'drawbox= : x=0 : y=0 : color=invert : t=2' output1.mp4
.......
163.41user 0.84system 2:46.90elapsed 98%CPU (0avgtext+0avgdata 60988maxresident)k
0inputs+6136outputs (0major+15814minor)pagefaults 0swaps
ご覧のとおり、最初の10倍の時間がかかりました。 (1)16.24user
(2)163.41user
どのように修正すればよいですか?
インスタンスタイプ(バースト可能なCPUインスタンス)によっては、CPUクレジットを処理している場合があります。
==> https://stackoverflow.com/questions/28984106/whats-is-cpu-credit-balance-in-ec2
バーストできないインスタンスで大きな変動が見つかった場合は、インスタンスを停止して再起動しないでください。これにより、インスタンスが別のハイパーバイザー(ホストボックス)で起動します。現在の共有ホストに問題がある可能性があります。新しいホストでvmを起動すると問題が解決します。
多数のEC2インスタンスを使用しています。また、同じジョブを完了するのにかかる時間、つまり同じビデオを何度も処理することには、大きなばらつきがあります。 2つの実行が非常に速く、分散が1%未満の場合があります。他の実行では、分散は5〜10倍です。これらの問題は、小規模なインスタンスでより多く発生することに気付きました。 M * .largeまたはC * .largeサイズのものがいくつかあり、これらのインスタンスにはこの問題はありません(同じくらい)