ubuntu20.04重新分配内存
时间: 2025-05-28 10:38:05 浏览: 24
### 如何在 Ubuntu 20.04 上重新分配内存或调整 Swap 内存设置
#### 修改现有 Swap 文件大小
如果当前系统已经存在一个 Swap 文件,则可以通过以下方法将其调整为新的大小:
1. **禁用现有的 Swap 空间**
需要先关闭正在使用的 Swap 空间,以防止操作过程中发生冲突。
```bash
sudo swapoff -a
```
2. **删除旧的 Swap 文件**
如果已有的 Swap 文件位于 `/swapfile`,可以安全地删除该文件。
```bash
sudo rm /swapfile
```
3. **创建一个新的 Swap 文件**
使用 `fallocate` 命令快速创建指定大小的新 Swap 文件。例如,创建一个 8GB 的 Swap 文件:
```bash
sudo fallocate -l 8G /swapfile
```
4. **更改权限并初始化 Swap 文件**
设置新 Swap 文件的访问权限,并对其进行格式化以便作为 Swap 空间使用。
```bash
sudo chmod 600 /swapfile
sudo mkswap /swapfile
```
5. **启用新的 Swap 文件**
启动刚刚创建的 Swap 文件使其立即生效。
```bash
sudo swapon /swapfile
```
6. **更新 fstab 文件实现开机自启**
将新 Swap 文件的信息写入 `/etc/fstab` 中,从而让其在每次启动时自动加载。
```bash
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
```
7. **验证 Swap 是否成功配置**
可通过查看系统的 Swap 总量来确认刚才的操作是否有效。
```bash
free -h
```
#### 调整 Swappiness 参数
Swappiness 是 Linux 控制 Swap 使用频率的一个重要参数。它的取值范围是从 0 到 100,数值越高表示越倾向于将 RAM 数据转移到 Swap。
- 当前 Swappiness 值可通过如下命令查询:
```bash
cat /proc/sys/vm/swappiness
```
- 若要永久改变此值,需编辑 `/etc/sysctl.conf` 文件,在其中添加或者修改对应的行:
```bash
vm.swappiness = 10
```
- 让改动即时生效可运行以下指令:
```bash
sysctl -p
```
以上过程涵盖了从完全移除原有 Swap 至重建更大容量版本以及优化系统对于虚拟内存利用策略的所有必要步骤[^1][^2][^3]。
```python
# 示例 Python 脚本用于自动化部分流程 (仅作演示用途)
import os
def adjust_swap(size_gb, swappiness_value):
commands = [
"sudo swapoff -a",
f"sudo rm -rf /swapfile",
f"sudo fallocate -l {size_gb}G /swapfile",
"sudo chmod 600 /swapfile",
"sudo mkswap /swapfile",
"sudo swapon /swapfile",
f"echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab",
f"echo 'vm.swappiness = {swappiness_value}' | sudo tee -a /etc/sysctl.conf",
"sudo sysctl -p"
]
for cmd in commands:
result = os.system(cmd)
if result != 0:
print(f"Error executing command: {cmd}")
break
adjust_swap(8, 10) # Example call to set an 8GB swap with a swappiness value of 10.
```
阅读全文
相关推荐


















