TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

Linux交换分区(swap)创建与管理完全指南

2025-07-30
/
0 评论
/
2 阅读
/
正在检测是否收录...
07/30


一、什么是swap空间?

当物理内存(RAM)耗尽时,Linux会将部分内存数据临时存储到磁盘上的swap区域。虽然磁盘速度远低于RAM,但swap能有效防止系统因内存不足而崩溃。现代Linux系统通常建议设置swap空间为RAM的1-2倍(如16GB内存配16-32GB swap)。

二、swap的两种实现方式

1. 独立swap分区

传统方式,通过磁盘分区实现,性能更稳定:

bash

查看现有swap空间

free -h
swapon --show

使用fdisk/gdisk创建新分区(假设为/dev/sdb2)

sudo fdisk /dev/sdb # 创建类型为"Linux swap"的分区
sudo mkswap /dev/sdb2 # 格式化
sudo swapon /dev/sdb2 # 启用

永久生效(编辑/etc/fstab)

echo '/dev/sdb2 none swap sw 0 0' | sudo tee -a /etc/fstab

2. swap文件方式

无需重新分区,灵活性更高:

bash

创建4GB大小的swap文件

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

持久化配置

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

三、高级配置与优化

1. swappiness参数调整

控制内核使用swap的倾向(0-100):

bash

查看当前值

cat /proc/sys/vm/swappiness

临时修改(推荐值:10-60)

sudo sysctl vm.swappiness=30

永久生效

echo 'vm.swappiness=30' | sudo tee -a /etc/sysctl.conf

2. 优先级设置

当存在多个swap空间时,可通过priority指定使用顺序(数字越大优先级越高):

bash

在/etc/fstab中添加优先级

/swapfile none swap sw,pri=100 0 0
/dev/sdb2 none swap sw,pri=50 0 0

四、常见问题排查

1. 扩容swap空间

步骤
1. 禁用现有swap:sudo swapoff /swapfile
2. 删除原文件:sudo rm /swapfile
3. 新建更大尺寸文件并重新启用

2. 性能瓶颈诊断

  • 使用vmstat 1观察si/so(swap in/out)频率
  • 高频率swap活动可能表明需要增加物理内存

五、是否还需要swap?

对于大内存服务器(如64GB以上),swap的作用可能转变为:
- 提供休眠(hibernate)支持
- 作为内存压力的缓冲层
- 满足某些应用(如Oracle数据库)的强制要求

性能优化内存扩展Linux swap分区交换空间swapfile
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/34313/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云