Tuesday, August 16th, 2011
I recently came across the following disconcerting message in my kernel’s boot output:
Truncating RAM at 40000000-5fffffff to -57ffffff (vmalloc region overlap).
...
Kernel command line: console=ttySC0,115200 mem=512M
...
Memory: 384MB = 384MB total
Which is the kernel’s way of saying “I understand there may be some RAM here – but I’m not going to use it all”. So what is the cause of this warning? And what do we need to do to reclaim that lost RAM?
(more…)
Tags:config_highmem, fixaddr, high memory, highmem, Ignoring RAM at, ioremap, iotable_init, IO_ADDRESS, kernel memory layout, kernel memory split, low memory, lowmem, reclaim lost RAM, static dynamic mappings, Truncating RAM at, virtual kernel memory layout, vmalloc, vmalloc region overlap, VMALLOC_END, vmalloc_start
Posted in Linux, Memory | No Comments »
Sunday, January 16th, 2011
Linux manages it’s physical memory in clever and often efficient ways – as a result it’s not uncommon to only think about how the memory in your system is being used when we run into performance issues. And this is where the frustration can begin – without fully understanding how memory is managed, it can be very difficult to answer some seemingly straight-forward questions like ‘How much free memory do I have?‘ or ‘How much memory is this process taking?‘. There are a lot of complications and as a result performance monitoring can be a challenge.
I was determined to fully understand precisely what the various memory figures report by the kernel mean and understand – on a practical level – the implications of Linux’s memory management on our performance sensitive applications. In this multi-part post we’ll attempt to debunk many of the mysteries of Linux’s memory.
(more…)
Tags:bootmem, cat proc meminfo, dentry cache, how much free memory, Init, memory, memory available, memtotal, performance, pid hash, qemu, reserved memory, reserve_node_zero, versatilepb, zone allocator
Posted in Linux, Memory | 2 Comments »