Ubuntuでswapファイルを追加してメモリ不足を回避した話

ubuntu コンピュータ
ubuntu

UbuntuでAnimeEffectsというソフトを使っていて、こちらのソフトは静止画から動画を作成するソフトなのですが、動画の書き出しで失敗しアプリケーションが強制終了することがありました。再現性があるので原因を調べてみることにしました。
AnimeEffectsの動画の書き出し機能はffmpegを使っているので、仕様上作成できない動画ファイルを作成していると疑いました。

AnimeEffectsはWindowsPCにもインストールしているので、同じ動画の書き出しを行ってみたところ動画ファイルが作成されました。作成された動画ファイルを再生したところ再生にも問題なく、また別の動画作成ソフトの素材として使うことも出来るので、問題の無い動画ファイルが出来上がっていることに成ります。

UbuntuとWindowsの違いはありますが、同じソフトで同じ設定で動画の書き出しを行い、片方は成功、片方が失敗していますので、アプリケーション側の問題では無さそうな感じがします。

その際思いついたのがメモリの容量です。WindowPCのメモリは64GBでUbuntuがインストールされたPCのメモリが16GBで、不具合が起きるUbuntuPCのメモリが少ないということです。ただ、自分の感覚からすると16GBでメモリ不足が起きるとは考えにくいのですが、確認のためタスクモニター?でメモリの使用量を眺めてみることにしました。(ログを読めるのであれば、原因を調べることが出来るのかもしれませんが、あいにくそのスキルが無いのでしかたがありません。)

動画の書き出しをしたところ、ぐんぐんメモリ使用率が上がり上限まで張り付くと、swapファイルの使用量が上昇し始めます。
そしてアプリケーションが強制終了されます。

メインメモリが不足していることは確実で、SWAPファイルの容量が不足していることが想定されます。メインメモリの増設はすぐには難しいのでSWAPファイルの容量を増やしてみます。

SWAP容量を増やした後、再び動画の書き出しを行ったところ今度は動画の書き出しに成功しました。

もしかするとメモリの使われ方が異常なのかもしれませんが、とりあえずSWAPファイルの追加でメモリ不足を回避することが出来ました。動画を書き出すたびにSWAPファイルのお世話になるのもパフォーマンス的によろしくないので、物的にメインメモリを増やすことを検討する必要があります。

ちなみに最近組んだPCでメモリはとりあえず16GBで足りなければ増設すれば良いと考えていましたが、その通りになってしまい自分の先見性無さに失望してしまいます。メモリスロット的には2スロット分空きがあるのでそこにメモリモジュールを挿すことで増設は出来ますが、4本挿しだと動作クロックが下がりそうな感じがします。せっかく動作クロックが高いDDR5メモリなのに残念な構成になりそうです。

Amazonで調べたところDDR5で64GB(32GBx2)のメモリは概ね3万円弱、OCメモリで+1万円ぐらい、32GB(16GBx2)のキットの価格もその半分ぐらいですので、容量当たりの単価はそれほど変わらない感じです。パフォーマンスを確保しながら容量アップを狙うか、パフォーマンスを若干犠牲にして安価に容量アップをはかるか、悩ましいところです。

コメント