ECS 默认没有启用虚拟内存或SWAP会有什么影响吗?
- jesuszhu_
只要内存没有了,就一定会OOM。因为没法swap
- 大财主
在使用ECS Windows服务器时,发现默认没有启用虚拟内存;Linux默认未配置SWAP分区,担心会影响ECS服务器性能。
Swap分区或虚拟内存文件,是在系统物理内存不够用的时候,由系统内存管理程序将那些很长时间没有操作内存数据,临时保存到Swap分区虚拟内存文件中,以提高可用内存额度的一种机制。当那些程序要再次重新运行时,会再从Swap分区或虚拟内存文件中恢复之前保存的数据到内存中。 相关操作会导致额外的IO开销,特别是,如果内存使用率已经非常高,而同时IO性能也不是很好的情况下,该机制其实会起到相反的效果:不仅系统性能提升较小(因为内存使用率已经非常高了),而且由于频繁的内存到SWAP的切换操作,会导致产生大量额外的IO操作,导致IO性能进一步降低,最终反而降低了系统总体性能。 同时,为了保证服务器数据安全性和可靠性,阿里云ECS云磁盘使用了分布式文件系统作为云服务器的存储,对每一份数据都进行了强一致的多份拷贝。但是,该机制在保证用户数据安全的同时,由于3倍增涨的IO操作,会导致本地磁盘的存储性能和IO性能要弱一些。 综上,为了避免当系统资源不足时进一步降低ECS云磁盘的IO性能,所以ECS Windows默认没有启用虚拟内存,Linux默认未配置SWAP分区。
建议设置 SWAP,否则在内存耗尽时会产生各种异常问题。
设置后仍需关注物理内存,SWAP 用的多了会影响业务性能。