我可以克服 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

我认为这是由于 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 脚本一一执行删除。

相关内容