Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #20389 > unrolled thread

32G ram

Started bymcheung63@gmail.com
First post2012-12-16 19:05 -0800
Last post2012-12-19 20:40 +0100
Articles 18 — 9 participants

Back to article view | Back to comp.lang.java.programmer


Contents

  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

#20389 — 32G ram

Frommcheung63@gmail.com
Date2012-12-16 19:05 -0800
Subject32G 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]


#20390

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20393

FromDonkey Hottie <donkey@fredriksson.dy.fi>
Date2012-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]


#20400

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20401

FromLew <lewbloch@gmail.com>
Date2012-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]


#20432

FromNigel Wade <nmw@ion.le.ac.uk>
Date2012-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]


#20476

FromBGB <cr88192@hotmail.com>
Date2012-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]


#20498

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20516

FromNigel Wade <nmw@ion.le.ac.uk>
Date2012-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]


#20521

FromBGB <cr88192@hotmail.com>
Date2012-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]


#20525

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20561

FromTim Slattery <Slattery_T@bls.gov>
Date2012-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]


#20573

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20578

FromBGB <cr88192@hotmail.com>
Date2012-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]


#20580

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20392

FromRoedy Green <see_website@mindprod.com.invalid>
Date2012-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]


#20407

FromArne Vajhøj <arne@vajhoej.dk>
Date2012-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]


#20587

FromSven Köhler <remove-sven.koehler@gmail.com>
Date2012-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