当程序需要的内存比电脑上拥有的物理内存还要大的时候,不管是 Windows 也好,Linux 也好,解决办法就是把存不下的东西转移到硬盘上的“虚拟内存”中去,尽管硬盘的速度比内存慢上很多,但是至少容量要大上很多。

另外,操作系统也可以把一些很久不活动的程序转移到虚拟内存中去,留出更多的主内存给需要的程序和磁盘缓冲。

Linux 在安装的时候,一般需要划出一个分区作为 Linux 的“交换分区”,作为虚拟内存内容的保存分区。

swapon -s 这个命令,可以查看当前系统的虚拟内存的情况,这条命令需要 root 来运行。

Filename Type Size Used Priority

/dev/sda3 partition 1004052 0 -1

可以看到常常看到当前的交换分区为 /dev/sda3,第 2 栏的 Type 中显示为 partition,说明这是个交换分区,那么,还有其他的 Type 吗?

当然,其实 Linux 也可以像 Windows 一样,用交换文件来保存虚拟内存的内容,这样即使你忘记划出交换分区也不要紧,而且灵活性上会更大一些。下面我们看看如何创建交换文件。

交换文件和交换分区一样,大小是固定的,比如你想要一个 1G 的交换文件,那么首先要创建一个 1G 的空白文件,我们用 dd 这个工具来完成这个任务:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576

1048576 就是 1G 用 KB 表示的大小,如果你想要其他大小的文件,更改这个数字即可。

上面的命令,会在根目录下创建 swapfile 这个文件,然后,我们需要将它格式化为交换文件的格式:

mkswap /swapfile

然后把挂载上去,就可以立刻应用这个交换文件了:

swapon /swapfile

你可以运行 swapon -s 查看一下:

Filename Type Size Used Priority

/dev/sda3 partition 1004052 0 -1

/swapfile file 1048486 0 -2

多出来了一项,Type 为 file,确实是我们创建的交换文件,系统已经在使用了。

如果你想开机的时候自动挂载这个交换文件,那么还要在 /etc/fstab 中加上下面这一句:

/swapfile none swap sw 0 0

这样就 OK 了。

经常有人问,虚拟内存要设多大才合适,是主内存的几点几倍性能最好云云,其实作为一般用途来讲,1~2G 就到顶了,妄想从虚拟内存上提高系统性能,是不可能的,去买内存条才是王道。

linux 创建交换文件格式,Linux系统下的交换分区和交换文件的含义 (创建交换分区文件基本文件的swap)...相关推荐

  1. Linux、Mac、windows 系统下 配置Python虚拟环境 virtualenvwrapper教程,workon切换环境, 非常简单方便

    前言 开发及测试过程中每个环境都有各自的作用,避免破坏其他环境所以建议每个项目新建一个虚拟环境,经过对比最终我选择了virtualenvwrapper来作为我开发中虚拟环境管理工具,接下来一起来看一下 ...

  2. linux安装 mysql-5.7.25_Linux 系统下安装 mysql5.7.25(glibc版)

    前言:经过一天半的折腾,终于把 mysql 5.7.25 版本安装上了 Amazon Linux AMI release 2017.09系统上,把能参考的博客几乎都看了一遍,终于发现这些细节问题,然而 ...

  3. linux 打印当前系统环境_Linux系统下搭建python环境

    首先linux系统下一般是自带python2环境的,但是目前大多数项目工程python2是不适用的,今天我们就来讲解下如何在linux系统下搭建python3! 以上是自带的python2,接下来搭建 ...

  4. linux vnc 禁止复制,Linux_Linux系统下VNC SERVER的相关配置,安装: 复制代码代码如下: - phpStudy...

    Linux系统下VNC SERVER的相关配置 安装: 复制代码代码如下: yum install tigervnc-server 配置: (1) 复制配置文件: 复制代码代码如下: ~]# cp / ...

  5. linux mysql设置数据库utf_Linux系统下MySQL数据库服务器字符集设置

    Linux认证考试:Linux系统下的MySQL数据库服务器字符集设置 启动MySQL后,以root登录mysql isher@isher-ubuntu:~$ mysql -u root >sh ...

  6. linux java进程消失_Linux系统下的Java进程无故消失怎么办?

    Linux系统步骤的一些Java项目总是无故的消失,原来是Java进程被关闭掉了.为什么会出现这种情况呢?有可能是被系统自动清除多余进程,或是其他程序关掉了Java项目,这个时候该怎么办呢? 解决方法 ...

  7. linux安装多版本php_Linux系统下为Nginx安装多版本PHP

    我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:ngi ...

  8. linux 格式工厂,在Deepin 20系统下安装格式工厂deb包后字体很小的解决方案

    网上有人分享出了格式工厂deb包com.formatfactory.spark_5.6.0spark0_amd64.deb,该包可安装在Deepin 20系统下,其它的一切正常,但是字体很小,以下是针 ...

  9. linux mysql 测试工具_LINUX系统下MySQL 压力测试工具super smack

    LINUX系统下MySQL 压力测试工具super smack 发布时间:2008-09-08 17:03:39   作者:佚名   我要评论 1. 源文件下载地址:http://vegan.net/ ...

  10. 使命召唤linux服务器,使命召唤7linux系统下一样玩的很happy!

    如果电脑是linux系统的话,我来教你linux系统玩使命召唤7!l s命令不在bin文件夹中,但是也可以使用.home文件夹是各个用户的文件,登陆用户才能进入这个用户的主文件夹.bin文件夹中是可执 ...

最新文章

  1. java gui构造工具_Java Web框架 静态代码块、构造代码块、构造函数、普通代码块 执行顺序 Decompiler JD-GUI 反编译工具...
  2. UNION 与 UNION ALL
  3. 研究发现大部分企业没有在云端采用Office 365
  4. 2014恒生电子实习生笔试数据库部分
  5. 避免在Cassandra中使用清单
  6. bootstracp实现树形列表_Java实现一致性哈希算法,并搭建环境测试其负载均衡特性...
  7. mooon编译系统介绍(可复用Makefile)
  8. 【图论】拓扑排序:一个名字高大上的实际很简单的算法(图文详解)
  9. 算法快学笔记(十五):贪婪算法与NP完全问题
  10. 小米路由器Android,手机设置小米路由器_小米路由器用手机设置教程-192路由网
  11. MATLB|电动汽车充放电的最优调度
  12. MS11-003在Internet Explorer中存在允许远程代码执行漏洞复现
  13. python语言包含的错误_Python3十大经典错误及解决办法
  14. 计算一阶导数的四阶中心差分格式
  15. 江苏省赛 JSCPC2018 K. 2018
  16. 进程和线程的区别,进程间通信方式,怎么选择比较好
  17. [OpenAirInterface实战-4] :OAI支持的4G LTE功能集
  18. 周末导读:来自《大地日报》的故事
  19. 世界名著精选iOS电子书诞生记
  20. vue导入音乐_比VUE更强大、更易上手的视频剪辑App,小白也能轻松出大片

热门文章

  1. PHP语言 -- 封装连接数据库类
  2. 微信客户端抽奖转盘效果
  3. Ubuntu 11.10为何值得我们期待?
  4. js实现页面滚动,切换导航栏/点击导航栏跳转到指定位置
  5. 【前端】盒子水平垂直居中的六大妙招
  6. 解决IOS 原生项目加载html上下可滑动
  7. VUE父组件与子组件的数据传递
  8. winform获取appconfig配置文件得配置
  9. rust第三人称视角插件_第三人称视角ThirdPerson Everything Mod
  10. python微软产品一般都一个25位的序列号_Python易错点6