虚拟内存是什么?它是如何运作的?

写过代码的人对程序运行的大致流程应该都不陌生:数据先由硬盘读取进内存,之后CPU再与内存展开一系列的数据交互和运算,最终完成既定操作(当中的具体实现远比这复杂得多),程序功能由此得以呈现。

不过,内存空间终归有限,加上内存本身价格不菲(当下主流使用的是双倍速率SDRAM),普通用户想要扩容内存,通常都得花上一笔不小的钱。

接下来,余初云打算带大家聊聊一个话题——当电脑内存捉襟见肘时,虚拟内存技术能起到怎样的作用。正是虚拟内存的出现,才让内存紧张的问题得到了一定程度的纾解,顺带提一句,部分文献里也把虚拟内存叫做交换内存,大家留意一下即可。

1. 正式聊虚拟内存之前,先铺垫几个概念

计算机的内存其实分为两类:物理内存和虚拟内存(这里要特别区分虚拟内存与虚拟地址空间这两个不同的概念)。所谓物理内存,指的就是由RAM芯片构成的、计算机真实拥有的内存容量;而虚拟内存则并非真实存在的硬件资源,它是借用磁盘空间”伪装”成内存来使用的一种技术手段。

2. 虚拟内存究竟是怎么运作的

前面已经提到过,一旦系统的物理内存吃紧,系统就会想办法腾出物理内存里的一部分空间,好让当前正在跑的程序能够继续使用。

而这些被腾出来的空间,多半来自那些长期处于闲置、没什么活动的程序——它们占用的内存会被暂时挪到交换空间里存放,等到这些程序日后需要重新启动运行时,系统再把之前保存的数据从交换空间中读取回内存。

3. Linux下虚拟内存的两种落地方式

在Linux系统里,实现虚拟内存主要有两条路径:交换分区(也就是swap分区)和交换文件。

交换分区

所谓交换分区,说白了就是划出一个新的磁盘分区,然后把它挂载起来充当交换空间使用,整个操作流程和平时新建分区没什么两样,唯一的区别在于,格式化和挂载这两步分别要用到mkswap和swapon这两条命令。

交换文件

如果硬盘上实在腾不出空间来专门划一个交换分区,那也可以退而求其次,手动建一个交换文件,把RAM里那些不活跃的内容临时交换存放进去。

4. 交换权重该怎么设置比较合适

Linux系统支持用户自行调节交换权重,通俗点说,就是可以自己决定系统触发交换动作的积极程度。这个数值的可设置区间是0到100,数值越低,内核就越倾向于少用交换机制;数值越高,内核就会越频繁地调用交换空间。

交换权重这项参数的默认值以及官方建议值都是60,如果有朋友对此感兴趣,不妨专门去研究一下swappiness这个Linux内核参数,具体细节这里就不多展开了。

5. 用虚拟内存到底能带来哪些好处

  • 能把那些长期占着位置却几乎用不上的RAM区块轻松腾挪出来,然后把这部分空出来的RAM让给优先级更高的程序去使用。
  • 有效避免RAM彻底耗尽、导致其他程序根本无法启动运行的尴尬局面。
  • 相当于给RAM配了一个后备资源池,变相扩大了RAM可用的实际容量。
  • 系统进入休眠状态时,RAM里的所有数据都要写入交换空间保存,因此想让休眠顺利完成,虚拟内存是绕不开的必要条件。
  • 只要内核参数swappiness设置得当,虚拟内存还能对系统整体性能起到提升作用。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/3257.html

Like (0)
Previous 2026年7月25日
Next 2026年7月27日

相关推荐

  • 如何在 Linux 服务器上部署 OpenClaw:运行自主 AI 代理的详细指南

    大多数使用 AI 工具的人都习惯了一种特定模式:输入内容,工具给出响应,然后就停止运行。除非再次发起询问,否则它不会有任何动作。OpenClaw 彻底打破了这种模式。它是一款可自行…

    2026年4月17日
    0
  • Linux 中的删除目录:rm 和 rmdir 解析

    在 Linux 中,需要删除目录文件时靠两个命令就能完成:rm 和 rmdir。乍一看它们相似,但行为却截然不同,如使用错误的命令,可能会删除远超预期的内容。 Linux rm 和…

    2026年3月30日
    0
  • 什么是电子邮件安全?电子邮件安全的原理

    电子邮件安全是一套用于保护电子邮件通信免受未经授权访问、冒充、恶意软件及其他形式的滥用的技术和实践。 它有助于保持信息私密,验证发件人是否合法,并降低钓鱼、伪造和有害附件进入收件箱…

    2026年3月26日
    0
  • web应用渗透测试流程

    对于web应用的渗透测试,大致可分为三个阶段:信息收集、漏洞发现以及漏洞利用。在实践过程中需要进一步明细测试的流程,以下通过9个阶段来描述渗透测试的整个流程: 1.明确目标 1)确…

    2026年5月30日
    0
  • 如何防御CC攻击?

    一、CC攻击的运作原理 CC攻击的核心原理在于攻击者操控若干台主机,持续不断地向目标服务器发送海量数据请求,从而造成服务器资源被大量耗尽,直至最终陷入宕机崩溃的境地。CC攻击主要就…

    2026年7月20日
    0
  • 什么是LLM?企业导入LLM的常见应用场景

    自2022年ChatGPT的惊艳问世,到如今国内文心一言、豆包、deekseek、千问等国内AI工具激烈竞争,生成式人工智能已彻底改变了我们的生活与工作方式。但你是否好奇,这些强大…

    2026年4月1日
    0
  • HTTPS靠什么保障通信安全?

    大多数人都听说过HTTPS,也清楚它的作用是保障通信安全,但如果没仔细研究过,大概率说不清它到底是怎么做到的。 这篇文章围绕三个核心问题展开: 1、HTTPS到底是什么? 2、它跟…

    2026年6月11日
    0
  • 如何在Ubuntu和Debian上设置时区和NTP

    对于服务器管理员来说,正确配置和维护服务器上的时间是很重要的。错误的时间配置将导致服务器环境混乱,例如数据不一致、数据同步失败和作业调度等问题。 为了避免这些情況,首先需要在服务器…

    2026年5月11日
    0
  • 网络图片侵权被告?赔偿标准是多少

    为网络的开放特性与便利性,使得网络上非常容易出现图片侵权状况,大量图片版权拥有者在毫不知情的状态下被他人直接使用自己创作或拍摄的图片,当察觉自身权益遭到侵害时,无论对方是有意还是无…

    2026年6月4日
    0
  • CDN高防如何抵御网络攻击?

    随着云计算与移动互联网的迅猛发展,越来越多的业务开始转向云端展开,越来越多的数据也被存储于云端,云计算所面临的信息安全问题正日趋严峻。基于漏洞、病毒、未知威胁发起的攻击日益频繁且趋…

    2026年7月25日
    0