Linux

购买的 1GB 内存的 Linux 小机器,在编译安装 PHP 的时候内存捉急,只好开启 swap 交换分区来增大内存。

[root@VM_139_38_centos php-7.2.12]# cat /proc/swaps 
Filename				Type		Size	Used	Priority
[root@VM_139_38_centos php-7.2.12]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/vda1       51474024 5077996  44089952  11% /
devtmpfs          498688       0    498688   0% /dev
tmpfs             508188      24    508164   1% /dev/shm
tmpfs             508188     428    507760   1% /run
tmpfs             508188       0    508188   0% /sys/fs/cgroup
tmpfs             101640       0    101640   0% /run/user/0
[root@VM_139_38_centos php-7.2.12]# dd if=/dev/vda1 of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 20.5062 s, 52.4 MB/s
[root@VM_139_38_centos php-7.2.12]# mkswap /root/swapfile 
mkswap: /root/swapfile: warning: wiping old ext3 signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=30d4dfc3-5511-438a-a314-15ba10930800
[root@VM_139_38_centos php-7.2.12]# swapon /root/swapfile
swapon: /root/swapfile: insecure permissions 0644, 0600 suggested.
[root@VM_139_38_centos php-7.2.12]# chmod 0600 /root/swapfile 
[root@VM_139_38_centos php-7.2.12]# swapon /root/swapfile
swapon: /root/swapfile: swapon failed: Device or resource busy
[root@VM_139_38_centos php-7.2.12]# swapon -s
Filename				Type		Size	Used	Priority
/root/swapfile                         	file	1048572	0	-1
[root@VM_139_38_centos shell]# swapon -s
Filename				Type		Size	Used	Priority
/root/swapfile                         	file	1048572	515912	-1

有两种方式创建 swap 分区:

  • 用磁盘分区,需要先通过 fdisk 命令创建分区
  • 用文件系统,通过 dd 命令创建文件

用磁盘分区做 swap 分区

注意:重新分区会导致数据丢失。

  1. 重新分区前,需要停止所有的 swap 分区:
# swapoff -a
  1. 对磁盘进行分区,在 fdisk 中用 t 命令将新添的分区设置为 swap 分区()Linux 中 swap 类型对应的分区 id 为 82),最后用 w 命令将操作写入硬盘:
# fdisk /dev/sdb
  1. 格式化 swap 分区(swap 分区名称要看你自己的机器):
# mkswap /dev/sdb2 
  1. 启动 swap 分区
# swapon /dev/sdb2
  1. 设置系统启动时自动启用这个交换分区,编辑 /etc/fstab,加入下面一行
/dev/sdb2 swap swap defaults 0 0

用文件做 swap 分区

  1. 用 dd 命令创建要作为 swap 分区的文件。count 表示块的数量,1024 块表示总共 1GB(bs*count):
# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
  1. 用 mkswap 命令格式化 swap 分区文件:
# mkswap /root/swapfile
  1. 启用 swap 分区文件:
# swapon /root/swapfile
  1. 系统开机时自启用,在文件 /etc/fstab 中添加一行:
/root/swapfile swap swap defaults 0 0
原文地址:https://www.cnblogs.com/kika/p/10851530.html