https://blog.argcv.com/articles/3248.c

linux下至少有两种方法可以配置系统的swap.一种是直接格式化一个分区,用这个分区作为swap区.另一种是创建一个文件,swap的内容都丢到文件里面去.

直接格式化的写分区这种操作一般在装机的时候系统安装引导程序就帮忙做了,我只在装arch的时候被教育了下. 大致方法是分区,对这个分区mkswap,然后将这个分区的位置写到/etc/fstab中. 内容类似下面这样.

/etc/fstab

1
/dev/mapper/sae-swap    swap  swap    defaults   0 0

它会在启动的时候自动挂载本分区到swap,不用操心任何事情. 对于比较稳定的,长期使用的swap设置而言,这应当是最好的选择.

但有时候需求有点复杂,比如远程的时候腾出个分区格式化然后挂载虽然不困难,但若有更简单的方法,那个人还是倾向于用简单的.

linux支持使用文件作为swap,然后在线启用或者取消swap.流程很简单.进入root后几步操作就可以搞定.

首先你需要准备一个你想要的大小的文件.比如512MB(也就是1024 * 512MB = 524288 k)

1
# dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

上面这条命令会在/swapfile1这个文件中写上512MB大小的0.它有个很严重的问题--效率. 若我只是开上上面命令的512MB的话,速度还是可以忍受的,但某次我要开上700G的文件,等得花儿都谢了. 我们的目标就是开个足够大的文件而已,另一个可用的命令是fallocate. 命令如下:

1
# fallocate -l 700G /swapfile1

虽然仍然需要等几秒,但速度还是非常快的.

此时文件的读写还是比较开放的,但这样就不安全了.设置文件权限如下:

1
2
# chown root:root /swapfile1
# chmod 0600 /swapfile1

然后,你需要对这个文件格式化一下.命令如下:

1
# mkswap /swapfile1

这样swapfile1就是swap可以接受的格式了.

最后,启用swap.

1
# swapon /swapfile1

这样我们就很容易的得到了一些新的swap空间.

如果我们需要让它每次开机自动挂载swap的话,我们需要编辑/etc/fstab,添加一行内容如下:

1
/swapfile1 none swap sw 0 0

如果我们不想要这个swap,解除也很容易

1
# swapoff /swapfile1

然后我们就可以安全的删除/swapfile1这个文件了.

References:

  • http://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/
  • http://stackoverflow.com/questions/257844/quickly-create-a-large-file-on-a-linux-system

linux下使用swapfile的更多相关文章

  1. Linux 下的dd命令使用详解(摘录)

    一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. ...

  2. linux下Oracle11g RAC搭建(六)

    linux下Oracle11g RAC搭建(六) 五.校验安装前的环境 root身份下完毕解压grid.database安装包 [grid@node1 soft]$ su - Password: [r ...

  3. (转)Linux下增加交换分区的大小

    场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了. 对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解 ...

  4. Linux 下的dd命令使用详解(摘录)【转】

    转自:https://www.cnblogs.com/jikexianfeng/p/6103500.html 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意 ...

  5. linux下安装Oracle时交换空间不足的解决方法

    摘:linux下安装Oracle时交换空间不足的解决方法 linux上安装Oracle时交换空间不足的解决办法 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap,那就是本 ...

  6. linux下磁盘相关工具(待整理)

    一.概述: fsck tune2fs mke2fs badblocks mkfs* fdisk mount umount mknod e2label blkid hdparm mkswap swapo ...

  7. Linux下分割、合并文件——dd和cat

    功能说明:读取,转换并输出数据. 语 法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=& ...

  8. Linux 下的dd命令使用详解

    转自:https://www.cnblogs.com/jikexianfeng/p/6103500.html 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意 ...

  9. (转) Linux 下的dd命令使用详解(摘录)

    使用dd命令克隆整个系统------http://www.cnblogs.com/jikexianfeng/p/6103504.html 原文:https://www.cnblogs.com/jike ...

随机推荐

  1. JSR-303规范,Bean Validation

    一: JSR 303是JAVA EE 6中的一项子规范,叫做Bean Validation,官方参考实现是Hibernate Validator,此实现与Hibernate ORM没有任何关系.JSR ...

  2. C#设计模式(8)——桥接模式

    一.概念 桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化. 二.模型 三.代码实现 // 客户端调用 // 类似Web应用程序 class Client { static void Main( ...

  3. 问题:ExecuteNonQuery 与 ExecuteScalar 结果: ExecuteNonQuery方法和ExecuteScalar方法的区别

    ExecuteNonQuery方法和ExecuteScalar方法的区别 ----ExecuteNonQuery():执行命令对象的SQL语句,返回一个int类型变量,如果SQL语句是对数据库的记录进 ...

  4. Android 使用技巧

    1.Android 模拟器使用虚拟SD卡 首先创建一个虚拟的SD卡 mksdcard 500M ~/sdcard.img 启动模拟器的时候指定虚拟的SD卡 emulator -sdcard ~/sdc ...

  5. CSDN优秀博客连接,博客之星连接。

    点击链接 获得[红杏出墙]插件,FQ上网无压力!谷歌搜索无压力! 2013年度CSDN十大博客之星 TOP 作者 专注领域 博客地址 邹晓艺 机器学习及算法 zouxy09 2 王然 潜在的集大成者 ...

  6. redis GEO地理位置命令介绍

    GEOADD keylongitude latitude member [longitude latitude member ...] Available since 3.2.0. Time comp ...

  7. BMFont使用图片自定义字体(无需字体文件)

    网上搜BMFont做字体,很多都是从一个字体文件读取,然后选择需要的字,然后保存成图片文字,这个对于一般的文字的确很实用,因为Unity本身不支持中文,所以只好这样了. 但是做过游戏的都知道,策划总是 ...

  8. 【Android-stdio-appdemo搭建记录】

    1-如何删除存在的工程 2-创建Android项目 next设置app兼容最低版本:api15--android 4.0以上 创建活动页面 设置活动页面的名称 创建成功项目以后会有最基本的layout ...

  9. iscsi使用教程(上)

    服务端 服务器环境 已经安装过qemu-img的32位ubuntu $ uname -a Linux ubuntu-virtual-machine 3.13.0-46-generic #76-Ubun ...

  10. linux网络基础-网卡bonding技术

    1.bondingbonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,实现本地网卡的冗余,带宽扩容和负载均衡.在应用部署中是 ...