参考文档地址
设置交换空间的大小设置和比例设置
我购买了一台1核2G的阿里云主机。因为使用过程中部署的环境很多。 2G内存不能用了。我查了相关资料,找到了虚拟内存交换区(交换分区)的内容。这里记录一下设置过程:
of=/表示在/var/目录和/opt/image/目录下创建文件,那么后面所有包含/的操作都要改为/opt/image/swap
# dd if=/dev/zero of=/swapfile bs=1k count=4096000
创建交换文件
# mkswap /swapfile
激活交换文件
/
问题:/swap/swap: 0644, 0600 。
解决方案: sudo chmod 600 交换
检查SWAP信息是否正确
# swapon -s
将其添加到fstab文件中以在系统启动时自动启动。
注意这里使用的是文件的默认路径,即/var/。如果上述操作中的文件不在/var/目录下,则/var/下面的文件也必须进行相应修改。
# echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
使用free命令检查4G交换分区是否生效。
# free -m
或者,检查文件
# grep SwapTotal /proc/meminfo
释放SWAP文件
# swapoff /swapfile
删除交换文件
# rm -fr /swapfile
物理内存与虚拟内存比例
交换空间的作用可以简单理解为:当系统的物理内存不够时,需要释放物理内存中的一部分空间,以供当前运行的程序使用。释放的空间可能来自一些长时间未运行的程序。释放的空间暂时保存在交换空间中。当这些程序即将运行时,保存的数据将从交换区恢复到内存中。这样,当物理内存不足时,系统总是会执行swap。
也就是说,Linux 会使用部分硬盘作为交换分区来进行进程调度——进程是正在运行的程序——并将当前未使用的进程调整为“wait()”甚至“睡眠”。使用它,然后将其调整为“()”,休眠进程就会躺在SWAP分区中休眠,为“”进程释放内存。
如果内存足够大,那么此时Linux不应该过多使用交换分区,可以修改该值。
当为0时,表示最大限度地使用物理内存,然后是交换空间。
当为100时,表示主动使用交换分区,及时将内存中的数据移至交换空间。
在微软、Red Hat等系统中,默认值是60。如果Linux服务器的内存很小,比如小于4G,那么就不需要改变这个值,因为毕竟,考虑到内存不够,需要借用swap。 。相比很多服务器,目前建议设置在25以下的值。如果内存超过8G,当前内存使用量还有剩余,建议直接改成0,这样可以最大限度的利用物理内存。减少硬盘负载,同时加快速度。使用“时也要避免出现
错误“慢”这样的错误。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210520150203638.png)
关于操作相关命令:
查看当前设置值:
修改swappiness的值:
使swappiness值在修改后,重启不会失效:
在最后一行加上"vm.swappiness=0"
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。