Linux noob问题:
如果我有500MB的RAM和500MB的交换空间,那么操作系统和进程是否可以使用1 1GB的内存?
换句话说,程序和操作系统可用的内存总量是物理内存大小和交换大小的总和吗?
我正在尝试找出要查询的SNMP计数器,但首先需要了解Linux如何更好地使用虚拟内存。
谢谢
发布于 2009-10-24 05:57:11
是的,这基本上是正确的。实际的数字可能(非常)稍微低一些,但是对于所有的意图和目的,如果你有x物理内存和y虚拟内存(在linux中是交换的),那么你就有x + y内存可用于操作系统和在操作系统下运行的任何程序。
发布于 2009-10-24 08:24:52
实际上,它在本质上是正确的,但你的“虚拟”内存并不驻留在你的“物理内存”旁边(正如Matthew Scharley所说的那样)。
您的“虚拟内存”是一个抽象层,涵盖了“物理”(如RAM中)和“交换”(如硬盘中,当然与RAM一样多的物理内存)内存。
虚拟内存本质上是一个抽象层。您的程序总是寻址一个“虚拟”地址,根据数据所在的位置,您的操作系统会将该地址转换为RAM中的地址或磁盘上的地址(需要先加载到RAM中)。因此,您的程序永远不必担心内存不足。
发布于 2009-10-24 06:00:14
虽然这在很大程度上是正确的,但也不是完全正确的。对于特定的进程,运行该进程的环境可能会限制进程的可用内存。还要检查ulimit -v的输出。
https://stackoverflow.com/questions/1616098
复制相似问题