2013-08-21 79 views
0

我在一個多線程程序中有一個巨大的虛擬機地址空間。通常它運行在〜5TB的虛擬內存中,並且只能觸及16GB的駐留集。我映射了HugePages,並允許它們從它們的部分中被丟棄。 當RedHat 6.3 + Kernel 3.0.29系統強制執行故障轉儲時,大部分駐留集都被轉儲,但核心文件停止在2TB。如何繞過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,並有足夠的空間。 未使用內存的虛擬機永遠不會被觸摸。

+0

帶有4KB塊大小的底層etx3文件系統在2TB最大文件大小下達到頂峯。切換到XFS文件系統會提供更大的最大文件大小,並且核心轉儲可以達到〜16TB。但是,轉儲需要30分鐘。切換到ext4,本地最大文件大小是16TB。轉儲在<4分鐘內完成。你只需要記住更新fstab。 mkfs.ext4 -LEXPORT0 -Tlargefile/dev/sda10 – user2705306

回答

0

ulimit -c是驗證和更改創建的核心文件的最大允許大小的命令;它記錄在bash手冊頁中。使用類似

ulimit -c 16000000 

作爲root,你可以運行

ulimit -c unlimited 
1

具有4KB塊大小的基本etx3文件系統在2TB的最大文件大小冠上。切換到XFS文件系統會提供更大的最大文件大小,並且核心轉儲可以達到〜16TB。但是,轉儲需要30分鐘。切換到ext4,本地最大文件大小是16TB。轉儲在< 4分鐘內完成。你只需要記住更新fstab。 mkfs.ext4 -LEXPORT0 -Tlargefile/dev/sda10。對文件系統使用大文件提示需要比文件更多的空間。