2017-03-29 3 views
0

Je cours un Ubuntu 12.04 64 bits sur une machine avec 8 Go de RAM. J'ai écrit un programme C++ que j'ai compilé avec le drapeau -m64 (force 64-bit exécutable) dans gcc. J'ai vérifié que l'exécutable résultant est en effet 64 bits.Autoriser un processus à utiliser plus de 4 Go de RAM

Cependant, le processus plafonne à l'aide de 4 Go de RAM. Comment puis-je lui permettre d'utiliser plus?

Edit: sortie 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 

Edit 2: Lien vers la sortie de dstat -cdgms --vm

https://www.dropbox.com/s/927s5x6v4bhp4qs/dstat_log.xlsx?dl=0

+0

Recherchez 'ulimit' et' setrlimit'. –

+0

Comment mesurez-vous? –

+0

Tel que mesuré par System Monitor – andreifin

Répondre

0

mieux que je peux dire, en ajoutant la compilation -m64 flag (force 64 bits exécutable) a résolu mon problème initial (crash de l'application), et ce qui a suivi était une coïncidence que mon application nécessitait si peu de mémoire sur 4Go (limite pour un exécutable 32 bits) qu'elle apparaissait comme 4Go à plat Système Mo nitor. Merci à tous ceux qui ont contribué, il y a un certain nombre de choses dans les commentaires qui pourraient aider les gens à essayer de diagnostiquer des problèmes similaires.