• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

为什么很多Linux软件的安装教程都要求关闭swap

swap是内存不够用的时候,临时用一点儿磁盘空间代替内存。出现的问题,就是程序在用内存的时候,可能会用到swap,相应的IO能力下降。关掉就不会出现这个问题,但是关掉以后,内存超出设定值,程序就可能会直接崩掉。

一、为什么很多Linux软件的安装教程都要求关闭swap

swap是内存不够用的时候,临时用一点儿磁盘空间代替内存。

出现的问题,就是程序在用内存的时候,可能会用到swap,相应的IO能力下降。

关掉就不会出现这个问题,但是关掉以后,内存超出设定值,程序就可能会直接崩掉。崩掉的结果,好一点儿的会重启,差一点儿的会崩溃,看具体是什么程序。

如果只是web这样的程序,大多都是k8s或者是docker这样的集群、容器,崩几个节点无所谓。

如果是mysql这样的数据库,一般也不用容器,因为根本就不考虑mysql挂掉自动重启的使用状况。

mysql一般都设置有内存使用上限,设置使用内存的75%或者80%,不能让它满了,用到swap反而会下降mysql性能。

也还要看机器配置,Linux的内存机制是尽量多的使用内存。swap在一般运行时占用情况不多。但是有些内存很小的arm板子没有swap很多软件在编译时会因为内存不足导致编译报错而中断。如果内存非常大的话可以关闭swap,配置一般还是推荐保留一点或者代替运存。

延伸阅读:

二、swap的主要功能

(1)、当物理内存不足的时候,将某些在内存中所占用的程序暂时移动到swap当中,让物理内存可以被需要的程序来使用;
(2)、Linux会将内存中不常访问的数据保存到swap中,当系统需要再次调用的时候,就把它从swap加载到内存;
(3)、如果你的主机支持电源管理模式,也就是说,你的Linux主机系统可以进入”休眠”模式的话,那么,运行当中的程序状态则会被记录到swap中去,以作为”唤醒”主机状态的依据;
(4)、在某些程序运行时,本来就会利用swap特性来存放一些数据,比如在装Oracle11g的时候会检查swap size。

相关文章