热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux下的交换分区和交换文件

Linux下的交换分区和交换文件--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
当程序需要的内存比电脑上拥有的物理内存还要大的时候,不管是 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 就到顶了,妄想从虚拟内存上提高系统性能,是不可能的,去买内存条才是王道。
推荐阅读
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 本文将详细介绍如何安装和使用 CactiEZ 的中文版本,帮助那些对英文界面不太熟悉的用户轻松掌握这一强大的网络监控工具。 ... [详细]
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
  • 本文详细介绍如何在 Windows 环境下安装 Ubuntu 12.04 版本的 Linux 操作系统,包括必要的软件下载、配置步骤以及注意事项。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • 本文详细介绍了在Linux环境下如何有效地管理任务,包括撤销操作、挂起与恢复任务、终止后台程序以及取消定时任务的方法。这些技巧对于提高日常工作效率和系统维护至关重要。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • 众包(Crowdsourcing)是指将任务分发给广泛的社区成员完成,而非由组织内部人员独力承担。这一模式在软件测试领域尤为突出,通过结合网络与云计算技术,形成了强大的众包测试机制,对传统测试流程产生了深远影响。 ... [详细]
  • 本文深入探讨了JavaScript中循环结构的使用方法,特别是While循环,用于重复执行一段代码直到特定条件不再满足。同时,文章还介绍了Switch语句在多条件分支选择中的应用。 ... [详细]
  • Go语言以其简洁的语法和强大的并发处理能力而闻名,特别是在云计算和分布式计算领域有着广泛的应用。本文将深入探讨Go语言中的Channel机制,包括其不同类型及其在实际编程中的应用。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合C语言初学者学习。 ... [详细]
author-avatar
手机用户2502876173
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有