Clan x86

Technical (Development, Security, etc.) => Unix / Linux Discussion => Topic started by: mynameistmp on September 27, 2005, 03:02:16 PM

Title: Who has the most RAM ?
Post by: mynameistmp on September 27, 2005, 03:02:16 PM
I'm interested in who has the most RAM in ONE machine. The machine has to be running Linux or you're void from the contest ;P Whoever wins (the winner has to be above 900MB) will get a prize.
Title: Re: Who has the most RAM ?
Post by: Eric on September 27, 2005, 03:17:18 PM
2048 MB DDR & 256 MB DDR3 video.  I also have an additional 2048 MBs of swap space/virtual memory.
Title: Re: Who has the most RAM ?
Post by: mynameistmp on September 27, 2005, 03:40:33 PM
Please run free and paste the output here. Thanks
Title: Re: Who has the most RAM ?
Post by: Eric on September 27, 2005, 04:01:11 PM
Quote from: mynameistmp on September 27, 2005, 03:40:33 PM
Please run free and paste the output here. Thanks

Pointlessly boot into Linux and ruin my connection uptime test?  You've got to be kidding me.  psh.
Title: Re: Who has the most RAM ?
Post by: Joe on September 27, 2005, 04:59:39 PM
You're running Windows and void from the contest. The machine has to be running Linux or you're void from the contest. But hey, I guess its not up to me to interpret the laws, I'm not the judicial branch of tmp incorporated.

Quotejoe@JoeMomma:~ $ sudo apt-get install free
Password:
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package free
/emotear.

Anyhow, 1024MB. I'll find free and install it. =)
Title: Re: Who has the most RAM ?
Post by: Newby on September 27, 2005, 05:09:22 PM
newby@impaler:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           883        850         32          0        265        103
-/+ buffers/cache:        481        401
Swap:          933         65        868


It's 1024MB RAM, but...

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003ff30000 (usable)
BIOS-e820: 000000003ff30000 - 000000003ff40000 (ACPI data)
BIOS-e820: 000000003ff40000 - 000000003fff0000 (ACPI NVS)
BIOS-e820: 000000003fff0000 - 0000000040000000 (reserved)
BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
Warning only 896MB will be used.

:(
Title: Re: Who has the most RAM ?
Post by: Windowlicker on September 27, 2005, 05:47:57 PM
free
                          total           used             free         shared         buffers        cached
Mem:       1035860    1011124        24736                    0       211448       281800
-/+ buffers/cache:         517876     517984
Swap:      2031608             160   2031448



I wish I had this sitting at home though.

vmstat
procs     memory            page            disk          faults      cpu
r b w   swap  free  re  mf pi po fr de sr f0 s0 s1 s2   in   sy   cs us sy id
0 0 18  4480  1720   0   0  0  0  0  0  0  0  0 15  0 4294967196 0 0 -22 -7 -122

mpstat
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0   15   0  509   123  120   93    3    3    7    0   419   14   5   2  79
  1   15   0  512   172  169   92    3    4    8    0   397   14   5   2  80
  2   15   0  505   105  102   94    3    4    5    0   138   17   6   2  76
  3   15   0  196   448  246   90    3    4    5    0   373   14   4   1  81

Title: Re: Who has the most RAM ?
Post by: Ergot on September 27, 2005, 06:24:10 PM
Why not the lowest amount T_T ? I have 512 MB
Title: Re: Who has the most RAM ?
Post by: Quik on September 27, 2005, 06:27:57 PM
HP-UX servers are running a flavor of Unix, sort of. Does that count?

If so, I have two, each of which have 7+ processors and 8+ gb ram.
Title: Re: Who has the most RAM ?
Post by: Newby on September 27, 2005, 06:29:11 PM
We should re-define the rules.

A linux box (used daily, none of this dual boot to occasionally use *nix as to keep ego up (LoRd)) at home (windowlicker) for the desktop (quik). :P
Title: Re: Who has the most RAM ?
Post by: Joe on September 27, 2005, 06:43:37 PM
In other words, Newby and myself win. =p

EDIT -
Tiebreaker, processor speed. 2.8GHz here, you?

EDIT -
tmp, may I ask why we need more than 900MB of RAM?
Title: Re: Who has the most RAM ?
Post by: Newby on September 27, 2005, 06:47:03 PM
Quote from: Joe[e2] on September 27, 2005, 06:43:37 PM
EDIT -
Tiebreaker, processor speed. 2.8GHz here, you?

Detected 3398.425 MHz processor.
Title: Re: Who has the most RAM ?
Post by: MyndFyre on September 27, 2005, 06:50:27 PM
Yeah, when I get home I'll run free and pwn you both with 2048 MB RAM, 256MB DDR3, and 2048MB of swap space (same specs as LoRd IIRC)
Title: Re: Who has the most RAM ?
Post by: Windowlicker on September 27, 2005, 06:59:17 PM
Quote from: Newby on September 27, 2005, 06:29:11 PM
We should re-define the rules.

A linux box (used daily, none of this dual boot to occasionally use *nix as to keep ego up (LoRd)) at home (windowlicker) for the desktop (quik). :P

Heh, the top one was my personal linux box, and the output was from free. The bottom one, was a SunOS server from a research lab. SunOS lacks "free", so I used vmstat and mpstat.
Title: Re: Who has the most RAM ?
Post by: Newby on September 27, 2005, 07:49:14 PM
Quote from: Windowlicker on September 27, 2005, 06:59:17 PM
Heh, the top one was my personal linux box, and the output was from free.

Ahh. I figured when you said "I wish this was here" you meant both. =p
Title: Re: Who has the most RAM ?
Post by: Quik on September 27, 2005, 09:07:21 PM
Servers are computers too. You're just angry because I win.
Title: Re: Who has the most RAM ?
Post by: mynameistmp on September 28, 2005, 03:14:02 AM
Alright! Enough fun. Now, I don't want to be a dick but I don't actually care how much RAM any of you have. The truth is that this is another lesson-post in trap form!

Quote from: Joe[e2] on September 27, 2005, 06:43:37 PM
EDIT -
tmp, may I ask why we need more than 900MB of RAM?

Good question, Joe! I had a sneaking suspicion that many of you guys probably have some fancy machines (with plenty o' RAM), but you probably didn't know that Linux, out of the box anyways, doesn't support more than 960MB of RAM ;P Don't believe me ? Check out Newby's situation ;P

Quote from: Newby on September 27, 2005, 05:09:22 PM
newby@impaler:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           883        850         32          0        265        103
-/+ buffers/cache:        481        401
Swap:          933         65        868


It's 1024MB RAM, but...

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003ff30000 (usable)
BIOS-e820: 000000003ff30000 - 000000003ff40000 (ACPI data)
BIOS-e820: 000000003ff40000 - 000000003fff0000 (ACPI NVS)
BIOS-e820: 000000003fff0000 - 0000000040000000 (reserved)
BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
Warning only 896MB will be used.

:(

If you ran free on a shell server (cheated) then you probably got the expected amount because the admin hopefully knows what he's doing.

Anyhow, on with the issue at hand.

Good news: I'm about to tell you how to fix the problem

Bad news: You'll have to recompile your kernel.

The linux kernel actually supports up to 64GB of RAM. However, in order to use anything past 960MB you need to configure  the CONFIG_NOHIGHMEM define appropriately then rebuild your kernel. You want something like so:

up to 960MB: off
up to 4GB: 4GB
up to 64GB: 64GB

If you select 64GB your processor must be capable of PAE mode. That includes all processors since the Pentium Pro, so you're probably OK. The kernel will refuse to boot if you don't have it which is why this configuration isn't enabled by default.

Also, if you've got an older BIOS it might have trouble reporting the amount of RAM to the bootloader accurately. If you've taken the above step and it still doesn't work properly add this to your /etc/lilo.conf:


append="mem=2048M"


Where I have 2 Gigs of RAM. All should be well.
Title: Re: Who has the most RAM ?
Post by: Ryan Marcus on September 28, 2005, 08:29:56 AM
1 GB SDRAM
Title: Re: Who has the most RAM ?
Post by: Sidoh on September 28, 2005, 01:09:03 PM
Another fun tip from tmp.  Thanks.  :)
Title: Re: Who has the most RAM ?
Post by: Windowlicker on September 28, 2005, 01:40:59 PM
Quote from: mynameistmp on September 28, 2005, 03:14:02 AM
Alright! Enough fun. Now, I don't want to be a dick but I don't actually care how much RAM any of you have. The truth is that this is another lesson-post in trap form!

Quote from: Joe[e2] on September 27, 2005, 06:43:37 PM
EDIT -
tmp, may I ask why we need more than 900MB of RAM?

Good question, Joe! I had a sneaking suspicion that many of you guys probably have some fancy machines (with plenty o' RAM), but you probably didn't know that Linux, out of the box anyways, doesn't support more than 960MB of RAM ;P Don't believe me ? Check out Newby's situation ;P

Quote from: Newby on September 27, 2005, 05:09:22 PM
newby@impaler:~$ free -m
             total       used       free     shared    buffers     cached
Mem:           883        850         32          0        265        103
-/+ buffers/cache:        481        401
Swap:          933         65        868


It's 1024MB RAM, but...

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003ff30000 (usable)
BIOS-e820: 000000003ff30000 - 000000003ff40000 (ACPI data)
BIOS-e820: 000000003ff40000 - 000000003fff0000 (ACPI NVS)
BIOS-e820: 000000003fff0000 - 0000000040000000 (reserved)
BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
Warning only 896MB will be used.

:(

If you ran free on a shell server (cheated) then you probably got the expected amount because the admin hopefully knows what he's doing.

Anyhow, on with the issue at hand.

Good news: I'm about to tell you how to fix the problem

Bad news: You'll have to recompile your kernel.

The linux kernel actually supports up to 64GB of RAM. However, in order to use anything past 960MB you need to configure  the CONFIG_NOHIGHMEM define appropriately then rebuild your kernel. You want something like so:

up to 960MB: off
up to 4GB: 4GB
up to 64GB: 64GB

If you select 64GB your processor must be capable of PAE mode. That includes all processors since the Pentium Pro, so you're probably OK. The kernel will refuse to boot if you don't have it which is why this configuration isn't enabled by default.

Also, if you've got an older BIOS it might have trouble reporting the amount of RAM to the bootloader accurately. If you've taken the above step and it still doesn't work properly add this to your /etc/lilo.conf:


append="mem=2048M"


Where I have 2 Gigs of RAM. All should be well.



I think your post is a little misleading, I'll try to see if I can clear the concept up, from what I remember reading in "Understanding the Linux Kernel"

First of all, the processor can directly access 4GB of virtual memory, because it has a 32 bit address space. (Assuming we are using a 32 bit processor) This window is split into two types: user address space, and the kernel address space.

These two are separated by the PAGE_OFFSET values, which I know to be 0xC0000000 under linux. This means that under the default, 3gb is allocated to the user address space, and 1gb is allocated to the kernel.

The kernel has a special area of memory reserved for vmalloc, and it dedicates 128mb to it. That means the kernel can only use 896 mb of mapped memory directly, since 1024-128 = 896.

So, if you have more than 1gb of RAM, it does not mean that your memory is not being used.

Anyhow, to get around this problem you could use a different PAGE_OFFSET or you could set HIGHMEM. HIGHMEM is known to consume extra cpu cycles, and use a little bit of memory itself. So from my experience, the best option if you have under 2gb of memory, is to edit the PAGE_OFFSET value. A 2gb:2gb split between user space and kernel space seems reasonable. Although this has obvious drawbacks since you're decreasing user space.

There are a lot more complexities to this whole issue, such as affecting the sbrk() heap and mmap() zones, and you should read about it more before deciding to either patch your kernel's PAGE_OFFSET value, or adding HIGHMEM support.
Title: Re: Who has the most RAM ?
Post by: mynameistmp on September 28, 2005, 03:24:14 PM
What part of my post was misleading ?
Title: Re: Who has the most RAM ?
Post by: Windowlicker on September 28, 2005, 04:22:33 PM
"doesn't support more than 960MB of RAM"

It's not 960mb, and the ram is used, just not in the kernel address space.
Title: Re: Who has the most RAM ?
Post by: mynameistmp on September 30, 2005, 01:20:17 AM
Quote
  x Linux can use up to 64 Gigabytes of physical memory on x86 systems.     x 
  x However, the address space of 32-bit x86 processors is only 4           x 
  x Gigabytes large. That means that, if you have a large amount of         x 
  x physical memory, not all of it can be "permanently mapped" by the       x 
  x kernel. The physical memory that's not permanently mapped is called     x 
  x "high memory".

  x If you are compiling a kernel which will never run on a machine with    x 
  x more than 960 megabytes of total physical RAM, answer "off" here (defau x 
  x choice and suitable for most users). This will result in a "3GB/1GB"    x 
  x split: 3GB are mapped so that each process sees a 3GB virtual memory    x 
  x space and the remaining part of the 4GB virtual memory space is used    x 
  x by the kernel to permanently map as much physical memory as             x 
  x possible.                                                               x 
  x                                                                         x 
  x If the machine has between 1 and 4 Gigabytes physical RAM, then         x 
  x answer "4GB" here.           


-- Linux 2.4.29 Configuration help menu

My understanding was that if the kernel cannot map the memory, then it is not going to be used. Perhaps I am wrong, although if I am, I don't know why the help menu would say this:

Quote
x If the machine has between 1 and 4 Gigabytes physical RAM, then         x 
  x answer "4GB" here.