**文章引用来自:**[https://a-hxin.cn/archives/1067/](https://a-hxin.cn/archives/1067/)
# 给CentOS 增加交换空间(Swap)
**主要是解决物理内存不够问题**
## 一、查看状态
**查看内存占用情况:**
```
free -h
```
**使用 top 或 htop 检查其他进程是否占用过多内存,特别是在没有交换空间的情况下,内存较紧张时,其他进程可能影响你的服务器启动。**
```
top
```
**可以通过 kill 命令 来关闭进程,减少服务器内存占用:**
```
kill
```
## 二、增加交换空间(Swap)
**由于系统没有交换空间(Swap),你可以为系统添加一个交换文件来扩展虚拟内存。即使你的物理内存不足,交换空间可以提供额外的缓冲,避免程序崩溃。**
### 2.1 创建交换文件
**创建一个 2GB 的交换文件:**
```
sudo fallocate -l 2G /swapfile
```
**如果 fallocate 不可用,可以使用 dd 命令:**
```
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
```
### 2.2 设置交换文件权限
**确保交换文件的权限是安全的,只有 root 用户可以访问:**
```
sudo chmod 600 /swapfile
```
### 2.3 设置交换空间
**将文件设置为交换空间:**
```
sudo mkswap /swapfile
```
### 2.4 启用交换空间
**启用交换文件:**
```
sudo swapon /swapfile
```
### 2.5 自动挂载交换文件
**为了在重启后自动启用交换空间,需要编辑 /etc/fstab 文件:**
```
sudo nano /etc/fstab
```
**在文件末尾添加以下行:**
```
/swapfile none swap sw 0 0
```
### 2.6 设置虚拟内存使用优先级
**Swappiness的范围是从0到100,较低的值会使系统尽量避免使用swap,而较高的值会让系统更积极地使用swap**
```
vim /etc/sysctl.conf
/etc/sysctl.conf
```
**虽然提高swappiness可以使系统更倾向于使用swap,但这并不意味着所有应用都会“直接走虚拟内存”。相反,这只是一个策略上的调整,帮助系统更好地平衡内存和swap的使用。**
最后修改:2025 年 02 月 23 日
© 允许规范转载