32G ram

Discussion in 'Java' started by mcheung63@gmail.com, Dec 17, 2012.

  1. Guest

    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 ()
     
    , Dec 17, 2012
    #1
    1. Advertising

  2. Arne Vajhøj Guest

    On 12/16/2012 10:05 PM, 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
     
    Arne Vajhøj, Dec 17, 2012
    #2
    1. Advertising

  3. Roedy Green Guest

    On Sun, 16 Dec 2012 19:05:11 -0800 (PST), 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.
     
    Roedy Green, Dec 17, 2012
    #3
  4. Arne Vajhøj Guest

    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, 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
     
    Arne Vajhøj, Dec 17, 2012
    #4
  5. Lew Guest

    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 theJVM
    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
     
    Lew, Dec 17, 2012
    #5
  6. Arne Vajhøj Guest

    On 12/17/2012 3:31 AM, Roedy Green wrote:
    > On Sun, 16 Dec 2012 19:05:11 -0800 (PST), 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!
     
    Arne Vajhøj, Dec 18, 2012
    #6
  7. Nigel Wade Guest

    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, 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
     
    Nigel Wade, Dec 18, 2012
    #7
  8. BGB Guest

    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, 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).
     
    BGB, Dec 18, 2012
    #8
  9. Arne Vajhøj Guest

    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, 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
     
    Arne Vajhøj, Dec 19, 2012
    #9
  10. Nigel Wade Guest

    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, 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
     
    Nigel Wade, Dec 19, 2012
    #10
  11. BGB Guest

    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, 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...
     
    BGB, Dec 19, 2012
    #11
  12. Arne Vajhøj Guest

    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, 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
     
    Arne Vajhøj, Dec 19, 2012
    #12
  13. Tim Slattery Guest

    Arne Vajhøj <> 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
     
    Tim Slattery, Dec 19, 2012
    #13
  14. Arne Vajhøj Guest

    On 12/19/2012 12:51 PM, Tim Slattery wrote:
    > Arne Vajhøj <> 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
     
    Arne Vajhøj, Dec 19, 2012
    #14
  15. BGB Guest

    On 12/19/2012 12:20 PM, Arne Vajhøj wrote:
    > On 12/19/2012 12:51 PM, Tim Slattery wrote:
    >> Arne Vajhøj <> 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...
     
    BGB, Dec 19, 2012
    #15
  16. Arne Vajhøj Guest

    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 <> 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
     
    Arne Vajhøj, Dec 19, 2012
    #16
  17. Sven Köhler Guest

    Am 17.12.2012 04:05, schrieb :
    > 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
     
    Sven Köhler, Dec 19, 2012
    #17
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Robert Posey
    Replies:
    0
    Views:
    681
    Robert Posey
    Nov 26, 2003
  2. ashu
    Replies:
    1
    Views:
    464
  3. ashu
    Replies:
    2
    Views:
    619
    mysticlol
    Nov 6, 2006
  4. Xin Xiao

    Block RAM Distributed RAM

    Xin Xiao, Jan 7, 2008, in forum: VHDL
    Replies:
    8
    Views:
    1,479
    Duane Clark
    Jan 7, 2008
  5. James Adam
    Replies:
    7
    Views:
    110
    James Adam
    Jan 31, 2006
Loading...

Share This Page