LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Ram being eaten by linux? (https://www.linuxquestions.org/questions/linux-newbie-8/ram-being-eaten-by-linux-227791/)

btmiller 09-08-2004 12:38 PM

You only have 512 MB of RAM, so you don't need to recompile your kernel to support high memory or anything. Just don't worry about the amount of memory shown by the free program. Linux tries to use as much RAM as possible for buffers/cache. The memory will be made available to programs that need it. Every well-behaved Linux box has very little free memory.

minm 09-08-2004 12:59 PM

naw, i had 512 ram, and i got another 512 ram stick, so it's 1 gig :)

Electro 09-08-2004 04:14 PM

You will have to compile your stock kernel source code to handle a gigabyte of RAM or more. People just did not read your first post correctly.

I preferred using the instructions at http://www.justlinux.com/nhf/Compili...mpilation.html because it is more organized than DrOzz and it explain what each command does. Also the one at justlinux.com is much cleaner and makes the user that is following it breath a little.

dsegel 09-08-2004 05:05 PM

If you don't enable the High Memory Support in your kernel then it won't use more then 896MB. Not a big deal, but if you *really* want that last 100+MB of RAM to be used then you'll need to enable the option in the config file and recompile the kernel.

As for the question of why the kernel is using so much memory in the first place: it's designed that way. The kernel tries to use up as much RAM as it can by caching things that might get called. If a program needs more RAM, it will get it, even if it looks like there's none left.

michaelk 09-08-2004 06:06 PM

Quote:

Originally posted by minm
1036600
BTW according to the output of free the kernel does see the entire 1GB of memory.

minm 09-08-2004 07:45 PM

alright
thanks all :)

so i guess i don't have to update

amosf 09-08-2004 08:52 PM

Linux will use all the ram it can find. The linux attitude is it's there, you paid for it, why waste it. Cache it, buffer it, put it in a stew. Whatever.

This is what the kernel config has to say about compiling the kernel for various memory sizes - linux has the selection of 1GB (off), 4GB and 64GB...

----------------------------------------------------------------------------------------------
Linux can use up to 64 Gigabytes of physical memory on x86 systems.
However, the address space of 32-bit x86 processors is only 4
Gigabytes large. That means that, if you have a large amount of
physical memory, not all of it can be "permanently mapped" by the
kernel. The physical memory that's not permanently mapped is called
"high memory".

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

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

If more than 4 Gigabytes is used then answer "64GB" here. This
selection turns Intel PAE (Physical Address Extension) mode on.
PAE implements 3-level paging on IA32 processors. PAE is fully
supported by Linux, PAE mode is implemented on all recent Intel
processors (Pentium Pro and better). NOTE: If you say "64GB" here,
then the kernel will not boot on CPUs that don't support PAE!

The actual amount of total physical memory will either be
auto detected or can be forced by using a kernel command line option
such as "mem=256M". (Try "man bootparam" or see the documentation of
your boot loader (lilo or loadlin) about how to pass options to the
kernel at boot time.)

If unsure, say "off".
-----------------------------------------------------------------------------------------------------


All times are GMT -5. The time now is 11:15 AM.