实验主机由此站点提供
百度百科:交换空间
交换空间(Swap space)是一个计算机编程术语,在物理内存(RAM)被充满时被使用。如果系统需要更多的内存资源,而物理内存已经充满,内存中不活跃的页就会被移到交换空间去。虽然交换空间可以为带有少量内存的机器提供帮助,但是这种方法不应该被当做是对内存的取代。交换空间位于硬盘驱动器上,它比进入物理内存要慢
交换空间可以是一个专用的交换分区(推荐的方法),交换文件,或两者的组合。
交换空间的总大小应该相当于你的计算机内存的两倍和 32 MB这两个值中较大的一个,但是它不能超过 2048 MB(2 GB)。
有三种方法增加交换空间:添加一块新的硬盘驱动器、通过 NFS 使用交换空间和在一个现有的分区上创建一个交换文件。
提示:如下案例仅供参考
查看系统
cat /etc/centos-release
CentOS Stream release 8
检查是否已经配置交换空间;如果Swap 为0,则当前没有设置交换空间,或当前没有激活/启动/使用交换空间
free -h
total used free shared buff/cache available
Mem: 7.6Gi 176Mi 5.2Gi 58Mi 2.2Gi 7.1Gi
Swap: 0B 0B 0B
分区设置大小建议
物理内存 | 交换空间 |
---|---|
<= 2G | 2倍物理内存 |
2 - 8 G | 1倍物理内存 |
8+ G | 4+ G (建议1倍物理内存) |
代码如下:
sudo fallocate -l 4G /swapfile
ls -lh /swapfile
如果是root可以sudo命令
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon --show
将fstab备份,为fstab.bak名称的文件,然后设置开机启动交换空间
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo vim /etc/sysctl.conf
# 值为0-100,值越大越有限使用,默认为60
vm.swappiness=60
交换空间为磁盘设置为虚拟内存作为介质使用,由于内存和磁盘的效率差异过大,不建议长期将交换空间作为内存占用;交换空间和真实内存比较上,效率差异也是蛮大的。