我们在进程崩溃然后核心转储时遇到问题。由于该进程占用大量内存 - 大约20GB,核心转储需要将20GB核心数据写入磁盘,然后磁盘使用率变得非常高,负载急剧增加。
如何限制核心转储的写入速度?进程崩溃使服务器挂起,实在太糟糕了。
答案 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。我从未测试过任何这些想法,所以我可能错了。