我正在尝试使用命令删除大量文件(数百万个), 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
我认为这是由于 OOM 杀手,如图/proc/sys/vm/overcommit_memory
所示过度使用设置为 0。我想知道如何避免这个问题?我无法手动删除这些文件。
答案1
该进程不会过度使用内存,它消耗的实际内存几乎为 3 GB (anon-rss),这使得 OOM 合法。
尝试使用正则表达式删除命令,如果它的'显示相同的行为,它的'可能是因为这里的文件数量https://superuser.com/questions/1174259/high-memory-usage-of-the-find-command建议列出所有要删除的文件并通过 Shell/Perl 脚本一一执行删除。