小内存Linux开启交换区支撑大内存应用

1446 篇文章 12 订阅
1446 篇文章 7 订阅

阿里云腾讯云成本不断下降的时代,许多个人都拥有一台相对来说低配的主机,内存可能是256M,512M,1G,或大一些到2G。在跑一些高内存使用的应用时,可能会应用崩掉,OOMKiller出来kill掉关键进程的情况,一定程度上配置交换区可以环境这种问题,交换区位于磁盘上,Linux负责在内存使用过高的时候,把低频数据写入交换区,从而让正在执行的应用获得需要的资源,这是一种空间换时间的策略,用慢的磁盘设备空间换取了降低资源不足导致应用崩掉的概率。在小内存硬件下运行数据库服务,大数据应用,配置交换区是一种比较合理的选择。

交换区的大小设置有各种说法,一般的说法都是

交换区大小 = (0.75 ~ 2) * 物理内存大小

0.75 ~ 2具体的选择可以按实际情况决定,其实这也不是一个绝对的值,比如对于128M内存的设备,交换区设置为1G也无不可,具体还是看场景而定。此外,抛开作为服务器使用的设备,对于桌面用户来说,交换区是实现休眠所必须的。

交换区的设置可以通过划分专用磁盘分区或者以专用文件的形式进行,如果可以控制系统的安装过程,那么可以通过事先规范交换分区的形式设置交换,而云环境中获取的主机,似乎通过交换文件显得更加简单。至于这两种形式是否有性能区别?也许吧,但是应该微乎其微,查看资料,发现ArchLinux的WiKi中也提及这两者没有性能差异。

通过配置交换文件开启交换区的方法:

  1. 分配交换文件的磁盘存储空间,创建交换文件

    fallocate -l size swap-file-path

size为交换文件的大小,比如2G, 4G
swap-file-path为交换文件的位置,交换文件位置没有特别的要求,按需指定即可,比如/var/swapfile

  1. 最小化权限

    chmod 600 swap-file-path

  2. 格式化交换文件,创建交换区

    mkswap swap-file-path

  3. 立即激活使用交换文件

    swapon swap-file-path

现在可通过

free -m

swapon -s

查看交换空间

  1. 设置开机自动使用交换文件
    在文件/etc/fstab中加入

    swap-file-path none swap sw 0 0

当然,交换区并不是内存的替代品,如果应用需要,还是应该优先升级内存容量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值