Linux系统实现虚拟内存教程

news/2024/7/2 23:51:42

Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件,

一、交换文件

  1. 查看内存:free -m , -m是显示单位为MB,-g单位GB                  
    free -g

  2. 创建一个文件:touch命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件。我们平时用得最多的是通过touch创建一个空文件,实际上通过touch命令可以修改文件的atime、mtime,所以文件的真实访问时间和修改时间是可以被修改
    touch /etc/swapfile
  3. 使用dd命令,来创建大小为2G的文件swapfile(注意文件路径):
    dd if=/dev/zero of=/etc/swapfile bs=1M count=2048 //命令执行完需要等待一段时间
    if表示input_file输入文件
    of表示output_file输出文件
    bs表示block_size块大小
    count表示计数。
    这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。
    dd if=/dev/zero of=/etc/swapfile bs=1M count=2048

  4. 格式化交换文件:mkswap /etc/swapfile
  5. 启用交换文件:swapon /etc/swapfile
  6. 加载到虚拟内存:/etc/swapfile swap swap defaults 0 0
    chmod 777 /etc/swapfile
    
    /etc/swapfile swap swap defaults 0 0
    注意:swapfile文件的路径,文件要有可执行权限
  7. 查看虚拟内存情况:swap 分配和使用情况
    free -g

  8. 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令 :
    /etc/swapfile swap swap defaults 0 0
     
    /dev/mapper/ol-vg_system /      xfs     defaults  0 0
    UUID=acc629c6-f540-4c80-8066-bbb0b76f05e2 /boot       xfs     defaults        0 0
    /dev/mapper/ol-lv_swap  swap    swap    defaults  0 0
    /dev/data_vg/data_lv /data      xfs     defaults  0 0

  9. 重启系统:reboot  

如果要删除交换分区和交换文件,逆着上面的顺序操作:

  1. 先删除/etc/fstab文件中添加的交换文件行
  2. 停用交换文件swapoff /etc/swapfile
  3. 删除交换文件rm -fr /etc/swapfile

二、交换分区

采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswap和swapon命令。在创建分区之前,我们常常要用过fdisk -l和df -Th命令来查看硬盘信息和挂载信息,来确定分区的大小。

  1. 在shell下以root身份创建分区 hdb1fdisk /dev/hdb1 然后 w 保存退出
  2. 设置交换分区,大小视情况自己设置。mkswap /dev/hdb1
  3. 启用交换分区swapon /dev/hdb1
  4. 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:
    /dev/hdb1 swap swap defaults 0 0


http://lihuaxi.xjx100.cn/news/1241532.html

相关文章

Redis6之数据类型

常见数据类型 String字符串 简介 String是最基本的数据类型&#xff0c;是二进制安全的&#xff0c;一个key对应一个value 常用命令 1.set <key> <value> :添加键值对 2.get <key>&#xff1a;查询对应键值对 3.append <key> <value>&#xf…

微信小程序开发大坑盘点

微信小程序开发大坑盘点 起因 前几天心血来潮&#xff0c;想给学校设计个一站式校园小程序&#xff0c;可以查询成绩&#xff0c;考试信息&#xff0c;课表之类的&#xff08;本来想法里是还想包括一些社交功能的&#xff0c;但这个因为资质问题暂且搁置了&#xff09;。其实…

pandas---数据合并(concat、append、merge)

1. concat函数 pd.concat([data1, data2], axis1) 按照行或列进行合并&#xff0c;axis0为列索引&#xff0c;axis1为行索引。 df1 make_df([1, 2], [A, B]) df2 make_df([3, 4], [A, B]) display(df1, df2) # 默认上下合并&#xff0c;垂直合并 pd.concat([df1, df2]) …

RabbitMq消息堆积问题及惰性队列

消息堆积问题 当生产者发送消息的速度超过了消费者处理的速度&#xff0c;就会导致队列的消息堆积&#xff0c;知道队列存储消息达到上限。最早接受的消息&#xff0c;可能就会成为死信&#xff0c;会被丢弃&#xff0c;这就是消息堆积问题。 解决消费对接问题 1.增加更多的消…

希尔贝壳邀您参加2023深圳国际人工智能展览会

2023深圳国际人工智能展览会“AIE”将于2023年5月16-18日在深圳国际会展中心 (宝安)举办&#xff0c;希尔贝壳受邀参加&#xff0c;展位号&#xff1a;A331。 伴随着智能行业的快速发展&#xff0c;展会已被越来越多的企业列入每年必选展会&#xff0c;也成为各采购商选购的理…

Android-MTK平台功能需求解决:客户电池NTC功能(高低温报警功能)--第2天分析与解决

一、进一步修改代码内容-过程 今日了解到&#xff0c;昨日所修改的kernel层的mtk_charger.h文件位于A13部分&#xff0c;然6769平台A13部分的kernel层不参与编译&#xff0c;那么修改后再编译等等后续操作验证结果自然无效&#xff0c;参与编译kernel层是A12部分的kernel-4.19…

springcloud 父项目建立(一)

我们开发项目&#xff0c;现在基本都用到maven&#xff0c;以及用父子项目&#xff0c;以及公共模块依赖&#xff0c;来构建方便扩展的项目体系&#xff1b; 首先我们建立父项目 microservice &#xff0c;主要是一个pom&#xff0c;管理module&#xff0c;以及管理依赖&#x…

是德DSOX3014T MSOX3014T数字逻辑示波器

概述&#xff1a; keysight是德DSOX3014T MSOX3014T数字逻辑示波器8.5 英寸电容触摸屏让操作和归档变得更加简单&#xff0c;可以加速您的测试&#xff0c;独有的区域触控触发技术支持您在几秒钟内轻松隔离信号&#xff0c;独有的区域触控触发技术支持您在几秒钟内轻松隔…