Linode 768 - Memory Available

Hello All,

I just upgraded my Linode 512 to a Linode 768, but it shows that I only have 676 MB of memory. I am currently running Ubuntu 11.04 64bit with the kernel "Latest 2.6 Paravirt (2.6.39.1-x86_64-linode19)".

free output:

             total       used       free     shared    buffers     cached
Mem:        692644     685016       7628          0       7484     463388
-/+ buffers/cache:     214144     478500
Swap:       524284          0     524284

cat /proc/meminfo:

MemTotal:         692644 kB
MemFree:            7592 kB
Buffers:            7504 kB
Cached:           464592 kB
SwapCached:            0 kB
Active:           162016 kB
Inactive:         462660 kB
Active(anon):      76460 kB
Inactive(anon):    78264 kB
Active(file):      85556 kB
Inactive(file):   384396 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:        524284 kB
SwapFree:         524284 kB
Dirty:              3244 kB
Writeback:             0 kB
AnonPages:        152652 kB
Mapped:            23144 kB
Shmem:              2064 kB
Slab:              32056 kB
SReclaimable:      21972 kB
SUnreclaim:        10084 kB
KernelStack:        1040 kB
PageTables:         8352 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      870604 kB
Committed_AS:     603244 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       10168 kB
VmallocChunk:   34359728088 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      794624 kB
DirectMap2M:           0 kB

Is this normal or is there something that I did wrong? Or, could this be because I upgraded at the end of the month? Thanks in advance for your help!

8 Replies

The 2.6.39 line of kernels appear to be reserving a bit more memory than previous kernels at boot. free hides the memory reserved by the kernel as it will never be freed up for use by any other process.

If for some reason you need the additional memory you could roll back to a kernel that reserves less memory (such as 2.6.35.4-x86_64-linode16 for example). However, I would recommend sticking with the Latest 2.6 paravirt kernel.

-Tim

Oh alright. It's not really that I need the memory, I was just wondering where it went. Thanks for clearing that up for me. Your response time was amazingly fast. (:

64 bit also uses more and isn't really needed for a 768. Is there a reason you're using 64 bit?

@theckman:

The 2.6.39 line of kernels appear to be reserving a bit more memory than previous kernels at boot. free hides the memory reserved by the kernel as it will never be freed up for use by any other process.
Note that as of 2.6.39.1 this is only true for 64-bit kernels. The 32-bit 2.6.39.1 reserved memory is pretty much right in line with the earlier kernels.

– David

On my 32-bit system with the newest paravirt kernel this shows up:

paul@my-linode:~# free -m
             total       used       free     shared    buffers     cached
Mem:           724        682         42          0         75        425
-/+ buffers/cache:        180        543
Swap:          511         10        501

So it seems like it is either used up by the kernel or not properly reserved. Would be interesting to know whether you use 32-bit or 64-bit. uname -a or similar displays it.

@paulengstler:

On my 32-bit system with the newest paravirt kernel this shows up:

paul@my-linode:~# free -m
             total       used       free     shared    buffers     cached
Mem:           724        682         42          0         75        425
-/+ buffers/cache:        180        543
Swap:          511         10        501

So it seems like it is either used up by the kernel or not properly reserved.
I'm not sure I follow the "not properly reserved" part. It's due to the fact that the kernel is reserving the memory that you don't see it as free in user space (e.g., it's why the free total memory is only 724).

You can check the reserved memory by looking through your dmesg output for the Memory: line. While some of reserved memory is fixed overhead, part is variable by available memory (such as for page tables).

In your case, the ~45MB with the 32-bit kernel compares to the ~90MB of the OP with the 64-bit kernel. So beyond other differences in memory usage just by applications running on a 64-bit system, the 64-bit system is starting with that much less memory off the bat.

I have some other kernel numbers in the thread (which also discusses the 2.6.39 series differences) at http://forum.linode.com/viewtopic.php?t=7229 - for comparison to the first post, my 2.6.39.1 32-bit 512s have:

Memory: 509012k/532480k available (5701k kernel code, 23020k reserved, 1656k data, 412k init, 0k highmem)

which results in 497M (or 509424k) in "free" output.

– David

@paulengstler:

So it seems like it is either used up by the kernel or not properly reserved. Would be interesting to know whether you use 32-bit or 64-bit. uname -a or similar displays it.

He said 64 in the first post

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct