"致命的なエラー:十分なメモリを割り当てることができません。"しかし、未使用のスワップ領域がたくさんあります。

"致命的なエラー:十分なメモリを割り当てることができません。"しかし、未使用のスワップ領域がたくさんあります。

走ろうとしています。カニ(具体的には、「Pairwise Global Alignment」サブセクションを呼び出します。仮想検索)128 GB RAMワークステーション、OS = Ubuntu 23.04、Kernel = 6.2.0-39generic。

参照として使用されるシーケンスの最大長を減らしながら分析を実行するのに問題はありませんが、参照データベース全体を使用したいと思います。

完全なデータセットでスクリプトを起動すると、次のメッセージで分析が約30%失敗します。

Fatal error: Unable to allocate enough memory

ただし、このシステムには以下が含まれます。

  • 128GBメモリ

  • 776GBスワップスペース

スワップ領域は、1つのパーティションと2つのスワップファイル(すべてNVME SSDにあります)で構成されています。

NAME           TYPE      SIZE   USED PRIO
/swap.img      file        8G 339,4M   -2
/dev/nvme0n1p3 partition 256G     1G   -3
/home/swapfile file      512G     0B   -4

Swappiness は 60 に設定されます。

cat /proc/sys/vm/swappiness
60

そして、必要に応じてシステムが正しく交換されます。

分析が約30%進み、RAMが約100%、スワップが約300GBが割り当てられると、上記のエラーで分析が停止します。ただし、システムにはまだ400 GB以上の利用可能なスワップスペースが必要です。

障害が発生した時点で、CommitLimit(使用可能なメモリ量全体と同じ)とCommied_ASを確認してみましたが、最後は300GB程度でした(図参照)。トップ、また)。

私も以下を設定しました。

echo 100 > /proc/sys/vm/overcommit_ratio

また、以下を試しました。

systemctl disable --now systemd-oomd
systemctl mask system-oomd

利用可能なスワップサイズを制限できる他のシステムパラメータ/オプションがあるかどうかを知っていますか?

助けてくれてありがとう。

関連情報