Linux-Debian-Ubuntu如何设置或删除swap
Linux-Debian-Ubuntu如何设置或删除swap虚拟内存
虚拟内存 swap 简单的说就是将硬盘当内存用,用于解决内存容量不足的情况。
swap交换空间其实就是硬盘上一个特定的文件,只不过这个文件只有内存在读写。
查看当前系统是否设置了 swap
root@mbapp1a:~# free -m
total used free shared buff/cache available
Mem: 1982 755 66 2 1160 1040
Swap: 2047 22 2025
如果 swap 栏都是 0 0 0 表示没有设置过。
free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。
有时我们需要持续的观察内存的状况,此时可以使用 -s 选项并指定间隔的秒数:
$ free -h -s 3
主要命令如下:
1 | sudo dd if=/dev/zero of=swapfile bs=1M count=2048 |
如何设置swap?
一般物理内存小于2GB就设置为内存的两倍,小于8GB设置为等于内存,大于8GB的设置小于4GB
1、创建swap文件
格式: sudo dd if=/dev/zero of=swapfile count=4096 bs=1M
ls -al swapfile
1 | # 创建一个 swap 目录,方便管理 |
count=4096 bs=1M 表示创建 4GB 的虚拟内存,单位是 M
该命令中 count 即代表swap文件大小,我这里设置的是2Gb,你可以换成自己想设置的大小
$ sudo dd if=/dev/zero of=swapfile bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 18.5132 s, 116 MB/s
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
参数注释:
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
3、激活 Swap 文件
mkswap 命令,用于在一个文件或者设备上建立交换分区。
sudo mkswap swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=1fd2cb84-ae10-4ef0-9ec3-13059528f395
使用 swapon 命令激活交换文件:
sudo swapon swapfile
swapon: /root/swap/swapfile: insecure permissions 0644, 0600 suggested.
swapon: /root/swap/swapfile: read swap header failed
$ ls -al
total 2097164
drwxr-xr-x 2 root root 4096 Jun 22 20:31 .
drwx—— 7 root root 4096 Jun 22 20:30 ..
-rw-r–r– 1 root root 2147483648 Jun 22 20:31 swapfile
$ sudo chmod 600 swapfile
$ sudo mkswap swapfile
mkswap: /swapfile: warning: wiping old swap signature.
Setting up swapspace version 1, size = 947.2 MiB (993243136 bytes)
no label, UUID=383a444c-3a78-45b6-91a2-4f8df078689d
- 查看现有的swap
1 | root@mbapp1a:~# cat /proc/swaps |
sudo swapon –show
1 | root@mbapp1a:~# sudo swapon --show |
使用 free -h 命令查看:
1 | root@mbapp1a:~# free -h |
设置系统启动时自动开启 Swap
修改 /etc/fstab 文件:
1 | # 编辑fsta文件 |
如何删除swap?
首先输入以下命令停用 SWAP 空间:
sudo swapoff -v swapfile
在 /etc/fstab 文件中删除有效 swap 的行
最后执行以下命令删除 swapfile 文件:
sudo rm swapfile
可以使用 top 命令查看运行情况
1 | root@mbapp1a:~# top |