linux sw是Linux系统中交换空间(Swap)的常用简称,它是Linux虚拟内存管理机制里的核心组成部分,主要作用是在物理内存不够用时,把内存中暂时不用的数据转存到磁盘的交换分区或者交换文件中,腾出物理内存给当前需要运行的程序使用。

linux sw的核心作用
linux sw的存在主要是为了解决物理内存容量有限的问题,具体作用可以分为以下几点:
- 避免内存溢出:当系统运行的程序过多,物理内存被占满时,sw可以承接溢出的内存数据,防止系统触发OOM(Out Of Memory)机制杀死关键进程。
- 提升内存利用率:把长期不用的冷数据移到sw中,让物理内存更多服务于活跃进程,提升整体运行效率。
- 支持休眠功能:部分Linux系统的休眠功能需要将内存中的所有数据写入sw,唤醒时再从sw中恢复数据。
linux sw的常见类型
Linux系统中的sw主要分为两种类型,用户可以根据需求选择配置:
| 类型 | 说明 | 适用场景 |
|---|---|---|
| 交换分区 | 在磁盘上划分出独立的分区作为sw使用,性能相对稳定 | 服务器、长期运行的Linux设备 |
| 交换文件 | 在现有文件系统中创建一个指定大小的文件作为sw使用,配置灵活 | 临时需要扩展sw容量、不想重新分区的场景 |
linux sw的基础操作
查看当前sw状态
可以使用free命令查看系统中sw的总容量、已使用量和空闲量:
# 查看内存和sw的使用情况,-h参数表示以人类可读的单位显示 free -h
也可以使用swapon命令查看当前启用的sw设备信息:
# 查看所有启用的交换空间信息 swapon --show
创建交换文件并启用
如果要临时添加sw空间,可以创建一个交换文件,步骤如下:
# 1. 创建大小为2G的交换文件,bs是块大小,count是块数量 dd if=/dev/zero of=/swapfile bs=1M count=2048 # 2. 设置交换文件的权限,只有root用户可以读写 chmod 600 /swapfile # 3. 将文件格式化为交换空间格式 mkswap /swapfile # 4. 启用交换文件 swapon /swapfile # 5. 如果需要永久生效,需要把配置写入/etc/fstab文件 echo '/swapfile none swap sw 0 0' >> /etc/fstab
关闭指定的sw空间
如果不需要某个sw空间,可以使用swapoff命令关闭:
# 关闭指定的交换文件 swapoff /swapfile # 关闭所有交换空间 swapoff -a
linux sw的使用注意事项
虽然sw可以补充内存容量,但磁盘的读写速度远低于物理内存,因此不建议过度依赖sw:
- 如果系统频繁使用sw,说明物理内存已经不足,应该优先考虑增加物理内存,而不是盲目扩大sw容量。
- 对于IO性能要求高的服务,比如数据库服务,建议适当减小sw的优先级,避免频繁触发sw交换影响服务性能。
- sw的容量一般建议设置为物理内存的1到2倍,但具体需要根据实际业务场景调整,不是越大越好。
注意:修改sw相关配置需要root权限,操作前建议备份重要数据,避免误操作导致数据丢失。