在VMware ESX设置上,这些选项有什么区别?:
- 具有1GB RAM和1GB交换分区的Linux VM,并且该VM使用1.5 GB内存
- 具有1GB RAM且没有交换分区的Linux VM,并且该VM使用1.5 GB内存
我的意思是,在两种情况下都使用交换。
- 在第一次交换中完成了对Linux交换分区的操作
- 在第二种情况下,VMware将交换512MB到VMware存储池。
那么给Linux VM一个交换分区有什么意义吗?
在VMware ESX设置上,这些选项有什么区别?:
我的意思是,在两种情况下都使用交换。
那么给Linux VM一个交换分区有什么意义吗?
Answers:
你打算做什么/proc/sys/vm/overcommit_memory
?从内核文档中:
0 - Heuristic overcommit handling. Obvious overcommits of
address space are refused. Used for a typical system. It
ensures a seriously wild allocation fails while allowing
overcommit to reduce swap usage. root is allowed to
allocate slightly more memory in this mode. This is the
default.
1 - Always overcommit. Appropriate for some scientific
applications.
2 - Don't overcommit. The total address space commit
for the system is not permitted to exceed swap + a
configurable percentage (default is 50) of physical RAM.
Depending on the percentage you use, in most situations
this means a process will not be killed while accessing
pages but will receive errors on memory allocation as
appropriate.
因此,如果您使用1,则没有区别。如果您使用的是2,并且没有linux交换文件,那么没有进程将能够分配512M(虚拟)内存。结果不清楚为0。
编辑:从http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommit,这是0的工作方式:
试探性过度使用尝试计算出如果系统回收了所有可能的内存,并且没有其他进程使用比当前更多的RAM,那么系统可以为您提供多少内存;如果您要求的更多,则拒绝您的分配。具体而言,理论上的“可用内存”数是通过将可用交换空间,可用RAM(如果不是root用户,则为1 / 32nd)以及标记为可回收的统一缓冲区高速缓存和内核数据使用的所有空间相加而得出的(减去一些保留页)。
因此,它也在计算中使用交换。通常,我会遵循以下RHEL建议:
M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
S = M *2
Else
S = M + 2
cat /proc/sys/vm/overcommit_memory
返回0
。您对overcommit_memory
价值和掉期/不掉期有何建议?
交换分区可能会更快,尤其是在根磁盘几乎已满且您无法在没有碎片的情况下一步创建交换文件的情况下,更不用说文件系统可能会产生的开销,并且在可能的情况下还会产生类似的情况LVM。
但是,如果将33%的内存需求保留在磁盘上,则两台计算机的性能都会受到影响。
请查看以下链接-https : //help.ubuntu.com/community/SwapFaq
基本上,除非您需要休眠或使用的内存多于分配给VM的内存,否则交换分区没有明显的优势。
我多年没有在任何Linux机器上使用交换分区/文件了。