生活哲学

Linux中的高内存和低内存是什么?

当从 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 中什么是高内存和低内存的图1?

  1. 高内存是用户空间程序可以处理的内存部分。高内存不影响低内存。
  2. 低内存是Linux内核可以直接处理的内存部分。如果内核必须访问高端内存,内核必须首先映射到自己的地址空间。

高内存和低内存是如何使用的?

Linux 中什么是高内存和低内存的图2?

在 32 位 Linux 操作系统上,CPU 最多可以处理 4GB 内存。内存分为直接映射到内核地址空间的Low memory(也称为Normal memory)和不直接映射内核的High memory。换句话说:

  1. 内核本身(包括其运行模块,例如 Check Point 内核模块)只能使用低内存。
  2. 系统上的用户进程(任何非内核)能够同时使用低内存和高内存。

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/meminfoHighTotalHighFree 将始终是 <强>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 

相关资讯

评论

回复