Linuxでメモリ過剰割り当ての問題を克服できますか?

Linuxでメモリ過剰割り当ての問題を克服できますか?

コマンドを使用して多数のファイル(数百万個)を削除しようとしますが、端末に find . -name "file*" -delete オンラインKilledで検索した結果、dmesgが表示されます。

Out of memory: Kill process 25284 (find) score 691 or sacrifice child
Killed process 25284, UID 0, (find) total-vm:11666436kB, anon-rss:3229204kB, file-rss:620kB

/proc/sys/vm/overcommit_memory図に示すように、Overuseが0に設定されているのを見ると、これはOOMキラーによるものです。この問題を回避する方法を知りたいです。このファイルを手動で削除することはできません。

答え1

プロセスはメモリを過度に使用せず、実際に消費するメモリはほぼ3GB(anon-rss)なので、OOMは正当です。

正規表現の削除コマンドを試してください。同じ振る舞いが表示される場合は、おそらくここにあるファイルの数が原因です。https://superuser.com/questions/1174259/high-memory-usage-of-the-find-command削除するすべてのファイルを一覧表示し、Shell / Perlスクリプトを介して1つずつ削除を実行することをお勧めします。

関連情報