2 つの大きなサイズのフォルダー (~7GB) を使用してパッチを作成しようとしています。
これが私がやっている方法です:
$ diff -Naurbw . ../other-folder > file.patch
しかし、おそらくファイル サイズが原因で、パッチが作成されず、エラーが発生します。
diff: memory exhausted
スペースを 15 GB 以上にしようとしましたが、それでも問題は解決しません。誰かが私が使用すべきフラグを手伝ってくれませんか?
2 つの大きなサイズのフォルダー (~7GB) を使用してパッチを作成しようとしています。
これが私がやっている方法です:
$ diff -Naurbw . ../other-folder > file.patch
しかし、おそらくファイル サイズが原因で、パッチが作成されず、エラーが発生します。
diff: memory exhausted
スペースを 15 GB 以上にしようとしましたが、それでも問題は解決しません。誰かが私が使用すべきフラグを手伝ってくれませんか?
最近、2 つの大きなファイル (それぞれ 5Gb 以上) を比較する必要があったときに、これにも遭遇しました。
さまざまなオプションで「diff」を使用しようとしました--speed-large-files
が、効果がありませんでした。ファイルを小さなものに分割する、この提案xdelta
に従ってファイルを使用またはソートするなどの他の方法も役に立ちませんでした。非常に強力な VM (> 72Gb RAM) を手に入れましたが、それでもこのエラーが発生しました。memory exhausted
sysctl.conf
( sudo vim /etc/sysctl.conf
)に次のパラメーターを追加して、最終的に作業を開始しました。
vm.overcommit_memory=1
vm.overcommit_memory
3 つの値 (0、1、2) があり、カーネル仮想メモリのアカウンティング モードを設定します。proc(5) の man ページから:
0: ヒューリスティック オーバーコミット (これがデフォルト)
1: 常にオーバーコミットし、チェックしない
2: 常にチェックし、オーバーコミットしない
パラメータが実際に適用されていることを確認するには、実行できます
sudo sysctl -p
終了したら、このパラメーターを元に戻すことを忘れないでください。