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. 电子商务网站SQL注入项目实战一例(转载)

    故事A段:发现整站SQL对外输出: 有个朋友的网站,由于是外包项目,深圳某公司开发的,某天我帮他检测了一下网站相关情况. 我查看了页面源代码,发现了个惊人的事情,竟然整站打印SQL到Html里,着实吓 ...

  2. Poj 1067 取石子游戏(NIM,威佐夫博奕)

    一.Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子. ...

  3. sql 根据年份、月份查询数据

    CREATE TABLE [dbo].[T_UserAccess]( ,) NOT NULL, [UserId] [int] NULL, [UserType] [int] NULL, ) NULL, ...

  4. shell入门-连接符(并且、和、或者)

    特殊符号:&& 说明:并且,左右两边是两条命令,左面的执行成功才会去执行右面的命令.右. 特殊符号:|| 说明:或者,左右两边是两条命令,左边的命令执行不成功,才会执行右面的命令 &a ...

  5. Qt webview调用JavaScript 带参函数

    void MainWindow::on_pushButtonShowMarker_clicked() { QString lat = "104.701681"; QString l ...

  6. Java探索之旅(13)——字符串类String

    1.初始化 String类是Java预定义类,非基本类型而是引用类型. public class StudyString { public static void main(String[] args ...

  7. shell 自动删除n天前备份

    Linux自动删除n天前备份Linux是一个很能自动产生文件的系统,日志.邮件.备份等.因此需要设置让系统定时清理一些不需要的文件.语句写法:     find 对应目录 -mtime +天数 -na ...

  8. JSK 糟糕的bug

    传送门 题目居然复制不了(QAQ) 分析 TrieJSK已经2比较详细了,就不再单独写博客了,此题相较于Trie模板有一点不同,此题要求比较前缀却没有规定前面是后面的前缀还是后面是前面的前缀,所以我们 ...

  9. 使用IDEA编译netty4

    本来计划一天一篇博文的,结果周末加班加的不亦乐乎,对整个项目重构添加国际化的功能,不停的使用native2ascii工具 使用IDEA编译原有的netty4要报错,我修改了下pom.xml,编译成功了 ...

  10. From COM to COM 侯捷 1998.06.12

    摘要: 本文簡介 C++ Object Model 和 Component Object Model 的基本概念,並引介四本書籍: 1. Inside The C++ Object Model 2. ...