暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux和windows虚拟内存区别

IT那活儿 2023-02-17
1212

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!




Linux虚拟内存



Linux系统的Swap分区,即交换分区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。

那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。

1. 达到交换的比例配置

# cat /proc/sys/vm/swappiness
Bash

  • swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间。
  • swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
  • linux的基本默认设置为60。

2. 修改交换的比例配置

# vim etc/sysctl.conf
vm.swappiness = 10 # 最后一行新增
# sysctl -p # 加载生效
Bash




Windows虚拟内存



在 Windows中,虚拟内存(狭义虚拟内存)其实是一个容量很大的文件 pagefile. sys,称之为页面文件。

1. Windows虚拟内存大小

Windows虚拟内存(广义虚拟内存) = 物理内存 + 分页文件(狭义虚拟内存)

2. Windows申请内存机制

Windows申请内存会向整个虚拟内存池中进行申请,具体是分配物理内存还是虚拟内存,看当时内存池中的资源,由于申请≠使用,windows这种分配内存方式让物理内存的利用最大化。
  • 提交大小——给当前进程使用而保留的私有虚拟内存的数量,不一定完全被使用。
  • 工作集——专用工作集 + 共享工作集。
  • 专用工作集——进程独占物理内存。
  • 共享工作集——可以和别的进程共享的物理内存值。

3. Windows程序崩溃情况

如果出现内存使用(虚拟内存)使用率接近100%时,当时提交的进程会超出限制,则这个进程会崩溃无响应。观察历史的问题windows主机出现问题的不是最大使用内存的进程,往往是最后一个触发底线的进程。
类似如下图这种情况,可以进行页面文件扩容 观察情况。
类似下图这种情况,理论上程序稳定的情况下无需进行操作。

4. windows内存清理工具

windows工具无法达到清理软件内存效果,市面上常见的清理工具比如腾讯安全管家这种,机制是申请新的大量内存进行读写并释放,非必须使用的内存就会替换至分页文件中。
这样好处是下一个应用申请内存会申请到物理内存中。从效果上看是物理内存被释放了,实际上整个虚拟内存池是未有变化的。程序的提交、使用内存只能由程序进行增删控制。

END


本文作者:刘玉翀(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论