Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #20389 > unrolled thread
| Started by | mcheung63@gmail.com |
|---|---|
| First post | 2012-12-16 19:05 -0800 |
| Last post | 2012-12-19 20:40 +0100 |
| Articles | 18 — 9 participants |
Back to article view | Back to comp.lang.java.programmer
32G ram mcheung63@gmail.com - 2012-12-16 19:05 -0800
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-16 22:09 -0500
Re: 32G ram Donkey Hottie <donkey@fredriksson.dy.fi> - 2012-12-17 10:39 +0200
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 17:37 -0500
Re: 32G ram Lew <lewbloch@gmail.com> - 2012-12-17 15:38 -0800
Re: 32G ram Nigel Wade <nmw@ion.le.ac.uk> - 2012-12-18 09:19 +0000
Re: 32G ram BGB <cr88192@hotmail.com> - 2012-12-18 14:57 -0600
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-18 20:22 -0500
Re: 32G ram Nigel Wade <nmw@ion.le.ac.uk> - 2012-12-19 11:28 +0000
Re: 32G ram BGB <cr88192@hotmail.com> - 2012-12-19 07:19 -0600
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-19 09:17 -0500
Re: 32G ram Tim Slattery <Slattery_T@bls.gov> - 2012-12-19 12:51 -0500
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-19 13:20 -0500
Re: 32G ram BGB <cr88192@hotmail.com> - 2012-12-19 12:40 -0600
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-19 13:56 -0500
Re: 32G ram Roedy Green <see_website@mindprod.com.invalid> - 2012-12-17 00:31 -0800
Re: 32G ram Arne Vajhøj <arne@vajhoej.dk> - 2012-12-17 20:37 -0500
Re: 32G ram Sven Köhler <remove-sven.koehler@gmail.com> - 2012-12-19 20:40 +0100
| From | mcheung63@gmail.com |
|---|---|
| Date | 2012-12-16 19:05 -0800 |
| Subject | 32G ram |
| Message-ID | <7f80256a-03d0-4ecd-b20f-164547e4f573@googlegroups.com> |
hi all
i got 32GB ram, why i can't -Xmx2G, it got an error "Could not create the Java Virtual Machine"
/root>free -m
total used free shared buffers cached
Mem: 32387 16973 15413 0 243 11906
-/+ buffers/cache: 4823 27563
Swap: 1906 0 1906
/root>uname -a
Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux
thanks
from Peter (cmk128@hotmail.com)
[toc] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-16 22:09 -0500 |
| Message-ID | <50ce8cd7$0$287$14726298@news.sunsite.dk> |
| In reply to | #20389 |
On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: > i got 32GB ram, why i can't -Xmx2G, it got an error "Could not create the Java Virtual Machine" > > /root>free -m > total used free shared buffers cached > Mem: 32387 16973 15413 0 243 11906 > -/+ buffers/cache: 4823 27563 > Swap: 1906 0 1906 > /root>uname -a > Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux 32 bit or 64 bit Java? Arne
[toc] | [prev] | [next] | [standalone]
| From | Donkey Hottie <donkey@fredriksson.dy.fi> |
|---|---|
| Date | 2012-12-17 10:39 +0200 |
| Message-ID | <sa23q9-rkb.ln1@tempest.fredriksson.dy.fi> |
| In reply to | #20390 |
17.12.2012 05:09, Arne Vajhøj kirjoitti: > On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >> create the Java Virtual Machine" >> >> /root>free -m >> total used free shared buffers >> cached >> Mem: 32387 16973 15413 0 243 11906 >> -/+ buffers/cache: 4823 27563 >> Swap: 1906 0 1906 >> /root>uname -a >> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux > > 32 bit or 64 bit Java? > > Arne > > Apparently 32 bit, as the i686 OS is 32 bit PAE too. -- You feel a whole lot more like you do now than you did when you used to.
[toc] | [prev] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-17 17:37 -0500 |
| Message-ID | <50cf9ebd$0$281$14726298@news.sunsite.dk> |
| In reply to | #20393 |
On 12/17/2012 3:39 AM, Donkey Hottie wrote: > 17.12.2012 05:09, Arne Vajhøj kirjoitti: >> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>> create the Java Virtual Machine" >>> >>> /root>free -m >>> total used free shared buffers >>> cached >>> Mem: 32387 16973 15413 0 243 11906 >>> -/+ buffers/cache: 4823 27563 >>> Swap: 1906 0 1906 >>> /root>uname -a >>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >> >> 32 bit or 64 bit Java? > > Apparently 32 bit, as the i686 OS is 32 bit PAE too. Then that explains it. 32 bit Java on x86 usually only allows for around 1.7 GB of heap space. Arne
[toc] | [prev] | [next] | [standalone]
| From | Lew <lewbloch@gmail.com> |
|---|---|
| Date | 2012-12-17 15:38 -0800 |
| Message-ID | <69b7ccde-6a63-452b-a14d-38e7eef0804d@googlegroups.com> |
| In reply to | #20400 |
Arne Vajhøj wrote: > Donkey Hottie wrote: >> Arne Vajhøj kirjoitti: >>> mcheung63 wrote: >>>> i [sic] got 32GB ram, why i [sic] can't -Xmx2G, it got an error "Could not >>>> create the Java Virtual Machine" Because you allocated all the available memory to the heap, and none to the JVM or class space, stack, ... . How much RAM you have is irrelevant; it's how much RAM you are allowed to allocate per process with a 32-bit Java. Assuming the other posters are correct and you're using a 32-bit system. Are you? That might have been good to tell us in the beginning. >>>> /root>free -m >>>> total used free shared buffers >>>> cached >>>> Mem: 32387 16973 15413 0 243 11906 >>>> -/+ buffers/cache: 4823 27563 >>>> Swap: 1906 0 1906 >>>> /root>uname -a >>>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >>> >>> 32 bit or 64 bit Java? > >> Apparently 32 bit, as the i686 OS is 32 bit PAE too. > > Then that explains it. > > 32 bit Java on x86 usually only allows for around 1.7 GB > of heap space. Bear in mind, OP, that "2 GB" is the maximum allocation for the *entire process*, not just the heap. If you allocate the whole amount for heap, that leaves nothing for stack or the interpreter. That's why it fails. So the 1.7 GB or so is all you can get and still leave room for Java itself. But why, pray tell, are you using a 32-bit system? -- Lew
[toc] | [prev] | [next] | [standalone]
| From | Nigel Wade <nmw@ion.le.ac.uk> |
|---|---|
| Date | 2012-12-18 09:19 +0000 |
| Message-ID | <ajaqpnFttk0U1@mid.individual.net> |
| In reply to | #20393 |
On 17/12/12 08:39, Donkey Hottie wrote: > 17.12.2012 05:09, Arne Vajhøj kirjoitti: >> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>> create the Java Virtual Machine" >>> >>> /root>free -m >>> total used free shared buffers >>> cached >>> Mem: 32387 16973 15413 0 243 11906 >>> -/+ buffers/cache: 4823 27563 >>> Swap: 1906 0 1906 >>> /root>uname -a >>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >> >> 32 bit or 64 bit Java? >> >> Arne >> >> > > Apparently 32 bit, as the i686 OS is 32 bit PAE too. > 32bit Java on 32bit Linux should allow an application of up to 4GB. How much can of that can be allocated to the heap depends on the particular application. I've allocated more than 2G to heap on a 32bit Linux system, see this old thread on Google Groups: https://groups.google.com/forum/?hl=en-GB&fromgroups=#!topic/comp.lang.java.programmer/iGr3bxL9ZCA There may be a per-process limit. Try "ulimit -a" to see what limits the sysadmin has set. -- Nigel Wade
[toc] | [prev] | [next] | [standalone]
| From | BGB <cr88192@hotmail.com> |
|---|---|
| Date | 2012-12-18 14:57 -0600 |
| Message-ID | <kaqlho$3c6$1@news.albasani.net> |
| In reply to | #20432 |
On 12/18/2012 3:19 AM, Nigel Wade wrote: > On 17/12/12 08:39, Donkey Hottie wrote: >> 17.12.2012 05:09, Arne Vajhøj kirjoitti: >>> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>>> create the Java Virtual Machine" >>>> >>>> /root>free -m >>>> total used free shared buffers >>>> cached >>>> Mem: 32387 16973 15413 0 243 >>>> 11906 >>>> -/+ buffers/cache: 4823 27563 >>>> Swap: 1906 0 1906 >>>> /root>uname -a >>>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >>> >>> 32 bit or 64 bit Java? >>> >>> Arne >>> >>> >> >> Apparently 32 bit, as the i686 OS is 32 bit PAE too. >> > > 32bit Java on 32bit Linux should allow an application of up to 4GB. How > much can of that can be allocated to the heap depends on the particular > application. I've allocated more than 2G to heap on a 32bit Linux > system, see this old thread on Google Groups: > https://groups.google.com/forum/?hl=en-GB&fromgroups=#!topic/comp.lang.java.programmer/iGr3bxL9ZCA > > > There may be a per-process limit. Try "ulimit -a" to see what limits the > sysadmin has set. > you only get a 4GB process limit if the kernel is built with a special option, which gives 4GB per process but at the cost of making switching to/from kernel-space (such as in a system call) slower. in a more typical setup, it is 3GB for application, 1GB for kernel. this sets an effective upper limit of 3GB which the application can use. 32-bit Windows currently has the same limit, although older versions only allowed around 2GB per application (the other 2GB was: 1GB shared memory, 1GB kernel).
[toc] | [prev] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-18 20:22 -0500 |
| Message-ID | <50d116bd$0$281$14726298@news.sunsite.dk> |
| In reply to | #20432 |
On 12/18/2012 4:19 AM, Nigel Wade wrote: > On 17/12/12 08:39, Donkey Hottie wrote: >> 17.12.2012 05:09, Arne Vajhøj kirjoitti: >>> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>>> create the Java Virtual Machine" >>>> >>>> /root>free -m >>>> total used free shared buffers >>>> cached >>>> Mem: 32387 16973 15413 0 243 >>>> 11906 >>>> -/+ buffers/cache: 4823 27563 >>>> Swap: 1906 0 1906 >>>> /root>uname -a >>>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >>> >>> 32 bit or 64 bit Java? >> >> Apparently 32 bit, as the i686 OS is 32 bit PAE too. > > 32bit Java on 32bit Linux should allow an application of up to 4GB. How > much can of that can be allocated to the heap depends on the particular > application. I've allocated more than 2G to heap on a 32bit Linux > system, see this old thread on Google Groups: > https://groups.google.com/forum/?hl=en-GB&fromgroups=#!topic/comp.lang.java.programmer/iGr3bxL9ZCA 32 bit Java can in theory use up to 3 GB on 32 bit OS on x86 if the border between process and system is changed (/3GB). But on Windows JRocket is supposedly the only Java that can do it. 32 bit Java can never use 4 GB on 32 bit OS on x86, because that does not leave any address space for the OS. 32 bit Java can use 4 GB on 64 bit OS on x86, because the OS are running in 64 bit addresses (or something like that), if various requirements are in place. I don't know what Java versions support that. Arne
[toc] | [prev] | [next] | [standalone]
| From | Nigel Wade <nmw@ion.le.ac.uk> |
|---|---|
| Date | 2012-12-19 11:28 +0000 |
| Message-ID | <ajdmnjFja9oU1@mid.individual.net> |
| In reply to | #20498 |
On 19/12/12 01:22, Arne Vajhøj wrote: > On 12/18/2012 4:19 AM, Nigel Wade wrote: >> On 17/12/12 08:39, Donkey Hottie wrote: >>> 17.12.2012 05:09, Arne Vajhøj kirjoitti: >>>> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>>>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>>>> create the Java Virtual Machine" >>>>> >>>>> /root>free -m >>>>> total used free shared buffers >>>>> cached >>>>> Mem: 32387 16973 15413 0 243 >>>>> 11906 >>>>> -/+ buffers/cache: 4823 27563 >>>>> Swap: 1906 0 1906 >>>>> /root>uname -a >>>>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>>>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >>>> >>>> 32 bit or 64 bit Java? >>> >>> Apparently 32 bit, as the i686 OS is 32 bit PAE too. >> >> 32bit Java on 32bit Linux should allow an application of up to 4GB. How >> much can of that can be allocated to the heap depends on the particular >> application. I've allocated more than 2G to heap on a 32bit Linux >> system, see this old thread on Google Groups: >> https://groups.google.com/forum/?hl=en-GB&fromgroups=#!topic/comp.lang.java.programmer/iGr3bxL9ZCA >> > > 32 bit Java can in theory use up to 3 GB on 32 bit OS on x86 if the > border between process and system is changed (/3GB). But on Windows > JRocket is supposedly the only Java that can do it. Sorry, yes, I had confused myself by thinking about PAE. For normal 32bit systems this is true. > > 32 bit Java can never use 4 GB on 32 bit OS on x86, because that > does not leave any address space for the OS. However, the OP is using a PAE kernel. That should theoretically allow a per-process limit of 4GB. I've never had the chance to use PAE kernels on PAE supported hardware, but IIRC that's what PAE is for, isn't it? -- Nigel Wade
[toc] | [prev] | [next] | [standalone]
| From | BGB <cr88192@hotmail.com> |
|---|---|
| Date | 2012-12-19 07:19 -0600 |
| Message-ID | <kasf3c$5ma$1@news.albasani.net> |
| In reply to | #20516 |
On 12/19/2012 5:28 AM, Nigel Wade wrote: > On 19/12/12 01:22, Arne Vajhøj wrote: >> On 12/18/2012 4:19 AM, Nigel Wade wrote: >>> On 17/12/12 08:39, Donkey Hottie wrote: >>>> 17.12.2012 05:09, Arne Vajhøj kirjoitti: >>>>> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>>>>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>>>>> create the Java Virtual Machine" >>>>>> >>>>>> /root>free -m >>>>>> total used free shared buffers >>>>>> cached >>>>>> Mem: 32387 16973 15413 0 243 >>>>>> 11906 >>>>>> -/+ buffers/cache: 4823 27563 >>>>>> Swap: 1906 0 1906 >>>>>> /root>uname -a >>>>>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>>>>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >>>>> >>>>> 32 bit or 64 bit Java? >>>> >>>> Apparently 32 bit, as the i686 OS is 32 bit PAE too. >>> >>> 32bit Java on 32bit Linux should allow an application of up to 4GB. How >>> much can of that can be allocated to the heap depends on the particular >>> application. I've allocated more than 2G to heap on a 32bit Linux >>> system, see this old thread on Google Groups: >>> https://groups.google.com/forum/?hl=en-GB&fromgroups=#!topic/comp.lang.java.programmer/iGr3bxL9ZCA >>> >>> >> >> 32 bit Java can in theory use up to 3 GB on 32 bit OS on x86 if the >> border between process and system is changed (/3GB). But on Windows >> JRocket is supposedly the only Java that can do it. > > Sorry, yes, I had confused myself by thinking about PAE. For normal > 32bit systems this is true. > it is also true of systems using PAE. there is a way to get around the 3GB limit though, but it actually involves a different strategy: swapping out the page tables on transitions to/from kernel space. big downside: this is kind of slow... >> >> 32 bit Java can never use 4 GB on 32 bit OS on x86, because that >> does not leave any address space for the OS. > > However, the OP is using a PAE kernel. That should theoretically allow a > per-process limit of 4GB. I've never had the chance to use PAE kernels > on PAE supported hardware, but IIRC that's what PAE is for, isn't it? > no, PAE does not expand the size of the virtual address space, only the physical address space (mostly via making page-table entries bigger, and adding another page-table level): 4kB / 8 = 512 (2^9) 9*3 + 12 = 39 but, the top-level is only partially filled (4 entries), so: 9+9+2 + 12 = 32 vs (non-PAE): 4kB / 4 = 1024 (2^10) 10+10 + 12 = 32 the reason for expanding the page-table entry size is mostly so that they can refer to more pages (more bits allowing a larger physical address space). it means essentially that you can have 36-bits (or more) for the physical RAM, but still only 4GB per-process (apart from using ugly bank-switching nastiness). given that the kernel still needs to map into a 4GB space, there is little change from before (leaving a full 4GB for the app requiring an address-space switch). PAE is partly involved in x86-64 though. more levels of page-tables may be used: 4kB / 8 = 512 (2^9) 9*4 + 12 = 48 9*5 + 12 = 57 note that the size of the external (physical) address bus is independent of the size of the supported virtual address space, and depends some on the processor. note that, while 64 bit page-table entries would theoretically allow up to a full 64 bit physical address... AMD shaved off some of the high-order bits for use for more flags (like the NX bit). hence, there is currently a limit here of 56 bits. not like we will likely be seeing this much RAM anywhere in the near future though...
[toc] | [prev] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-19 09:17 -0500 |
| Message-ID | <50d1cc69$0$287$14726298@news.sunsite.dk> |
| In reply to | #20516 |
On 12/19/2012 6:28 AM, Nigel Wade wrote: > On 19/12/12 01:22, Arne Vajhøj wrote: >> On 12/18/2012 4:19 AM, Nigel Wade wrote: >>> On 17/12/12 08:39, Donkey Hottie wrote: >>>> 17.12.2012 05:09, Arne Vajhøj kirjoitti: >>>>> On 12/16/2012 10:05 PM, mcheung63@gmail.com wrote: >>>>>> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not >>>>>> create the Java Virtual Machine" >>>>>> >>>>>> /root>free -m >>>>>> total used free shared buffers >>>>>> cached >>>>>> Mem: 32387 16973 15413 0 243 >>>>>> 11906 >>>>>> -/+ buffers/cache: 4823 27563 >>>>>> Swap: 1906 0 1906 >>>>>> /root>uname -a >>>>>> Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 >>>>>> 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux >>>>> >>>>> 32 bit or 64 bit Java? >>>> >>>> Apparently 32 bit, as the i686 OS is 32 bit PAE too. >>> >>> 32bit Java on 32bit Linux should allow an application of up to 4GB. How >>> much can of that can be allocated to the heap depends on the particular >>> application. I've allocated more than 2G to heap on a 32bit Linux >>> system, see this old thread on Google Groups: >>> https://groups.google.com/forum/?hl=en-GB&fromgroups=#!topic/comp.lang.java.programmer/iGr3bxL9ZCA >>> >>> >> >> 32 bit Java can in theory use up to 3 GB on 32 bit OS on x86 if the >> border between process and system is changed (/3GB). But on Windows >> JRocket is supposedly the only Java that can do it. > > Sorry, yes, I had confused myself by thinking about PAE. For normal > 32bit systems this is true. > >> >> 32 bit Java can never use 4 GB on 32 bit OS on x86, because that >> does not leave any address space for the OS. > > However, the OP is using a PAE kernel. That should theoretically allow a > per-process limit of 4GB. I've never had the chance to use PAE kernels > on PAE supported hardware, but IIRC that's what PAE is for, isn't it? No. PAE allows you to have more than 4 GB RAM. PAE does not increase virtual address space at all. A system with PAE can utilize the RAM by having multiple processes each having 2 or 3 GB virtual address space mapped into real RAM. Or by using a special API that allows one to programmatically change what some virtual addresses is mapped to. Arne
[toc] | [prev] | [next] | [standalone]
| From | Tim Slattery <Slattery_T@bls.gov> |
|---|---|
| Date | 2012-12-19 12:51 -0500 |
| Message-ID | <gcv3d8dg6g48rr4cu4uu1736lr25q431j5@4ax.com> |
| In reply to | #20525 |
Arne Vajhøj <arne@vajhoej.dk> wrote: >A system with PAE can utilize the RAM by having multiple >processes each having 2 or 3 GB virtual address space >mapped into real RAM. Any Windows XP, Vista, Win7, etc 32-bit system can do that, PAE or not. That's what the virtual memory system is all about. Each process - and there are dozens running at any time - thinks it has a 4GB space all to itself. The VM system swaps things in and out to keep everybody happy. Same thing in 64-bit systems, but the size of the space that a 64-bit process thinks it has is 8 terabytes. The amount of physical RAM in the system has nothing to do with this. -- Tim Slattery Slattery_T@bls.gov
[toc] | [prev] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-19 13:20 -0500 |
| Message-ID | <50d20555$0$295$14726298@news.sunsite.dk> |
| In reply to | #20561 |
On 12/19/2012 12:51 PM, Tim Slattery wrote: > Arne Vajhøj <arne@vajhoej.dk> wrote: >> A system with PAE can utilize the RAM by having multiple >> processes each having 2 or 3 GB virtual address space >> mapped into real RAM. > > Any Windows XP, Vista, Win7, etc 32-bit system can do that, PAE or > not. That's what the virtual memory system is all about. Yes. But non-PAE systems can only access 4 GB of RAM. > Each process > - and there are dozens running at any time - thinks it has a 4GB space > all to itself. Each process has 4 GB of virtual address space. Virtual address space gets translated to physical addresses by the CPU using pagetables. Without PAE the pages tables contain 32 bit physical addresses. With PAE the page tables contain 36 bit physical addresses. Which is why non-PAE systems cam only have 4 GB of RAM and PAE systems can have 64 GM of RAM. Note that desktop versions of Windows prevents more than 4 GB of RAM even with PAE. Arne
[toc] | [prev] | [next] | [standalone]
| From | BGB <cr88192@hotmail.com> |
|---|---|
| Date | 2012-12-19 12:40 -0600 |
| Message-ID | <kat1tb$d4s$1@news.albasani.net> |
| In reply to | #20573 |
On 12/19/2012 12:20 PM, Arne Vajhøj wrote: > On 12/19/2012 12:51 PM, Tim Slattery wrote: >> Arne Vajhøj <arne@vajhoej.dk> wrote: >>> A system with PAE can utilize the RAM by having multiple >>> processes each having 2 or 3 GB virtual address space >>> mapped into real RAM. >> >> Any Windows XP, Vista, Win7, etc 32-bit system can do that, PAE or >> not. That's what the virtual memory system is all about. > > Yes. > > But non-PAE systems can only access 4 GB of RAM. > >> Each process >> - and there are dozens running at any time - thinks it has a 4GB space >> all to itself. > > Each process has 4 GB of virtual address space. > > Virtual address space gets translated to physical addresses > by the CPU using pagetables. > > Without PAE the pages tables contain 32 bit physical addresses. > > With PAE the page tables contain 36 bit physical addresses. > > Which is why non-PAE systems cam only have 4 GB of RAM and PAE > systems can have 64 GM of RAM. > > Note that desktop versions of Windows prevents more than > 4 GB of RAM even with PAE. > but, you can still have a bit more in terms of swap-space though. say, 16GB in swap-files. this does require doing a few things manually though, as IIRC, 32-bit Windows only allowed about 4GB of swap-space per-drive. granted, yes, things don't really run well. back in those days, it was a great challenge trying to, say, run Borderlands and Firefox at the same time. it would require killing off Firefox for Borderlands to run ok. this was an advance of 64-bit Windows over 32-bit Windows: now a person can have a lot more apps running. before then, multicore was an advance over single-core, as then background apps wouldn't so much interfere with foreground apps. before then, XP was an advance over 9x, as it didn't crash as often. and, Win9x was an advance over 3.x, in that a frozen app would not (generally) lock up the OS in 9x... oh, the good old days, when hitting the power switch or reset button was much less uncommon...
[toc] | [prev] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-19 13:56 -0500 |
| Message-ID | <50d20dcc$0$295$14726298@news.sunsite.dk> |
| In reply to | #20578 |
On 12/19/2012 1:40 PM, BGB wrote: > On 12/19/2012 12:20 PM, Arne Vajhøj wrote: >> On 12/19/2012 12:51 PM, Tim Slattery wrote: >>> Arne Vajhøj <arne@vajhoej.dk> wrote: >>>> A system with PAE can utilize the RAM by having multiple >>>> processes each having 2 or 3 GB virtual address space >>>> mapped into real RAM. >>> >>> Any Windows XP, Vista, Win7, etc 32-bit system can do that, PAE or >>> not. That's what the virtual memory system is all about. >> >> Yes. >> >> But non-PAE systems can only access 4 GB of RAM. >> >>> Each process >>> - and there are dozens running at any time - thinks it has a 4GB space >>> all to itself. >> >> Each process has 4 GB of virtual address space. >> >> Virtual address space gets translated to physical addresses >> by the CPU using pagetables. >> >> Without PAE the pages tables contain 32 bit physical addresses. >> >> With PAE the page tables contain 36 bit physical addresses. >> >> Which is why non-PAE systems cam only have 4 GB of RAM and PAE >> systems can have 64 GM of RAM. >> >> Note that desktop versions of Windows prevents more than >> 4 GB of RAM even with PAE. >> > > but, you can still have a bit more in terms of swap-space though. > > say, 16GB in swap-files. Yes. > this does require doing a few things manually though, as IIRC, 32-bit > Windows only allowed about 4GB of swap-space per-drive. I think there is a way to put the files just in different directories by doing some registry magic. But yes - it is 4 GB per page file. Arne
[toc] | [prev] | [next] | [standalone]
| From | Roedy Green <see_website@mindprod.com.invalid> |
|---|---|
| Date | 2012-12-17 00:31 -0800 |
| Message-ID | <2vltc818n4983408uba3ebtujnu8kapgl1@4ax.com> |
| In reply to | #20389 |
On Sun, 16 Dec 2012 19:05:11 -0800 (PST), mcheung63@gmail.com wrote, quoted or indirectly quoted someone who said : >hi all > i got 32GB ram, why i can't -Xmx2G, it got an error "Could not create the Java Virtual Machine" try using m for megabytes. -- Roedy Green Canadian Mind Products http://mindprod.com Students who hire or con others to do their homework are as foolish as couch potatoes who hire others to go to the gym for them.
[toc] | [prev] | [next] | [standalone]
| From | Arne Vajhøj <arne@vajhoej.dk> |
|---|---|
| Date | 2012-12-17 20:37 -0500 |
| Message-ID | <50cfc8f1$0$285$14726298@news.sunsite.dk> |
| In reply to | #20392 |
On 12/17/2012 3:31 AM, Roedy Green wrote: > On Sun, 16 Dec 2012 19:05:11 -0800 (PST), mcheung63@gmail.com wrote, > quoted or indirectly quoted someone who said : >> i got 32GB ram, why i can't -Xmx2G, it got an error "Could not create the Java Virtual Machine" > try using m for megabytes. Really. You don't think Java can do that calculation correct?? Arne PS: It can!
[toc] | [prev] | [next] | [standalone]
| From | Sven Köhler <remove-sven.koehler@gmail.com> |
|---|---|
| Date | 2012-12-19 20:40 +0100 |
| Message-ID | <ajejffFpvgeU1@mid.dfncis.de> |
| In reply to | #20389 |
Am 17.12.2012 04:05, schrieb mcheung63@gmail.com: > hi all > i got 32GB ram, why i can't -Xmx2G, it got an error "Could not create the Java Virtual Machine" Well, because you decided not to run a 64Bit OS on your machine. > /root>free -m > total used free shared buffers cached > Mem: 32387 16973 15413 0 243 11906 > -/+ buffers/cache: 4823 27563 > Swap: 1906 0 1906 > /root>uname -a > Linux localhost.localdomain 3.6.9-2.fc17.i686.PAE #1 SMP Tue Dec 4 14:15:28 UTC 2012 i686 i686 i386 GNU/Linux Please install a 64Bit OS. That will get rid of the overhead that PAE causes and will allow individual processes (e.g. a virtual machine) to consume more than just a few gigs of memory. Regards, Sven
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.java.programmer
csiph-web