首页 > 系统相关 >内存交换空间--Swap Space

内存交换空间--Swap Space

时间:2024-08-05 10:27:29浏览次数:21  
标签:交换文件 sudo swapfile -- Space 交换 内存 空间 Swap

转载请注明出处:

一、概述

内存交换空间(Swap Space)是计算机内存的一种补充,位于硬盘驱动器上。当物理内存(RAM)不足时,系统会将不活跃的页面(或称为内存页)移到交换空间中,以释放物理内存给更需要的进程。这种方式虽然比直接从物理内存中读取数据要慢,但能有效避免系统因内存不足而崩溃。

二、配置

1. 配置原则
  • 交换空间的总大小一般推荐为物理内存的两倍和32MB中的较大者,但不超过2GB(不同来源可能有不同建议,具体根据实际需求和环境调整)。
  • 专用交换分区是推荐的方法,因为它性能更优且管理方便。
2. 配置方法(以Linux为例)

创建交换文件

  1. 关闭现有的交换空间(如果已存在)。
  2. 使用dd命令创建交换文件。例如,创建一个10GB的交换文件:
sudo dd if=/dev/zero of=/swapfile bs=1G count=10

   3. 设置交换文件的权限,仅允许root用户读写:

sudo chmod 600 /swapfile

   4. 将文件设置为交换空间:

sudo mkswap /swapfile

   5. 激活交换空间:

sudo swapon /swapfile

配置交换分区

  1. 分区:使用fdiskparted等工具在磁盘上分出一个分区用于交换。
  2. 格式化:使用mkswap命令格式化该分区为交换分区。
  3. 激活:使用swapon命令激活交换分区。

三、查看

在Linux中,可以使用多种命令查看交换空间的使用情况:

  1. free命令:显示系统的内存使用情况,包括物理内存、交换空间等。

free -m

  -m选项表示以MB为单位显示。

                 

   2. swapon命令:查看当前正在使用的交换文件或交换分区。

swapon --show

           

  3. cat /proc/swaps命令:查看当前正在使用的交换空间及其相关信息。

cat /proc/swaps

  

  4. top或htop命令:这些交互式系统监视工具可以在终端中实时显示系统资源使用情况,包括交换空间。

四、作用

  1. 内存扩展:当物理内存不足时,交换空间提供额外的存储空间,确保系统可以继续运行。
  2. 性能优化:通过将不常用的内存页移动到交换空间,可以为当前需要执行的程序腾出物理内存空间,从而提高系统性能。
  3. 系统稳定性:防止因内存不足而导致的系统崩溃或性能下降。

五、示例

  1. 创建交换文件:

sudo dd if=/dev/zero of=/swapfile bs=1G count=8  # 创建一个8GB的交换文件  
sudo chmod 600 /swapfile  
sudo mkswap /swapfile  
sudo swapon /swapfile

  2. 验证配置:
    使用free -m命令查看内存和交换空间的使用情况,确认交换空间已正确配置并激活。

  通过以上步骤,Linux系统成功配置了交换空间,提高了系统的稳定性和性能。

 

标签:交换文件,sudo,swapfile,--,Space,交换,内存,空间,Swap
From: https://www.cnblogs.com/zjdxr-up/p/18341092

相关文章

  • 【网站项目】SpringBoot760校园二手交易平台
    ......
  • 数据结构内核链表的代码
    说明内核链表的诞生原因呢,就是为了把数据域和指针域分开来就形成了下面这样的链表structlist{structlist*prev;//存放前缀节点的指针structlist*next;//存放后缀节点的指针};那有的读者会疑问,那数据放哪里?//节点结构体structnode{//以整型数......
  • C++进阶 map和set
    目录关联式容器键值对set的介绍set的使用set的模板参数列表set的构造set的迭代器set的容量set修改操作 multiset的介绍multiset的使用map的介绍map的使用map的模板参数说明map的构造map的迭代器map的容量与元素访问map中元素的修改 multimap的介绍关联......
  • 微信答题小程序产品研发-用户操作流程设计
    在答题小程序中,用户流程是指用户从进入小程序开始,到完成答题、查看结果、进行练习等一系列操作的步骤。这里我画了一张用户流程图,展示用户在小程序中的主要操作流程。以及对每个步骤的详细说明。这里分两种角色,用户和管理员(或运营者)。那么,它解决了什么问题?为用户提供了一个......
  • 浅学爬虫-法律和伦理
    在编写和运行爬虫时,除了技术上的考虑,还需要关注法律和伦理方面的问题。不遵守相关法律法规和伦理标准可能导致严重后果,包括法律诉讼和对他人权益的侵犯。因此,了解和遵守相关法律法规,确保爬虫的负责任使用,是每个开发者的义务。爬虫的法律风险编写和运行爬虫涉及多个法律方面的......
  • vue + quill2.0+ 工具栏自定义行高
    在网上查了好多,基本都是基于1.0+版本的,拿过来都用不了,官方又没有文档,只能参考各位前辈的经验+解析源码查找问题。目前已经解决,下面是实现过程。实现代码  先看效果图我用的是原生quill库,正常引入quill,注册行高插件importQuillfrom'quill'import'quill/dist/quill.......
  • 浅谈SQL sever游标
    一、什么是游标?游标是一种用来遍历数据库结果集的机制,它允许用户逐行处理查询结果。在SQLServer中,游标是一种可编程的对象,可以在存储过程或触发器中使用。使用游标可以逐行处理查询结果,执行复杂的逻辑操作,以及在处理数据时进行一些特定的操作。游标通常用于需要逐行处理......
  • 静态代理与动态代理区别?
    静态代理和动态代理是Java中常用的两种代理模式,用于为目标对象提供额外的功能。以下是它们的主要区别:静态代理代理类在编译时确定:静态代理类在编译时就已经存在,并且需要手动编写。代理类和目标类实现相同的接口:代理类和被代理的目标类都需要实现相同的接口。实现较......
  • (链表基础)PTA习题11-8 单链表结点删除
    题目要求:本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:structListNode{intdata;ListNode*next;};函数接口定义:structListNode*readlist();structListNode*deletem(structListNode*L,......
  • Java RMI技术详解与案例分析
    JavaRMI(RemoteMethodInvocation)是一种允许Java虚拟机之间进行通信和交互的技术。它使得远程Java对象能够像本地对象一样被访问和操作,从而简化了分布式应用程序的开发。一些应用依然会使用RMI来实现通信和交互,今天的内容我们来聊聊RMI的那些事儿。一、先来了解一下概......