创建swap

紧急扩容Swap分区

由于一个项目要上线了,发现memory 才1G, swap 是0, 这样web 跑这就不行了,于是创建swap 1G :

命令如下:

dd if=/dev/zero of=/swap-file bs=1M count=1024

mkswap /swap-file 

swapon /swap-file 


然后 free -m  就可以看到我们创建的swap 了

<think> 我们参考了多个关于Linux创建swapfile方法的引用。根据引用[1][2][3][4][5],创建swapfile的基本步骤包括: 1. 使用dd命令创建指定大小的交换文件(注意:需要root权限) 2. 设置交换文件的权限(确保安全) 3. 使用mkswap命令格式化该文件为交换空间 4. 使用swapon命令启用交换空间 5. (可选)通过/etc/fstab设置开机自动挂载 具体步骤如下: ### 步骤1: 创建交换文件 使用`dd`命令创建一个空文件,例如创建一个1GB的文件: ```bash dd if=/dev/zero of=/swapfile bs=1M count=1024 ``` - `if=/dev/zero`:输入文件,这里用零填充 - `of=/swapfile`:输出文件路径 - `bs=1M`:块大小为1MB - `count=1024`:块数量,1024个1MB块即为1GB 如果要创建更大的文件,比如16GB,则设置`count=16384`(16*1024=16384)。 ### 步骤2: 设置文件权限 为了安全,交换文件应该只有root可以读写: ```bash chmod 600 /swapfile chown root:root /swapfile ``` ### 步骤3: 格式化交换文件 使用`mkswap`命令将文件设置为交换空间: ```bash mkswap /swapfile ``` ### 步骤4: 启用交换空间 ```bash swapon /swapfile ``` ### 步骤5: 永久生效(可选) 将交换文件信息添加到`/etc/fstab`文件中,以便系统启动时自动启用: ```bash echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab ``` ### 验证 使用以下命令检查交换空间是否生效: ```bash swapon --show free -h ``` ### 调整交换倾向(可选) 如果需要调整系统使用交换空间的倾向,可以修改`/proc/sys/vm/swappiness`的值(范围0-100,默认60): ```bash # 临时修改 sysctl vm.swappiness=10 # 永久修改:在/etc/sysctl.conf中添加 vm.swappiness=10 ``` ### 注意事项 - 交换文件的大小应合理,通常建议为物理内存的1到2倍,但具体根据需求调整。 - 如果不再需要交换文件,可以使用`swapoff /swapfile`命令关闭,然后删除文件。 以上步骤综合了多个引用中的方法,并遵循Linux最佳实践[^1][^2][^3][^4][^5]。 §§相关问题§§ 1. 如何调整Linux系统使用交换空间的倾向(swappiness)? 2. 如何删除不再需要的交换文件? 3. 交换文件(swapfile)和交换分区(swap partition)有何区别?哪种更好? </think> 以下是创建 Linux swapfile 的完整方法,结合了多个引用中的最佳实践: ### 📝 创建 swapfile 的步骤 1. **创建交换文件** 使用 `dd` 命令创建指定大小的空文件(示例创建 4GB 文件): ```bash sudo dd if=/dev/zero of=/swapfile bs=1G count=4 ``` - `if=/dev/zero`:输入源(零填充) - `of=/swapfile`:输出文件路径 - `bs=1G`:块大小(1GB) - `count=4`:块数量(总大小 4GB) 2. **设置文件权限** 防止非 root 用户访问: ```bash sudo chown root:root /swapfile sudo chmod 0600 /swapfile # 仅 root 可读写[^2] ``` 3. **格式化为交换空间** 使用 `mkswap` 初始化: ```bash sudo mkswap /swapfile ``` 4. **启用交换文件** 激活 swapfile: ```bash sudo swapon /swapfile ``` 5. **永久生效(可选)** 在 `/etc/fstab` 添加配置: ```bash echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab ``` ### ✅ 验证操作 ```bash # 查看交换空间状态 free -h # 检查 swapfile 详情 swapon --show ``` 输出示例: ``` Swap: 4.0GiB 0B 4.0GiB # 新增的 swapfile 容量[^1] ``` ### ⚠️ 注意事项 1. **性能优化** - 使用 `bs=1M count=4096`(代替 `bs=1G count=4`)可获得更稳定的性能[^4] - 交换文件建议放在 SSD 而非 HDD 上 2. **容量建议** | 物理内存 | 推荐 swap 大小 | |-----------|----------------| | ≤ 2GB | 2倍内存 | | 2-8GB | 等于内存 | | >8GB | 0.5倍内存 | 3. **调整交换倾向** 修改内核参数 (默认值 60): ```bash # 临时设置 sysctl vm.swappiness=30 # 永久生效 echo "vm.swappiness=30" >> /etc/sysctl.conf ``` 值越低越少使用交换空间[^5] ### ⚙️ 扩展操作 - **调整 swapfile 大小** 1. `sudo swapoff /swapfile` 2. 重新执行 `dd` 和 `mkswap` 3. `sudo swapon /swapfile` - **彻底删除 swapfile** 1. `sudo swapoff /swapfile` 2. `sudo rm -f /swapfile` 3. 删除 `/etc/fstab` 中的对应行 > 📌 **优点**:无需调整分区表,可随时修改大小,适合云环境 > 📌 **缺点**:性能略低于专用交换分区(但对大多数场景影响小)[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值