购买的 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

Linux - 创建交换分区 swap的更多相关文章

  1. linux创建交换分区

    一.SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到S ...

  2. Linux 创建交换分区扩展虚拟内存

    当计算机的物理内存不足时,可以利用磁盘空间扩张为物理内存,实现的方式则是创建交换分区. 命令:mkswap + 分区设备 (格式化交换分区)     mkswapon +分区设备 (启用交换分区)   ...

  3. Linux设置交换分区swap

    参考: http://www.vpser.net/opt/vps-add-swap.html https://www.zntec.cn/archives/vps-swap.html http://yz ...

  4. Linux 交换分区swap

    Linux 交换分区swap 一.创建和启用swap交换区 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存 ...

  5. 【Linux命令】磁盘分区,格式化,挂载命令,创建交换分区(fdisk,mkfs,mount,umount)

    友情链接 磁盘分区,格式化,挂载,创建交换分区:https://www.cnblogs.com/HeiDi-BoKe/p/11936998.html RAID工作级别:https://www.cnbl ...

  6. Linux环境创建交换分区

    最近在准备在移动端跑一下深度学习训练好的模型,在RK3399的板子上安装scipy时报错.网上查了一下,由于内存不足导致,做个交换分区就搞定了.那么如何做交换分区呢.话不多说,直接开撸. ------ ...

  7. Linux_交换分区SWAP

    一.交换分区SWAP 1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 2️⃣:交换分区一般指定虚拟内存的大小 ...

  8. LINUX 设置交换分区的大小

    创建交换分区目录 mkdir /data1/mnt/ 卸载当前交换分区 swapoff /data1/mnt/10GB.swap 设置交换分区为 5Gdd if=/dev/zero of=/data1 ...

  9. CentOS设置交换分区swap

    环境查看 查看未设置交换分区之前 free -h 新加一块磁盘用于交换分区/dev/sdc 格式化 mkswap /dev/sdc 设置为交换分区 swapon /dev/sdc 再次查看 设置为重启 ...

随机推荐

  1. es5继承和es6类和继承

    es6新增关键字class,代表类,其实相当于代替了es5的构造函数 通过构造函数可以创建一个对象实例,那么通过class也可以创建一个对象实列 /* es5 创建一个person 构造函数 */ f ...

  2. pandas进阶

    pandas是基于numpy构建的库,在数据处理方面可以把它理解为numpy的加强版,由于numpy主要用于科学计算,特长不在于数据处理,我们平常处理的数据一般带有列标签和index索引,这时pand ...

  3. HDU 5988 Coding Contest 最小费用流 cost->double

    Problem Description A coding contest will be held in this university, in a huge playground. The whol ...

  4. 10年前文章_嵌入开发使用的服务器配置 tftp ,http,nfs

    tftp server 安装 dnsmasq,  在目录 /etc/dnsmasq.d 下生成包含如下内容的配置文件 tftp.conf enable-tftptftp-root=/tftpboot ...

  5. 八、ARM 汇编程序格式和程序控制

    8.1 汇编程序格式 源程序中的语句可以分为两种类型:指令性语句.指示性语句 指示性语句就是一些伪操作,在 MDK 编译环境下的伪操作有下面几种: 符号定义伪操作 数据定义伪操作 汇编控制伪操作 其他 ...

  6. 常用windbg命令(转)

    1.查看版本信息:version.vertarget. 2.查看模块信息:lm.!dlls.!lmvi等. 3.调用栈:用k命令显示调用栈,用.frames命令切换栈帧. 4.内存操作:读内存用d命令 ...

  7. Vscode中解决Html文件中不能打断点问题

    Vscode中解决Html文件中不能打断点问题: 默认情况下,VSCode是不能在Html文件里打断点的,但是可以修改设置,依次打开:文件->首选项->设置,然后功能->调试-> ...

  8. oracle数据库架构

    3.1 Client/Server Oracle 采取的是 Client/Server 架构. oracle 服务端分为两部分: Instance 实例 Database 数据库 实例, 又称为数据库 ...

  9. Django【第21篇】:Ajax之FormData

    ajax补充--------FormData等... 一.回顾上节知识点 1.什么是json字符串? 轻量级的数据交换格式 2.定时器:关于setTimeout setTimeout(foo,3000 ...

  10. 【NOIP2016提高组A组7.16】第三条跑道

    题目 数据范围 分析 时限5000ms. 我们注意到\(a_{i}初始值以及x小于等于600且非零\) 也就是说,\(a_{i}\)的质因数一定小于600,而600以内的质因数只有109个. 那么考虑 ...