详解Linux中如何释放交换空间swap
目录
- 一、Linux内存机制简单介绍
- 二、如何释放交换内存
一、Linux内存机制简单介绍
直接从物理内存读写数据要比从硬盘读写数据要快的多(硬盘磁道寻址),因此,我们希望所有数据的读写都在内存完成,但是内存大小是有限的,并且内存价格高于硬盘价格,于是就有了物理内存与虚拟内存的概念。
物理内存:系统硬件提供的内存大小,是真正的内存,可用 free -h 查看内存的使用情况。
交换内存Swap:交换内存swap是linux下一个虚拟内存的概念,它是利用磁盘空间虚拟出的一块逻辑内存,用于解决物理内存容量不足的问题。可查看swapon -s查看交换内存的挂载盘。
二、如何释放交换内存
1. 设置swappiness值为0,表示尽可能不使用交换内存
(1)临时设置方案,重启后不生效
# 设置vm.swappiness为0 sysctl vm.swappiness=0 # 查看swappiness值 cat /proc/sys/vm/swappiness
(2)永久设置方案,重启后仍然生效
vi /etc/sysctl.conf # 添加 vm.swappiness=0
者直接写入
echo 'vm.swappniess=0'>>/etc/sysctl.conf
2.释放交换分区
关闭交换分区的前提:
首先要保证内存剩余量要大于等于swap使用量,否则会宕机!因为根据内存机制,swap分区一旦释放,所有存放在swap分区的文件都会转存到物理内存上。然后再通过重新挂载swap分区完成释放swap。
(1)查看内存剩余情况
free -h

(2)查看交换分区的挂载盘
swapon -s

(3)关闭挂载分区(彻底关闭swap)
swapoff /dev/dm-1
注意:前提是swap使用小于空闲内存,足够将swap内存转存到物理内存中,否则会宕机
(4)再次查看交换分区的挂载情况
swapon -s
(5)重新开启swap挂载
如果不想彻底关闭分区,用命令swapon /dev/dm-1(需要换成自己的挂载分区) 打开即可
swapon /dev/dm-1
3.定时释放交换分区
如果系统内存确实不足,不想禁用交换分区时,可以在2的基础上改进,设置定时释放交换分区
(1)查看交换分区的挂载情况
# 查看交换分区挂载的位置,假设此处查看的结果为 /dev/dm-1 swapon -s
(2)编写释放交换分区的脚本(其实就是将2的步骤组合起来)
#!/bin/bash #关闭所有交换空间,Linux会自动将swap内容转到内存中 swapoff /dev/dm-1 #开启交换空间 swapon /dev/dm-1 #输出 echo "释放完毕"
(3)设置定时任务(假设定时文件存放在/home/freeswap.sh)
编写 /etc/crontab,并添加定时执行脚本的任务
vi /etc/crontab
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # 每天凌晨1点释放交换空间 0 1 * * * root /home/freeswap.sh
栏 目:其它服务器
下一篇:Kubernetes中Nginx服务启动失败排查流程分析(Error: ImagePullBackOff)
本文标题:详解Linux中如何释放交换空间swap
本文地址:https://zz.feitang.co/server/30065.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





