我在多线程程序中有一个巨大的VM地址空间。通常它运行在大约5TB的虚拟中,并且只能触及高达16GB的驻留集。我映射HugePages,并允许它们从他们的部分转储。 当RedHat 6.3 + Kernel 3.0.29系统强制进行崩溃转储时, 大部分驻留集都被转储,但核心文件停止在2TB。
-rw------- 1 root root 2.0T Aug 21 21:15 core-primes-6-1377119514.21645
在这种情况下,最高报告~4TB。
21726 root -91 0 4191g 7.1g 13m R 99.7 5.6 2:39.06 50 primes
gdb报告核心被截断了 BFD:警告:/export0/crash/core-primes-6-1377119514.21645被截断:预期的核心文件大小> = 4488958177280,找到:2133738614784。
是否有一些神奇的foo允许内核转储超过2TB的内容 处理?文件系统是ext3,并且有足够的空间。 永远不会触及未使用内存的VM。
答案 0 :(得分:1)
具有4KB块大小的基础etx3文件系统最大文件大小为2TB。切换到XFS文件系统会产生更大的最大文件大小,核心转储最多可达到〜16TB。但是转储需要30分钟。切换到ext4,本机最大文件大小为16TB。转储在<中完成。 4分钟。你只需记得更新fstab。 mkfs.ext4 -LEXPORT0 -Tlargefile / dev / sda10。使用大文件提示到文件系统需要比文件更多的空间。
答案 1 :(得分:0)
ulimit -c
是用于验证和更改所创建的核心文件的最大允许大小的命令;它记录在bash手册页中。使用像
ulimit -c 16000000
作为root用户,您可以运行
ulimit -c unlimited