On a 32-bit Linux based operating system, CPU can address maximum of 4GB of memory. The memory is further divided in Low memory (or Normal memory), which is directly mapped to kernel's part of the address space and High memory, which has no direct kernel mapping. In other words:
- The kernel itself (including its active modules, e.g. Check Point kernel modules) can only make use of LOW memory.
- User processes on the system (anything that is not kernel itself) can potentially make use of LOW and HIGH memory.
Because of this Low memory limitation OoM (Out of Memory killer) can be invoked even if there is a plenty of free memory in total. This situation occurs when the Low memory is exhausted and kernel needs to allocate more memory. However, it is a highly unusual situation to have a lot of high memory free but run out of low memory. More common is to see high AND low memory heading towards zero.
High memory normally starts above 896MB. However on a Blue Coat X-Series chassis, the thresholds are different.