什么是交换分区?为什么要发明这种技术?

        交换分区(Swap Partition)技术是计算机用于拓展物理内存的一种技术,对早期计算机来说,物理内存是昂贵而有限的,即使在今天,物理内存的价格对很多普通人来说仍然是不可接受的,于是交换分区技术便应运而生,它通过将内存中不常用的数据写入磁盘,从而使用磁盘空间模拟内存的空间。

为什么在K8s中,要关闭计算机的交换分区功能?

        1.节点资源可预测性
       在像K8s这样的容器化应用,其在调度集群时一个相当重要的指标是节点状态的可预测性,如果一个节点在运行进程时发生了交换,原本无法运行会被重新调度的任务可能继续在节点上运行,新的任务也可能因此被调度到已经超负荷的节点上,这会导致集群性能的严重下降 。

        2.内存不足理策略失效
        交换分区会干扰集群杀死进程的策略:原本集群在内存不足时,会杀死不重要的进程,但如果开启了交换分区功能,集群会忽略不足的内存,直到交换分区也被写满,这时的集群可能不得不杀死一些关键的进程,这势必会降低整个系统的稳定性。

        3.性能下降
        现在的K8s等容器化技术多部署在虚拟机上,这些虚拟机的磁盘I/O性能本就低于直接部署的系统,交换分区功能还可能导致数据的多重缓冲写入,势必会大大降低系统的响应速度。


所以在生成环境中的K8s,一定要关闭交换分区功能。

更多推荐