In kvm, a single process cannot allocate more than 3.6GB ram. Why?
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
What should i do to allow process allocate more than 3.6GB memory? Is it possible at all?
I have hostserver:
linux kernel: 2.6.30.9 (arch amd64)
RAM: 64GB
CPUs: 2xQuadCore AMD Opteron 2378
Then I have several kvm guests on it, like:
linux kernel: 2.6.30.4 (arch amd64)
RAM: 6GB
CPUs: 2xQEMU Virtual CPU version 0.9.1 (vendor: AuthenticAMD) cpu flags: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx lm pni hypervisor
VM use virtio for net and block drivers.
Tanel
Am Fri, 11 Dec 2009 11:03:27 +0200 schrieb Tanel Kokk:
Quoted 6 lines
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
What should i do to allow process allocate more than 3.6GB memory? Is it possible at all?
just some thoughts:
* is qemu/kvm 64bit?
* check "ulimit -a" on console if a process is limited on memory usage (config file /etc/security/limits.conf)
- Thomas
Quoted 8 lines · Thomas Mueller
Am Fri, 11 Dec 2009 11:03:27 +0200 schrieb Tanel Kokk:
Quoted 3 lines
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
Quoted 7 lines
Quoted 3 lines
What should i do to allow process allocate more than 3.6GB memory? Is it possible at all?
just some thoughts:
* is qemu/kvm 64bit?
# file /usr/bin/kvm /usr/bin/kvm: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
Quoted 2 lines
* check "ulimit -a" on console if a process is limited on memory usage (config file
/etc/security/limits.conf)
# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 53248 max locked memory (kbytes, -l) unlimited max memory size (kbytes, -m) unlimited open files (-n) 99999 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) unlimited real-time priority (-r) 0 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 4096 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Tanel
Quoted 6 lines · Tanel Kokk
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
What should i do to allow process allocate more than 3.6GB memory? Is it possible at all?
A guest or host process? And what happens when you try?
Please describe what you are doing step by step with more details.
Signature · 2 lines
I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.
Quoted 9 lines · Avi Kivity
Quoted 6 lines · Tanel Kokk
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
What should i do to allow process allocate more than 3.6GB memory? Is it possible at all?
A guest or host process? And what happens when you try?
guest process
We discovered that if postgres process (on guest) used to use only 3.6GB memory regardless of guest had 8GB memory in common.
Then I made simple python script, which just eat memory:
------------------------------------
#!/usr/bin/python
import time, random
i = 0
while (i < 100000000):
a[i] = random.random()
i = i + 1time.sleep(600)
------------------------------------
And I get python MemoryError, when script has devoured about 3.6GB ram
Tanel
Quoted 11 lines · Tanel Kokk
Quoted 9 lines · Avi Kivity
Quoted 7 lines · Tanel Kokk
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
What should i do to allow process allocate more than 3.6GB memory? Is it possible at all?
Quoted 8 lines
Quoted 2 lines
A guest or host process? And what happens when you try?
guest process
We discovered that if postgres process (on guest) used to use only 3.6GB memory regardless of guest had 8GB memory in common.
That's probably a postgres configuration error (or you're using 32-bit postgres).
Quoted 5 lines
Then I made simple python script, which just eat memory:
------------------------------------
#!/usr/bin/python
import time, random
Quoted 9 lines
i = 0
while (i< 100000000):a[i] = random.random() i = i + 1
time.sleep(600)
------------------------------------
And I get python MemoryError, when script has devoured about 3.6GB ram
Doesn't mean much - Python may allocate a lot more memory when extending the array.
What does 'cat /proc/meminfo' in the guest say?
Signature · 2 lines
I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.
Quoted 17 lines · Avi Kivity
Quoted 16 lines · Tanel Kokk
Quoted 5 lines · Avi Kivity
Quoted 3 lines · Tanel Kokk
Does anybody have a glue why process are not able to allocate more than 3.6GB memory ?
Quoted 7 lines
Quoted 5 lines
What should i do to allow process allocate more than 3.6GB memory? Is it
possible at all?A guest or host process? And what happens when you try?
guest process
Quoted 8 lines
Quoted 4 lines
We discovered that if postgres process (on guest) used to use only 3.6GB memory regardless of guest had 8GB memory in common.
That's probably a postgres configuration error (or you're using 32-bit postgres).
postgres is 64bit:
root@lu2-kvm-db1 ~]# file /usr/lib/postgresql/8.3/bin/postgres /usr/lib/postgresql/8.3/bin/postgres: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
Quoted 18 lines
Quoted 7 lines
Then I made simple python script, which just eat memory:
------------------------------------
#!/usr/bin/python
import time, randomQuoted 9 lines
i = 0
while (i< 100000000):a[i] = random.random() i = i + 1
time.sleep(600)
------------------------------------
And I get python MemoryError, when script has devoured about 3.6GB ram
Quoted 5 lines
Doesn't mean much - Python may allocate a lot more memory when extending the array.
What does 'cat
/proc/meminfo' in the guest say?
[root@lu2-kvm-db1 ~]# cat /proc/meminfo
MemTotal: 10267308 kB MemFree: 228944 kB Buffers: 19680 kB Cached: 6069524 kB SwapCached: 0 kB Active: 8175200 kB Inactive: 1374884 kB Active(anon): 3238044 kB Inactive(anon): 544104 kB Active(file): 4937156 kB Inactive(file): 830780 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 15968 kB Writeback: 0 kB AnonPages: 3461108 kB Mapped: 327816 kB Slab: 171452 kB SReclaimable: 121756 kB SUnreclaim: 49696 kB PageTables: 244268 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 8727208 kB Committed_AS: 6056168 kB VmallocTotal: 34359738367 kB VmallocUsed: 38180 kB VmallocChunk: 34359645255 kB DirectMap4k: 4032 kB DirectMap2M: 10481664 kB
Tanel
Quoted 27 lines · Tanel Kokk
[root@lu2-kvm-db1 ~]# cat
/proc/meminfoMemTotal: 10267308 kB MemFree: 228944 kB Buffers: 19680 kB Cached: 6069524 kB SwapCached: 0 kB Active: 8175200 kB Inactive: 1374884 kB Active(anon): 3238044 kB Inactive(anon): 544104 kB Active(file): 4937156 kB Inactive(file): 830780 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 15968 kB Writeback: 0 kB AnonPages: 3461108 kB Mapped: 327816 kB Slab: 171452 kB SReclaimable: 121756 kB SUnreclaim: 49696 kB PageTables: 244268 kB NFS_Unstable: 0 kB Bounce: 0 kB
Quoted 9 lines
WritebackTmp: 0 kB CommitLimit: 8727208 kB Committed_AS: 6056168 kB VmallocTotal: 34359738367 kB VmallocUsed: 38180 kB VmallocChunk: 34359645255 kB DirectMap4k: 4032 kB DirectMap2M: 10481664 kB
What guest kernel is this? What's the value of the guest's /proc/sys/vm/overcommit_memory?
Signature · 1 line
error compiling committee.c: too many arguments to function
Quoted 38 lines · Avi Kivity
Quoted 27 lines · Tanel Kokk
[root@lu2-kvm-db1 ~]# cat
/proc/meminfoMemTotal: 10267308 kB MemFree: 228944 kB Buffers: 19680 kB Cached: 6069524 kB SwapCached: 0 kB Active: 8175200 kB Inactive: 1374884 kB Active(anon): 3238044 kB Inactive(anon): 544104 kB Active(file): 4937156 kB Inactive(file): 830780 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 15968 kB Writeback: 0 kB AnonPages: 3461108 kB Mapped: 327816 kB Slab: 171452 kB SReclaimable: 121756 kB SUnreclaim: 49696 kB PageTables: 244268 kB NFS_Unstable: 0 kB Bounce: 0 kBQuoted 9 lines
WritebackTmp: 0 kB CommitLimit: 8727208 kB Committed_AS: 6056168 kB VmallocTotal: 34359738367 kB VmallocUsed: 38180 kB VmallocChunk: 34359645255 kB DirectMap4k: 4032 kB DirectMap2M: 10481664 kB
Quoted 3 lines
What guest kernel is this? What's the value of the guest's
/proc/sys/vm/overcommit_memory?
[root@lu2-kvm-db1 ~]# uname -a
Linux lu2-kvm-db1 2.6.30.7 #1 SMP Mon Sep 21 17:39:41 UTC 2009 x86_64 GNU/Linux
[root@lu2-kvm-db1 ~]# cat /proc/sys/vm/overcommit_memory 2
Tanel
Quoted 5 lines · Tanel Kokk
Quoted 5 lines
What guest kernel is this? What's the value of the guest's
/proc/sys/vm/overcommit_memory?
Quoted 9 lines
[root@lu2-kvm-db1 ~]# uname -a
Linux lu2-kvm-db1 2.6.30.7 #1 SMP Mon Sep 21 17:39:41 UTC 2009x86_64GNU/Linux[root@lu2-kvm-db1 ~]# cat
/proc/sys/vm/overcommit_memory2
Ah. Set it to zero or add some swap.
Signature · 1 line
error compiling committee.c: too many arguments to function