簡體   English   中英

允許進程使用超過4GB的RAM

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM