> free -mh
total used free shared buff/cache available
Mem: 3.7G 1.4G 128M 64M 2.1G 1.9G
Swap: 0 0 0
合理规划和设计 Linux 内存的使用是非常重要的,关于物理内存和交换空间的大小设置问题,取决于实际所用的硬盘大小,但大致遵循这样一个基本原则:
1、如果内存较小(根据经验,物理内存小于 4GB),一般设置 swap 分区大小为内存的 2 倍;
2、 如果物理内存大于 4GB,而小于 16GB,可以设置 swap 分区大小等于物理内存;
3、如果内存大小在 16GB 以上,可以设置 swap 为 0,但并不建议这么做,因为设置一定大小的 swap 分区是有一定作用的。
创建swap文件(每块1M,总共8192块,共计:8192M)
> dd if=/dev/zero of=/data/swap bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 51.4025 s, 167 MB/s
> ll /data -h
-rw-r--r-- 1 root root 8589934592 Sep 6 16:01 swap
> cd /data
> chmod 0600 swap
> ll /data -h
-rw------- 1 root root 8.0G Sep 6 16:02 swap
> mkswap /data/swap
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=40a9ea8d-3736-45bd-9a41-27903f5cd6bc
> swapon /data/swap
# 若执行了chmod 0600 swap则不会提示
swapon: /data/swap: insecure permissions 0644, 0600 suggested.
> free -mh
total used free shared buff/cache available
Mem: 3.7G 1.4G 128M 64M 2.1G 1.9G
Swap: 8.0G 0B 8.0G
上述操作仅仅在本次开机有效,重启失效,我们需要保存一下配置
> vim /etc/fstab
# 将/swap none swap sw 0 0 这行注释掉,新增一行
> /data/swap swap swap defaults 0 0
如果已经设置了虚拟内存,想修改一下大小,或者取消设置虚拟内存的,只需关闭swap并删除之前创建的swap文件即可。
> swapoff /data/swap
> rm -rf /data/swap