Linux设置Swap虚拟内存方法

Linux可以文件或者分区来当作虚拟内存。

首先查看当前的内存和swap 空间大小(默认单位为k, -m 单位为M):
free -m

查看swap信息,包括文件和分区的详细信息
swapon -s或者cat /proc/swaps
如果都没有,我们就需要手动添加交换分区。注意,OPENVZ架构的VPS是不支持手动添加交换分区的。
添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。

增加swap交换文件
1.使用dd命令创建一个swap交换文件
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
这样就建立一个/home/swap的分区文件,大小为1G。

2.制作为swap格式文件:
mkswap /home/swap

3.再用swapon命令把这个文件分区挂载swap分区
swapon /home/swap
我们用free -m命令看一下,发现已经有交换分区了。
但是重启系统后,swap分区又变成0了。

4.为防止重启后swap分区变成0,要修改/etc/fstab文件
vi /etc/fstab
在文件末尾(最后一行)加上
/home/swap swap swap default 0 0
这样就算重启系统,swap分区还是有值。

5.删除swap交换文件
1、先停止swap分区
/sbin/swapoff /home/swap

2、删除swap分区文件
rm -rf /home/swap

3、删除自动挂载配置命令
vi /etc/fstab
这行删除

/home/swap swap swap default 0 0 
这样就能把手动增加的交换文件删除了。 
注意: 
- 增加删除swap的操作只能使用root用户来操作。 
- 装系统时分配的swap分区貌似删除不了。 
- swap分区一般为内存的2倍,但最大不超过2G

使用分区来做SWAP(虚拟内存).

  1. 使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)

  2. 使用 mkswap 命令来设置交换分区:
    mkswap /dev/sdb2

  3. 启用交换分区:
    swapon /dev/sdb2

  4. 写入/etc/fstab,以便在引导时启用:
    /dev/sdb2 swap swap defaults 0 0

  5. 删除交换分区
    步骤如下:

1、先停止swap分区
/sbin/swapoff /dev/sdb2

2、删除自动挂载配置命令
vi /etc/fstab
这行删除
/dev/sdb2 swap swap defaults 0 0

这样就能把手动增加的交换分区删除了。

### 如何在 Linux 系统中配置和调整 SWAP 虚拟内存 #### 创建 Swap 文件 为了创建一个新的 Swap 文件,首先需要确定所需的大小。通常情况下,Swap 大小取决于系统的物理内存量以及具体的应用场景[^3]。 ```bash sudo fallocate -l 2G /swapfile ``` 这条命令会在根目录下创建一个名为 `swapfile` 的文件,并分配给它 2 GB 的磁盘空间。可以根据实际情况更改路径名和容量大小。 #### 设置权限 出于安全原因,应该确保只有 root 用户能够读取或写入该文件: ```bash sudo chmod 600 /swapfile ``` 这一步骤非常重要,因为 Swap 文件包含了敏感数据,在未授权的情况下访问这些信息可能会造成安全隐患。 #### 启用 Swap 功能 完成上述操作之后,就可以将新建立的文件作为 Swap 设备启用了: ```bash sudo mkswap /swapfile sudo swapon /swapfile ``` 第一条指令用于初始化 Swap 文件;第二条则正式激活此功能。此时可以通过查看 `/proc/swaps` 或者执行 `free -m` 来确认新增加的空间已经生效。 #### 自动挂载 Swap 分区 为了让系统每次启动都能自动加载这个新的 Swap 卷,还需要编辑 `/etc/fstab` 文件加入如下行: ``` /swapfile none swap defaults 0 0 ``` 保存修改后的 fstab 文件即可实现开机自启支持。 #### 修改 Swappiness 参数 Swappiness 控制着操作系统何时开始利用 Swap 存储器代替 RAM。较低值意味着更少地使用 Swap,而较高值会促使更快切换到 Swap 上面去工作。一般推荐保持默认设置(通常是 60),但对于某些特定环境来说可能需要调整优化性能表现[^2]。 ```bash echo vm.swappiness=10 | sudo tee -a /etc/sysctl.conf sudo sysctl -p ``` 以上两条语句分别设置了新的参数并将变更立即应用于当前运行环境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值