# Linux设置虚拟内存
## Swap 分区设置教程
### 1.查看 Linux 当前分区情况
<img src="https://noteslxs.obs.cn-east-3.myhuaweicloud.com/202401231650904.png" alt="image-20240123151611518" style="zoom:80%;" />
### 2.增加swap分区
1) 关闭所有分区
```
swapoff -a
```
2) 创建要作为 Swap 分区文件
```
dd if=/dev/zero of=/var/swapfile bs=1M count=4096
```
其中 `/var/swapfile` 是文件位置,`bs*count` 是文件大下,例如bs=1M count=4096就会创建一个 4G 的文件)
Swap 合理的大小是与云服务器的物理内存有关的其中:
云服务器的内存 <= 4g:Swap 至少 4G
云服务器的内存 4~16G:Swap 至少 8G
云服务器的内存 16G~64G:Swap 至少 16G
云服务器的内存 64G~256G:Swap 至少 32G
3) 建立 Swap 的文件系统(格式化为 Swap 分区文件)
```
mkswap /var/swapfile
```
4) 启用 Swap 分区
```
swapon /var/swapfile
```
5) 查看 Linux 当前分区
```
free -m
```
![image-20240123152230393](https://noteslxs.obs.cn-east-3.myhuaweicloud.com/202401231650732.png)
6) 设置开机启动
```
echo '/var/swapfile swap swap defaults 0 0' >> /etc/fstab
```
7) swap 优化积极使用交换空间占比
```
/etc/sysctl.conf
```
添加
```
vm.swappiness=60
```
如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。使用太大的交换空间占比,可能会使程序运行缓慢,我自己设置的是60
![image-20240123153035884](https://noteslxs.obs.cn-east-3.myhuaweicloud.com/202401231650983.png)
8) 重启云服务器
```
reboot
```
9) 查看内存
```
free -m
```
![image-20240123154340680](https://noteslxs.obs.cn-east-3.myhuaweicloud.com/202401231650762.png)
```
#看看是否swappiness修改是否生效
cat /proc/sys/vm/swappiness
```
![image-20240123154658639](https://noteslxs.obs.cn-east-3.myhuaweicloud.com/202401231650451.png)