在云主机上更新PHP的composer的时候, 一直报错, 内存不够. htop看了一下, 一共才900多M的内存, 跑了很多软件, 已经占用了700M了.
没办法, 不能为了软件升个级就再买CPU吧. 只好使用交换内存了.
记录如下:
检查系统是否打开了交换内存. 一般没有.
1
sudo swapon -s
创建一个交换文件, 用于交换, 大小自定. 我设的是物理内存的2倍. 文件地址随意.
1
2sudo fallocate -l 2G /swapfile
chmod 600 /swapfile现在让这个文件可以用作交换内存.
1
sudo mkswap /swapfile
打开交换内存
1
sudo swapon /swapfile
现在再检查一下交换内存是否打开(参见步骤1)
如果想要永久生效, 就是重启也有效, 需要设置 /etc/fstab 文件
1
echo '/swapfile none swap sw 0 0' >> /etc/fstab
设置swappiness参数, 它表示在什么情况下使用交换内存. 取值在0-100之间, 表示在启用交换内存前, 物理内存空间的占比.
那么:
- 0: 表示关闭交换内存
- 1: 最小数量的交换内存, 但并不完全关闭
- 10: 比较推荐的值, 这样保证系统有足够的内存, 并且能保证性能.
- 100: 积极的使用交换内存. (没有使用过这个值)
设置方法:1
2
3
4sudo vi /etc/sysctl.conf
add content
vm.swappiness=10
exit vim, 现在使它生效.
1 | sudo sysctl -p |
到这一步, 已经完成了交换的设置.