Linux系统调优04-swap交换分区
1.原理
1.1在内存不足的情况下会使用SWAP交换分区
2.2交换分区原理:
- 防止内存使用消耗殆尽的机制。
- 当Linux系统发现物理内存使用量不足时,就会选择内存中较长时间内没有被访问和更新的内存数据,将这些内存数据临时写入SWAP中,并释放物理内存中相应的空间,提供给系统中当前运行的程序使用。
- 当某个程序要使用SWAP中的数据时,系统会再次从SWAP中读取之前保存的数据并写回物理内存中
2. 如何定义使用SWAP 交换分区
2.1./proc/sys/vm/swappiness文件:配置何时使用swap分区
swappiness文件可以设置范围0-100,当设置不同值时,SWAP策略的差异性就会出现
2.2.查看swappiness值
第一种方法:
- cat /proc/sys/vm/swappiness
#大多数Linux发行版默认swappiness值为60
第二种方法:
- sysctl vm.swappiness
linux的基本默认设置为60,也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能。
举例: 某笔记本电脑有 16 GB 的内存和 8 GB 的交换空间。如果我在内核参数中使用 60 swappiness,那么在使用大约 6 GB (16G*40% == 6.4G)的内存后,我的机器开始使用交换,这不必要地使我的应用程序变慢。
3.改变swappiness值
3.1.临时更改swappiness值
临时调整的方法如下,我们调成10:
方法1;
[root@mydb ~]# sysctl vm.swappiness=10
vm.swappiness = 10
方法2:
[root@mydb ~]# echo 10 > /proc/sys/vm/swappiness
新值会立即使用,无需重新启动。 这只是临时调整的方法,重启后会回到默认设置的
3.2.永久更改swappiness值
要想永久调整的话,需要在/etc/sysctl.conf修改,加上:
[root@mydb ~]# vim /etc/sysctl.conf
#加上
vm.swappiness=10
激活设置
[root@mydb ~]# sysctl -p
4.在 Linux 中清除SWAP
语法:
swapoff -a && swapon -a
命令的解释:
- swapon命令用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存。
- swapoff命令用于关闭指定的交换空间(包括交换文件和交换分区)。swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。
4.1. swapon命令解释
语法:
swapon (选项) (参数)
选项:
- -a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区;
- -h:显示帮助;
- -p<优先顺序>:指定交换区的优先顺序;
- -s:显示交换区的使用状况;
- -V:显示版本信息。
4.2. swapoff命令解释
语法:
swapoff (选项) (参数)
选项:
- -a:关闭配置文件“/etc/fstab”中所有的交换空间。
原文链接:https://blog.csdn.net/hhd1988/article/details/128020048