centos 快速设置 swap分区

本文介绍了Linux CentOS系统设置Swap大小的方法。Swap值一般在安装系统时设置为内存两倍,使用中若过小可添加。通过free -m命令查看当前大小,经创建空间、设置为Swap分区文件、激活等步骤添加,还给出实战命令,最后说明不再需要时的清理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux centos 如何设置swap大小?

swap的值都是安装系统的时候设置好的,一般设置为内存的两倍大小。使用过程中发现swap值过小只能添加。
用free -m 命令查看当前swap大小

1、使用下面的命令创建2G的空间

dd if=/dev/zero of=/var/swap bs=1024 count=2048000


if 表示infile,of表示outfile,bs=1024代表增加的模块大小,count=2048000代表2048000个模块,也就是2G空间


2、将目的文件设置为swap分区文件


mkswap /var/swap


3、激活swap,立即启用交换分区文件


mkswap -f /var/swap


free -m查看swap已经增加了,但这只是临时性的,如果机器重启会失效


4、vi /etc/fstab
最后一行添加
/var/swap swap swap defaults 0 0
重启或free -m测试 swap添加成功

下面是实战命令:


[root@host ~]# free -m


total used free shared buff/cache available
Mem: 1006 381 190 42 434 427
Swap: 259 94 165


[root@host ~]# dd if=/dev/zero of=/var/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 8.71197 s, 241 MB/s


[root@host ~]# mkswap /var/swap
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=941931fe-683b-4082-a6db-82bb741f77e5


[root@host ~]# mkswap -f /var/swap
mkswap: /var/swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=17a9a21e-67d2-4343-b95d-d8958814c334


[root@host ~]# swapon /var/swap
swapon: /var/swap: insecure permissions 0644, 0600 suggested.


[root@host ~]# free -m
total used free shared buff/cache available
Mem: 1006 388 65 42 552 417
Swap: 2259 94 2165


[root@host ~]# cat /proc/swaps
Filename Type Size Used Priority
/swap file 266236 96512 -2
/var/swap file 2047996 0 -3
[root@host ~]# vim /etc/fstab


最后一行添加
/var/swap swap swap defaults 0 0


如果不再需要swap,可以清理该分区: 
[root@mysql01 var]# swapoff /var/swap

<think>嗯,用户现在明确询问不配置swap分区CentOS 7.9系统性能的影响,这需要结合Linux内存管理机制来深入分析。从对话历史看,用户之前已经了解过可以跳过swap分区安装,现在更关注实际运行时的后果。 用户可能是个系统管理员,正在为服务器做精简部署。ta引用的材料显示接触过阿里云ECS(无swap默认配置)和2TB磁盘分区操作,说明有实际运维经验。深层需求可能是想评估在特定场景下完全依赖物理内存的可行性。 需要重点解释三个层面:一是内存耗尽时的系统行为差异,二是内核机制对swap的隐性依赖,三是不同负载下的表现对比。特别要注意引用[1]中提到的云服务器实例——那台3.7GB内存的机器没swap时,free命令显示available内存还有3.4G,这种案例很适合作为讨论基准。 技术细节上要强调OOM Killer的触发逻辑,毕竟这是最直接的性能影响点。vm.swappiness参数也得提,虽然没swap分区时它无效,但用户可能混淆这个概念。另外引用[3]提到的"手工配置分区"步骤正好佐证安装时可跳过swap,这个细节可以自然融入回答。 突然想到个矛盾点:用户引用[2]在操作2TB磁盘分区,如果真要彻底规避swap,应该建议ta把分区方案改成LVM,方便后期补swap文件。不过当前问题聚焦性能影响,这个扩展点可以放在"后续添加"的相关问题里。</think>在 CentOS 7.9 中不配置 **swap 分区**会对系统性能产生显著影响,具体表现为以下方面: --- ### 一、内存耗尽时的系统行为 1. **触发 OOM Killer** 当物理内存(RAM)耗尽且无 swap 空间时,内核会强制终止占用内存最多的进程(通常是关键应用或服务),导致服务意外中断[^1]。例如: ```bash dmesg | grep -i "killed process" # 查看被 OOM Killer 终止的进程 ``` 2. **系统稳定性下降** 突发内存高峰(如批量数据处理、高并发请求)可能直接引发系统崩溃或僵死(hang),而非通过 swap 缓冲。 --- ### 二、内核机制的性能影响 1. **内存回收效率降低** Linux 内核依赖 swap 空间实现 **页面置换**(Page-Out): - **无 swap**:内核只能通过 `drop_caches` 强制释放缓存,或终止进程。 - **有 swap**:可将低频访问的**匿名页**(Anonymous Pages)换出到磁盘,保留高频缓存。 2. **swappiness 参数失效** 即使设置 `vm.swappiness=0`(倾向保留文件缓存),若无 swap 分区,内核**无法换出匿名页**,仍可能因内存不足触发 OOM。 --- ### 三、不同场景下的性能对比 | **场景** | **有 swap 分区** | **无 swap 分区** | |------------------------|--------------------------------------|--------------------------------------| | **内存充足时** | 无性能影响 | 无性能影响 | | **内存中度使用** | swap 轻微读写,性能波动小 | 可能频繁回收缓存,I/O 延迟增加 | | **内存耗尽时** | 通过 swap 缓冲,服务降级但维持运行 | 进程被强制终止,服务中断 | | **休眠(Hibernate)** | 支持休眠到磁盘 | **无法休眠**(依赖 swap 存储内存镜像) | > 💡 **经验建议**: > 即使物理内存充足(如 16GB+),**仍建议保留至少 1GB swap**。这能提供内存耗尽时的缓冲,避免 OOM Killer 误杀关键进程[^1]。 --- ### 四、替代方案:使用 swap 文件 若安装时未分配 swap 分区,可通过 **swap 文件**动态添加(无需新增磁盘分区): ```bash # 1. 创建 1GB 的 swap 文件 sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 status=progress # 2. 设置权限并格式化 sudo chmod 600 /swapfile sudo mkswap /swapfile # 3. 启用 swap sudo swapon /swapfile # 4. 永久生效(写入 /etc/fstab) echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab ``` 验证结果: ```bash free -h # 查看 Swap 是否生效 ``` --- ### 总结:不设 swap 分区的风险 | **影响类型** | **后果** | |--------------------|--------------------------------------------------------------------------| | **可用性** | 内存耗尽时服务崩溃概率显著增加 | | **性能** | 高频内存回收降低 I/O 效率,突发负载无缓冲 | | **运维复杂度** | 需严格监控内存使用,否则故障难以追溯 | | **功能缺失** | 不支持休眠(Hibernate)功能 | > 📌 **结论**:**生产环境强烈建议配置 swap**(分区文件)。对于内存 >8GB 的服务器,可设置较小 swap(1-2GB)作为安全缓冲;内存 <4GB 的场景必须配置[^1][^3]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g-Jack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值