如何限制linux中核心转储的写入速度,这会使负载急剧增加。

时间:2013-02-27 08:58:24

标签: linux core

我们在进程崩溃然后核心转储时遇到问题。由于该进程占用大量内存 - 大约20GB,核心转储需要将20GB核心数据写入磁盘,然后磁盘使用率变得非常高,负载急剧增加。

如何限制核心转储的写入速度?进程崩溃使服务器挂起,实在太糟糕了。

1 个答案:

答案 0 :(得分:3)

我相信没有简单的方法。

但是,在Linux上,您可以使用/proc/sys/kernel/core_pattern文件(请参阅core(5)proc(5)手册页),甚至可以 - core_pattern|开头管道符号core - 将核心写入程序(或脚本),然后可以减慢写入速度。

或者,您可以拥有一些用户空间文件系统(例如,通过FUSE)。

ulimit文件可能是其他地方的符号链接(例如,FUSE文件系统会减慢写入速度,或者只是某些SSD磁盘上的快速文件系统)。

当然,你也可以避免转储核心(通过setrlimit(2)或shell的gdb --args内置,或通过{{1}}启动程序....)

我想如果你ionice(1)恰当地命令,那么所有磁盘I / O都可以合理地减慢速度。

PS。我从未测试过任何这些想法,所以我可能错了。