linux下使用swapfile
https://blog.argcv.com/articles/3248.c
linux下至少有两种方法可以配置系统的swap.一种是直接格式化一个分区,用这个分区作为swap区.另一种是创建一个文件,swap的内容都丢到文件里面去.
直接格式化的写分区这种操作一般在装机的时候系统安装引导程序就帮忙做了,我只在装arch的时候被教育了下. 大致方法是分区,对这个分区mkswap,然后将这个分区的位置写到/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的更多相关文章
- Linux 下的dd命令使用详解(摘录)
一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. ...
- linux下Oracle11g RAC搭建(六)
linux下Oracle11g RAC搭建(六) 五.校验安装前的环境 root身份下完毕解压grid.database安装包 [grid@node1 soft]$ su - Password: [r ...
- (转)Linux下增加交换分区的大小
场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了. 对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解 ...
- Linux 下的dd命令使用详解(摘录)【转】
转自:https://www.cnblogs.com/jikexianfeng/p/6103500.html 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意 ...
- linux下安装Oracle时交换空间不足的解决方法
摘:linux下安装Oracle时交换空间不足的解决方法 linux上安装Oracle时交换空间不足的解决办法 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap,那就是本 ...
- linux下磁盘相关工具(待整理)
一.概述: fsck tune2fs mke2fs badblocks mkfs* fdisk mount umount mknod e2label blkid hdparm mkswap swapo ...
- Linux下分割、合并文件——dd和cat
功能说明:读取,转换并输出数据. 语 法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=& ...
- Linux 下的dd命令使用详解
转自:https://www.cnblogs.com/jikexianfeng/p/6103500.html 一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意 ...
- (转) Linux 下的dd命令使用详解(摘录)
使用dd命令克隆整个系统------http://www.cnblogs.com/jikexianfeng/p/6103504.html 原文:https://www.cnblogs.com/jike ...
随机推荐
- Qt安装与配置
安装Qt 安装Qt Creator,打开终端执行如下命令: sudo apt-get install qt5-default qtcreator -y 安装Qt示例和文档: sudo apt-get ...
- Wireshark抓包常见问题解析
1. tcp out-of-order(tcp有问题) 解答: 1). 应该有很多原因.但是多半是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元 因为他们可能是 ...
- Python:生成器函数
生成器函数:包含yield语句的函数: 生成器对象:生成器对象和迭代器对象行为相似,都支持可迭代接口:__next__(),若想执行生成器函数内部语句,则需要迭代协议’ A.生成器函数被调用时,并不会 ...
- unittest ,ddt数据驱动,读取文件中数据,多个参数时的处理
1. test.yaml中的数据 这里的属性是list 2.创建用例 3,在yaml中创建数据,创建list数据,list中再创建dict数据,这样就可以读取dict中的多个参数的数据了
- Hadoop YARN配置参数剖析(3)—MapReduce相关参数
MapReduce相关配置参数分为两部分,分别是JobHistory Server和应用程序参数,Job History可运行在一个独立节点上,而应用程序参数则可存放在mapred-site.xml中 ...
- 8、泛型程序设计与c++标准模板库2.5容器适配器
容器适配器是用来扩展7中基本容器的,是修改和调整其他类接口的类.他们不提供存放数据的实际数据结构的实现方法,而且容器适配器也不支持迭代器. 1.标准栈容器 使用STL中的标准栈为程序员提供了一层附加的 ...
- C++的STL总结(1)
没有很系统的学过算法,c++也只是学些基础,虽然经常会用一些STL里面的函数,但是并没有对STL模板库有一个清晰的了解,趁着寒假有时间就自己在网上百度浏览别人的总结的内容,自己汇集并总结了一下,希望对 ...
- explain SQL语句()
坊间有传言:MySQL性能优化有个神器,叫做explain,它可以对select语句进行分析并且输出详细的select执行过程的详细信息,让开发者从这些信息中获得优化的思路. 下面来讲讲这个MySQL ...
- [Django笔记] Apache + mod-wsgi 环境部署所遇到的各种问题总结
在一台CentOS7机器上配置Django+apache运行环境 Django安装 python2 or python3 ? 一般情况下Linux系统都有自带python2,本机CentOS7上的是p ...
- hdu6069(简单数学+区间素数筛法)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6069 题意: 给出 l, r, k.求:(lambda d(i^k))mod998244353,其中 ...