[英]Allowing a process to use more than 4GB RAM
我在具有8GB RAM的計算機上運行64位Ubuntu 12.04。 我編寫了一個C ++程序,該程序使用gcc
的-m64(強制執行64位可執行文件)標志進行gcc
。 我檢查了生成的可執行文件確實是64位。
但是,該過程限制為使用4GB RAM。 如何允許它使用更多?
編輯: ulimit -a
輸出
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62900
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 62900
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
編輯2:鏈接到dstat -cdgms --vm的輸出
https://www.dropbox.com/s/927s5x6v4bhp4qs/dstat_log.xlsx?dl=0
據我所知,添加-m64編譯標志(強制使用64位可執行文件)實際上解決了我的最初問題(應用崩潰),隨后發生的巧合是我的應用實際上只需要很少的4GB以上內存(限制為32 GB)位可執行文件),它在系統監視器中顯示為4GB。 感謝所有貢獻者,注釋中有許多內容可能會幫助嘗試診斷類似問題的人們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.