当从 CLI 运行 show module status 命令或在模块上运行 cat/proc/meminfo 命令时,输出列表High memory 和 Low memory 的值:
total: used: free: shared: buffers: cached: Mem: 1049051136 765775872 283275264 0 158441472 376979456 Swap: 1036115968 0 1036115968 MemTotal: 10244636 kb MemFreeShare: 10244636 kB 0 kB 缓冲区:154728 kB 缓存:368144 kB。 HighTotal:131072 kB HighFree:3064 kB LowTotal:893392 kB LowFree:273572 kB
那么你知道Linux中什么是High memory和Low memory吗?通过以下文章了解 TipsMake.com!
什么是高内存和低内存?
- 高内存是用户空间程序可以处理的内存部分。高内存不影响低内存。
- 低内存是Linux内核可以直接处理的内存部分。如果内核必须访问高端内存,内核必须首先映射到自己的地址空间。
高内存和低内存是如何使用的?
在 32 位 Linux 操作系统上,CPU 最多可以处理 4GB 内存。内存分为直接映射到内核地址空间的Low memory(也称为Normal memory)和不直接映射内核的High memory。换句话说:
- 内核本身(包括其运行模块,例如 Check Point 内核模块)只能使用低内存。
- 系统上的用户进程(任何非内核)能够同时使用低内存和高内存。
High memory 和 Low memory 可能发生的情况
由于内存限制低,即使有很多空闲内存也可以调用OoM(Out of Memory killer)。这种情况发生在Low memory用完,内核需要分配更多内存的时候。但是,可能会发生一种不寻常的情况,即有许多高位内存空缺,但所有低位内存都是空的。更常见的是,高内存和低内存都接近于零。
高内存通常从 896MB 以上开始。但是,在 Blue Coat X 系列机箱上,限制会有所不同。
请注意,在64位操作系统上,由于虚拟内存地址空间过多,Low memory应该等于Total记忆。从 CLI 运行 show module status 命令时,High memory 和 Low memory 值不会出现。
Slot 14: SDRAM 1 Size 1048576(KB) SDRAM 2 Size 1048576(KB) SDRAM 3 Size 1048576(KB) SDRAM 4 Size 1048576(KB) SDRAM Total Size 4194304 (KB) 保留内存 602536(KB) 总内存 3591768(KB) 已用内存 453144(KB) 可用内存 3138624(KB) 共享内存 0(KB) 缓冲内存 139340(KB) 缓存内存 187200(KB) 内存利用率 3.52%代码>
在模块上运行 cat/proc/meminfo,HighTotal 和 HighFree 将始终是 <强>0:
# cat/proc/meminfo MemTotal: 3591768 kB MemFree: 135968 kB Buffers: 378312 kB Cached: 1754432 kB SwapCached: 68 kB Active: 965532 kB Inactive: 2080476 kB HighTotal : 0 kB HighFree: 0 kB
评论