64 bit linux on VM to run Java app

S

soup_or_power

Can we install a VM to support 6 GB memory on a 32-bit machine?
Basically we want to install 3 VM's running linux sharing the 6 GM
memory. At the first glance it seems not possible. Do we need a 64-bit
processor with 64 bit linux (Red Hat Mandriva, Fedora, etc.). Also
since we will be running Java on the VM's do we need 64-bit Java
compiler as well?

Thanks for your help
 
R

Roedy Green

Can we install a VM to support 6 GB memory on a 32-bit machine?
Basically we want to install 3 VM's running linux sharing the 6 GM
memory. At the first glance it seems not possible. Do we need a 64-bit
processor with 64 bit linux (Red Hat Mandriva, Fedora, etc.). Also
since we will be running Java on the VM's do we need 64-bit Java
compiler as well?

Any desktop you buy today will have a 64 bit processor, even if it
runs most of the time a 32-bit OS.

You don't need an Itanium, PowerPC or something fancy. Just an
ordinary AMD will do. The limit will be how much RAM your motherboard
can hold. A low end motherboard won't give you enough RAM to make
64-bit worth the candle.


You do need a 64-bit OS though.
 
R

Roedy Green

Can we install a VM to support 6 GB memory on a 32-bit machine?
Basically we want to install 3 VM's running linux sharing the 6 GM
memory. At the first glance it seems not possible. Do we need a 64-bit
processor with 64 bit linux (Red Hat Mandriva, Fedora, etc.). Also
since we will be running Java on the VM's do we need 64-bit Java
compiler as well?

see http://mindprod.com/bgloss/sixtyfourbit.html
 
R

Roedy Green

Not true, the latest P45 motherboards can support 16G and the older Core2
and A64 DDR2 motherboards can all support at least 8G (I don't know if
there is an actual limit in the P35 chipset or if they simply haven't
tested the motherboards with 16G).

I figure you need 4+ gig to make 64 bit pay. I wanted to warn people
against buying a 2gig motherboard and then hoping to go 64-bit.

I googled and had a look at some low end motherboard/cpus:

http://www.tigerdirect.ca/applications/SearchTools/item-details.asp?EdpNo=3440252&Sku=MBM-A13G-3500
$97 max 2 gig

http://www.tigerdirect.ca/applicati...details.asp?EdpNo=3799143&sku=MBM-K8M800-4400
$122 max 2 gig

http://motherboards.bizrate.com/mot...-micro-atx-motherboard--pid719310883/#details
$60 max 4 gif (no cpu)

http://motherboards.bizrate.com/mot...--pid625085355/compareprices__rf--mot006.html
$65 max 4 gig (no cpu)

http://motherboards.bizrate.com/mot...--pid752966283/compareprices__rf--mot006.html
$90 max 8 gig (no cpu)
 
A

Arne Vajhøj

General said:
Not true, the latest P45 motherboards can support 16G and the older Core2
and A64 DDR2 motherboards can all support at least 8G (I don't know if
there is an actual limit in the P35 chipset or if they simply haven't
tested the motherboards with 16G).

I don't think I will call those for low end motherboards.

64bit Linux is a little faster than
32 bit Linux so there is really no reason to use 32 bit Linux on any
64bit capable machine. Windows user are in a different boat, they either
have to use the execrable Vista or live with the 3.6G memory limit in
XP.

Wrong.

XP, 2003 and 2008 also comes in 64 bit versions.
However the OP was asking about Virtual machines so he will be using
a Linux host anyway. Even if he needs Windows VMs he would still be
better off running them on a 64 bit Linux host.

Both VMWare and MS delivers virtualization software for Windows. If one
prefer Windows no need to not chose it.

Arne
 
A

Arne Vajhøj

Roedy said:

#Thus they can handle numbers up to 9,223,372,036,854,775,807 as a
#single chunk.

64 bit means 64 bit virtual addresses not 64 bit integers.

#Computer programs can be up to 9 million gigabytes long

I assume you are trying to tell that the virtual address space
is 9 million GB. Which is wrong. The potential max of virtual
address space is 16 EB (16 billion GB). Current implementations
are limited to 256 TB (256000 GB).

[I assume x86-64]

[I am ignoring the 1024 versus 1000 issue]

#Low-end CPUs may not be particularly fast in 64-bit mode.

Unless slowed down by lack of memory because 64 bit requires more
memory, then 64 bit apps will always be faster due to more registers
and new FP instructions. Low end or not low end.

#Many dual Xeon boards are limited to 8 gigabytes total

I doubt that is still the case today.

#The architecture features 64 general purpose registers (vs only 8 in 32
#bit mode)

No - only 16 GP registers in x86-64.

#Because of AMD’s success with this instruction set, and the slow
#Itanium sales, Intel implemented AMD64 too, renaming it Intel-64

Intel has used multiple names for its 64 bit: IA-32e, EMT64T and
Intel64. I think the last one is confusing because Itanium is
called IA-64.

Arne
 
S

stan

In comp.os.linux.misc General Schvantzkopf said:
64bit capable machine. Windows user are in a different boat, they either
have to use the execrable Vista or live with the 3.6G memory limit in
XP. However the OP was asking about Virtual machines so he will be using

Huh? Have been using 64-bit XP for a long time now- no mem limit I am aware of.

Stan
 
C

Corneil

Can we install a VM to support 6 GB memory on a 32-bit machine?
Basically we want to install 3 VM's running linux sharing the 6 GM
memory. At the first glance it seems not possible. Do we need a 64-bit
processor with 64 bit linux (Red Hat Mandriva, Fedora, etc.). Also
since we will be running Java on the VM's do we need 64-bit Java
compiler as well?

Thanks for your help

32-bit Linux can support more than 4GB of memory if you use the
correct options when build the kernel.
The 'server' build of most distributions usually support this option.
You will then be able to run 3 JVM instances each using 2GB.
 
R

Roedy Green

64 bit means 64 bit virtual addresses not 64 bit integers.

64-bit registers, 64-bit addresses and 64-bit operands usually all go
together. Can you think of any exceptions?
 
T

Tom Anderson

64-bit registers, 64-bit addresses and 64-bit operands usually all go
together. Can you think of any exceptions?

The Atari Jaguar. 64-bit registers, 24-bit addresses and 32-bit operands!

Well, sort of. The CPU was a Motorola 68000, which is a 32-bit chip with
24 address pins and an instruction set that's still slanted towards 16-bit
operations. The graphics, memory control and sound chips were clean
32-bit. The data bus was 64-bit. The interesting bit was the blitter and
'object processor', both of which were somewhat specialised chips designed
for shunting data around and doing repetitive operations of limited
complexity to it - but doing them incredibly fast. They were 64-bit.

You might say that since the 68k CPU was 32-bit, the machine was 32-bit,
but the idea was that the 68k was just there to boot the system,
initialise the other chips, manage controller input, etc, and that the
real heart of the system was the custom chipset, which would execute all
the real logic - the 68k was a sort of management chip, not a CPU.
However, according to my very superficial understanding of the Jaguar's
history, game programmers did use the 68k for game logic, and used the
custom chips purely for graphics.

In any case, the only other chip which could really have been considered
the primary element was the GPU, which was a general-purpose RISC chip
with some graphics-specific extensions, but that was only 32 bit anyway.
So, it was more of a 32-bit machine with a 64-bit bus and some 64-bit
graphics chips.

If i can change the numbers a bit, all the 8-bit processors had 16-bit
address spaces. Some 16-bit machines had >16-bit address spaces too, like
all that segment register madness on the early x86 chips.

tom
 
R

Roedy Green

I assume you are trying to tell that the virtual address space
is 9 million GB. Which is wrong. The potential max of virtual
address space is 16 EB (16 billion GB)

Often you can't always use all 64 bits for addressing, but if you
did, that would give you addresses 0 .. 2^64-1
i..e 0.. 18,446,744,073,709,551,615

We have the problem of binary and decimal gigabytes. The article
http://mindprod.com/ggloss/sixtyfourbit.html is in the Buyer's
Glossary, not the Java glossary, so it is not aimed at programmers. I
thought it thus best to stick to decimal. It does not really matter.
The point I am trying to make is the addressing limit is well beyond
what you could afford in real ram.

A decimal gigabyte is 10^9, so that would make it the addressability
18,446,744 gb (twice the 9 million gb I used presuming the sign bit
bit of addressing would be chewed up by housekeeping.)

How did you get your number 16 billion GB. ? three orders of magnitude
bigger?

I presume the 16-18 difference comes from you using binary gigabytes.

To sort out the confusion, NIST has devised new prefixes when you mean
binary.
see http://physics.nist.gov/cuu/Units/binary.html
 
A

Arne Vajhøj

Roedy said:
64-bit registers, 64-bit addresses and 64-bit operands usually all go
together. Can you think of any exceptions?

Yes.

The VAX instruction set supports 64 bit operands in ASHQ, CLRQ, EDIV,
EMUL and MOVQ instructions.

x86 has the CDQ instruction that has a 64 bit operand.

The original CDC Cyber used 18 bit addresses (word not byte), but
had 60 bit registers for arithmetic.

If we go really way back then IBM, DEC, Univac and GE all made
computers with 36 bit registers and 18 bit addresses (word again).


Arne
 
A

Arne Vajhøj

Roedy said:
Often you can't always use all 64 bits for addressing, but if you
did, that would give you addresses 0 .. 2^64-1
i..e 0.. 18,446,744,073,709,551,615

We have the problem of binary and decimal gigabytes. The article
http://mindprod.com/ggloss/sixtyfourbit.html is in the Buyer's
Glossary, not the Java glossary, so it is not aimed at programmers. I
thought it thus best to stick to decimal. It does not really matter.
The point I am trying to make is the addressing limit is well beyond
what you could afford in real ram.

A decimal gigabyte is 10^9, so that would make it the addressability
18,446,744 gb (twice the 9 million gb I used presuming the sign bit
bit of addressing would be chewed up by housekeeping.)

How did you get your number 16 billion GB. ? three orders of magnitude
bigger?

I presume the 16-18 difference comes from you using binary gigabytes.

To sort out the confusion, NIST has devised new prefixes when you mean
binary.
see http://physics.nist.gov/cuu/Units/binary.html

The post you replied to contained the following (that you did not
quote):

#[I am ignoring the 1024 versus 1000 issue]

Is that statement unclear ????

Arne
 
K

Kees Theunissen

Roedy said:
Often you can't always use all 64 bits for addressing, but if you
did, that would give you addresses 0 .. 2^64-1
i..e 0.. 18,446,744,073,709,551,615

Didn't check this exactly, but it looks reasonable. If we estimate
2^10 as 1000 decimal then 2^60 becomes 1000^6 or 10^18. And 2^64
will then be 16 * 10^18.

[ snip ]
A decimal gigabyte is 10^9, so that would make it the addressability
18,446,744 gb (twice the 9 million gb I used presuming the sign bit
bit of addressing would be chewed up by housekeeping.)

(18 * 10^18) / (10^9) = 18 * 10^9.
If you just strip the last _nine_ digits of 18,446,744,073,709,551,615
-like you suggest to be doing above- you'll get 18,446,744,073 gb.
How did you get your number 16 billion GB. ? three orders of magnitude
bigger?

Just by counting the digits I suppose.


Regards,

Kees.
 
A

Arne Vajhøj

Arne said:
Roedy said:
Often you can't always use all 64 bits for addressing, but if you
did, that would give you addresses 0 .. 2^64-1
i..e 0.. 18,446,744,073,709,551,615

We have the problem of binary and decimal gigabytes. The article
http://mindprod.com/ggloss/sixtyfourbit.html is in the Buyer's
Glossary, not the Java glossary, so it is not aimed at programmers. I
thought it thus best to stick to decimal. It does not really matter.
The point I am trying to make is the addressing limit is well beyond
what you could afford in real ram.

A decimal gigabyte is 10^9, so that would make it the addressability
18,446,744 gb (twice the 9 million gb I used presuming the sign bit
bit of addressing would be chewed up by housekeeping.)

How did you get your number 16 billion GB. ? three orders of magnitude
bigger?

I presume the 16-18 difference comes from you using binary gigabytes.

To sort out the confusion, NIST has devised new prefixes when you mean
binary.
see http://physics.nist.gov/cuu/Units/binary.html

The post you replied to contained the following (that you did not
quote):

#[I am ignoring the 1024 versus 1000 issue]

Is that statement unclear ????

Oh and:

18,446,744,073,709,551,616 / 10^9 is *not* 18,446,744 !

It *is* billion not million !!

Arne
 
R

Roedy Green

I think Roedy was asking for extant, relevant examples.

That's fair. We were discussing the definition of "64-bit". You need
the exceptions to hammer out an air-tight definition.

One that might boggle the mind is my old LGP-30 computer that had 0
RAM, but a rotating magnetic drum.

It had one 32-bit register. The store was 32 bits, but the low order
bit had to be 0, and in practice the low order 2 bits were not used.
Addresses were 16 bits wide, with word addressibility. I have
referred to it as a 31.5 bit computer.
 
R

Roedy Green

18,446,744,073,709,551,616 / 10^9 is *not* 18,446,744 !

It *is* billion not million !!

I chopped off 9 digits on two different occasions and rechecked. Oh
dear. Wetware is failing badly.
 
R

Roedy Green

#[I am ignoring the 1024 versus 1000 issue]

Is that statement unclear ????

I felt the discrepancy needed clarification.

I run into this all the time. Whenever A says something that agrees
with what B says, restates what B says, or elaborates what B says, or
asks for confirmation of an interpretation of what B said, then B
complains, as if the general assumption is that every statement in a
newsgroup must necessarily be a refutation of some previous poster.

I find this amusing given the ostensible purpose of debate is to
persuade others to agree with you.
 
R

Roedy Green

Please have a second look at the entry. I have updated it based on
your feedback.
#Thus they can handle numbers up to 9,223,372,036,854,775,807 as a
#single chunk.

64 bit means 64 bit virtual addresses not 64 bit integers.

#Computer programs can be up to 9 million gigabytes long

I assume you are trying to tell that the virtual address space
is 9 million GB. Which is wrong. The potential max of virtual
address space is 16 EB (16 billion GB). Current implementations
are limited to 256 TB (256000 GB).

[I assume x86-64]

[I am ignoring the 1024 versus 1000 issue]

#Low-end CPUs may not be particularly fast in 64-bit mode.

Unless slowed down by lack of memory because 64 bit requires more
memory, then 64 bit apps will always be faster due to more registers
and new FP instructions. Low end or not low end.

#Many dual Xeon boards are limited to 8 gigabytes total

I doubt that is still the case today.

#The architecture features 64 general purpose registers (vs only 8 in 32
#bit mode)

No - only 16 GP registers in x86-64.

#Because of AMD’s success with this instruction set, and the slow
#Itanium sales, Intel implemented AMD64 too, renaming it Intel-64

Intel has used multiple names for its 64 bit: IA-32e, EMT64T and
Intel64. I think the last one is confusing because Itanium is
called IA-64.

Arne
 
D

Douglas O'Neal

64-bit registers, 64-bit addresses and 64-bit operands usually all go
together. Can you think of any exceptions?

Intel i860? 32-bit ALU, 64-bit FPU

PS2 Emotion engine is another possibility. It has mixed 64-bit and
32-bit engines, 128-bit registers, and operates on 32-bit values.
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,120
Latest member
ShelaWalli
Top