标签: virtual-memory

如何解释 Windows XP 的虚拟内存信息 - 10 个数字和 1 个图形

如何解释 Windows XP 虚拟内存信息中的数字?我实际上只是对以下内容感兴趣:

1) 与“未触及”物理 RAM 中的空闲总大小是多少,因此系统根本不会交换

为了进行实验,我使用 Windows 7 设置了一个虚拟机,运行 Windows XP,内存为 768MB。 为简单起见,虚拟内存设置为“0”(不要使用任何页面文件)。 以下是系统信息和图表:

替代文字

那么 145MB(大约)是“未触及的”物理 RAM 吗?实际上有一个案例,当这个数字大约为120MB时,XP在任务栏弹出一个小气球,说“虚拟内存不足”。我相信我正在运行的小应用程序应该只请求几 MB。所以 120MB 应该足够了。所以我想知道为什么会这样。

其他数字呢?

785904
145432 (listing here to make a complete list)
128436

29312
23620
5692

25
740252
735132

582MB (the bar for PF Usage)

and the horizontal line for "Page File Usage History"
Run Code Online (Sandbox Code Playgroud)

现在,既然虚拟内存设置为“不使用任何页面文件”,那么 PF Usage 不应该是 0 吗?那么“页面文件使用历史记录”的水平线应该始终保持在 0 吗?谢谢。

更新: 假设页面文件是固定的 256MB 文件大小,并且信息也如上图所示,那么这 10 个数字如何解释?

在这种情况下,如果“可用”下降缓慢,现在仍然是 120MB,那么应该意味着根本没有使用页面文件?

windows-7 swap pagefile virtual-memory

5
推荐指数
1
解决办法
1467
查看次数

如何增加硬盘寿命?

1)影响硬盘寿命的因素有哪些?

2) 频繁写入磁盘是否会缩短其寿命?

3) 硬盘在正常情况下的平均寿命是多少?

4) 硬盘上少写多读会延长寿命吗?

5) 磁盘上的虚拟内存(文件分页)如何影响其寿命?

6) 是否有专门为过度写入而构建的特定硬盘?

hard-drive virtual-memory overwrite

5
推荐指数
1
解决办法
1868
查看次数

x86 PM 架构上的交换、分页、分段和虚拟内存

好吧,这似乎是一个常见的或已经被问到的问题,但是在搜索了各种书籍、在线教程甚至 SU 之后,我仍然对这四个野兽如何在 x86 保护模式系统上协同工作感到困惑。

讨论这些事情时可以使用的正确术语是什么?

据我了解,这 4 个概念完全不同,但在我们谈论保护内存时却是相关的。这就是我搞砸的地方!

我先从交换开始。

交换:

进程必须在物理内存中才能执行。进程可以暂时从物理内存交换到后备存储,然后再带回内存继续执行。

这特别适用于同时执行多个进程的多任务环境,因此实现了 cpu 调度程序来决定将哪个进程交换到后备存储。

分页:又名简单分页:

假设一个进程拥有它使用/访问的所有地址在 0 到 16MB 的范围内,比如说。我们可以称之为进程逻辑地址空间,因为地址是由进程生成的。

请注意,根据此定义,一个进程的逻辑地址空间可以与另一个进程的逻辑地址空间不同,因为该进程可能更大或更小。

现在我们将进程的这个逻辑地址空间划分为相同大小的块,称为pages。还将物理内存划分为称为frame 的固定大小的块。

由定义。逻辑地址 = 页#:该页的偏移量

当一个进程被 cpu 调度程序选择执行时,它的页面从后备存储加载到任何可用的内存帧中。

请注意,在将控制权从调度程序转移到该进程之前,属于该进程的所有页面都已加载到内存中。当这个进程被交换到后备存储时,它的所有页面都存储在后备存储上。

后备存储被分成与物理内存帧大小相同的固定大小的块。

这简化了交换过程,因为我们交换的是页面而不是字节。这减少了后备存储的碎片,因为我们不需要为某些字节找到空间,而是查看空间是否可用于页面。

分页技术还减少了物理内存的碎片化,因为我们将页面保留在内存中。

主内存必须为属于进程的所有页面提供空间,以便将该进程加载到内存中以供执行。如果只有这个进程的几页空间,那么一些其他进程(即属于进程的所有页面)必须交换到后备存储,然后只有要执行的进程的所有页面必须加载到内存中。

因此分页技术比简单的交换提供更好的性能。

因此,交换允许我们在不购买太多内存的情况下运行多个进程,相反,我们可以使用少量内存(这个数量必须使得要在 PC 上运行的最大程序/进程的所有页面可以加载到内存中——即你必须知道你的程序在运行之前需要多少内存。)加上一个额外的后备存储,通常是磁盘,对于比主内存大得多的容量,它的成本非常低。

所以交换+分页可以有效地管理内存,以便多个进程可以在一个系统上运行。

需求分页:

但是安装在系统中的物理内存不必与进程的要求相同。还需要运行多个进程。

解决方案是只将进程的部分页面加载到内存中,当进程访问不在内存中的页面中的地址时,就会产生页面错误,操作系统按需加载该页面 以便进程可以继续执行. 这节省了在将控制转移到该进程之前加载该进程的所有页面的时间 - 就像分页 + 交换的情况一样。

这种仅将进程的一部分保留在内存中,并保留在后备存储(例如磁盘)上的技术称为需求分页。 …

operating-systems virtual-memory memory-management paging protected-mode

5
推荐指数
1
解决办法
3万
查看次数

Windows - 如何刷新修改的内存?

这是我上一个问题的后续问题,在这里:
Windows修改了没有页面文件的内存

根据资源监视器(Win 7 x64),我没有页面文件和大量修改的内存。我最初问题的回答者说修改后的内存必须写入“后备存储”,当我问他是否指的是磁盘上的文件时,他说是的。因此,我有Sysinternals 的 RamMap 程序,并且尝试了“清空修改的页面列表”选项,但没有任何变化。

现在我正在使用千兆字节的修改内存,VMWare Workstation(打开几个虚拟机)和Firefox(打开大量选项卡)似乎总是这样。我怎样才能刷新修改的内存,有什么方法可以让Windows在不启用页面文件的情况下更频繁地执行此操作?

谢谢

编辑 - 此后我发现了几兆修改内存的来源来自运行 Sysinternals 的进程监视器。当我关闭 Process Monitor 后,我又恢复了一些工作。修改后的内存不会显示在 RAMMap 的进程列表中。

memory windows pagefile virtual-memory memory-management

5
推荐指数
1
解决办法
2万
查看次数

当分页文件与操作系统驱动器分离时,为什么 Windows 7 不会记录崩溃详细信息,我可以对此做些什么吗?

我有一个专门用于虚拟内存分页文件的辅助硬盘驱动器(一个单独的物理设备,而不是一个逻辑分区)。该驱动器比我的 RAM 大 3.5 倍,因此它足够大。

当我配置 Windows 7 的虚拟内存以将分页文件放在第二个硬盘上而不是与操作系统相同的驱动器上时,我被警告,

如果禁用分页文件或将初始大小设置为小于 800 兆字节并且出现系统错误,Windows 可能不会记录有助于识别问题的详细信息。你要继续吗?

因此,换句话说,如果出现蓝屏死机,我将无法调查原因,因为我将分页文件放在了更有效的位置。

我从网上搜索能找到的最好解释是,Windows 只是不想在与操作系统位置分开的驱动器上进行错误转储。 任何人都可以给我一个少废话的解释吗?

我不想告诉 Windows,“当然,继续管理主驱动器上的分页文件” 这样我就可以获得调试转储,因为这完全违背了物理分离分页文件的目的。 是否有解决方法可以将我的分页文件放在单独的驱动器上并仍然获得错误转储?

windows-7 virtual-memory

5
推荐指数
2
解决办法
2266
查看次数

共享 GPU 内存。我可以关闭这个功能吗?

我在跑步:

  • Windows 10
  • 英伟达 GTX1070-8GB
  • 24GB 系统内存
  • i7

视窗10

我的视频编辑器遇到问题,抱怨 GPU 内存耗尽。

在检查我的资源时,我注意到 Windows 为我的卡分配了“共享 GPU 内存”。

就我而言,我报告的 GPU 内存“总计”增加了 12GB,达到 20GB。(8GB Nvidia + 12GB 共享)

任务管理器截图

对于我的一生,我找不到任何设置来改变这一点。不在 Nvidia 驱动程序应用程序中,不在 Windows 中,也不在 BIOS 中。

有谁知道如何关闭此功能?我怀疑它可能会影响我的应用程序抱怨视频内存,因为当它崩溃并报告 GPU 内存不足错误时,任务管理器显示物理 GPU 内存低于 6GB(总共 8GB)。

我到底如何摆脱这个“共享 GPU 内存”,以便我可以测试我的理论?

这就是我的视频编辑器正在执行其操作时我的资源的样子...Windows 肯定正在分配和使用“共享视频内存”

我的实际错误详细信息:

应用程序:达芬奇解决工作室16.2

达芬奇错误

调试日志:

[0x000019c0]| GPU管理器| 信息| 2020-04-28 20:34:00,244 | 刷新 GPU 内存...

[0x000019c0]| DVIP | 错误| 2020-04-28 20:34:00,815 | cudaMallocArray 失败:请求的大小 126.6 MiB(7680x4320-1 数据类型大小 4)

[0x000019c0]| DVIP | 错误| 2020-04-28 20:34:00,815 | DeviceResourceTypeCUDA.cpp:177: CUDA 错误 cudaErrorMemoryAllocation …

memory gpu virtual-memory nvidia-graphics-card windows-10

5
推荐指数
1
解决办法
6万
查看次数

通过 PID 识别 Google Chrome 的一个实例

在工作时,我通常需要一次打开大约 40 个窗口并运行 100-200 个进程。当内存限制成为一个问题时,我开始挑选资源最密集和一次性的进程。通常这些是 chrome.exe。

能够将特别需要内存的 chrome 实例与其 PID 相匹配会很有帮助,这样我就可以有选择地关闭它。也就是说,如果我知道它当前打开的页面标题是什么,我可以选择它是生还是死。

我试过 Process Explorer 无济于事。

在任务管理器中,您可以从应用程序转到进程。有什么办法可以反过来吗?

memory google-chrome virtual-memory process-explorer

4
推荐指数
1
解决办法
4495
查看次数

在 Windows 8 中禁用虚拟内存好不好?

我有一个带有 SSD (mSata) 和 HDD 的超极本混合体,与英特尔快速存储一起工作,我的 PC 有 6 GB 内存。所以我想知道我是否可以禁用虚拟内存以及我应该做些什么来提高系统的性能?

我正在使用带有核心 i3 u3217 的 Windows 8。

virtual-memory msata windows-8

4
推荐指数
1
解决办法
1万
查看次数

如何增加虚拟机磁盘空间?

我试图增加虚拟机的可用磁盘空间,但没有用,尝试了很多在这里和其他网站上写的东西,主要是说这可以通过Virtual Media Manager,我按照以下步骤操作:

文件>虚拟媒体管理器>“:但在这里所建议的这个环节,我不能找到一个新的选项,添加新的虚拟磁盘如何提高硬盘大小在VirtualBox中

我知道的另一个选项是从 Virtual 框中转到 VM 的设置,然后选择 Storage,但同样,增加内存的选项不可用-突出显示-。

我正在使用带有 8GB 固定存储空间的linuxmint-13-cinnamon-64bit

*我无法添加屏幕截图,因为我没有足够的声誉。

virtualbox linux-mint virtual-memory virtual-machine

4
推荐指数
1
解决办法
4万
查看次数

为什么 Windows 总是使用与安装的 RAM 一样多的虚拟内存?

为什么它希望最多是该数量的两倍?我的系统有 32GB 的 RAM 和 Windows,默认情况下,设置最小 16MB 虚拟内存,分配 32GB(!) 并推荐 50GB(!!)。在 64GB RAM 系统上更糟糕的是,它建议分配超过 100GB,尽管它“仅”再次使用与 RAM 中可用的相同数量,在这种情况下为 64GB。

据我了解,页面文件的概念是 Windows 仅在需要时扩展它,并从最小数量开始,尽管它从来没有,但它总是进入绝对最大值。这非常烦人,因为禁用页面文件或不将其设置为安装的等量 RAM,会导致一些使用大量内存的程序(如 7zip)出现问题,他们只是声称即使有足够的内存也没有足够的内存可供分配可用内存。

这种行为可能会极大地缩短我的驱动器 (SSD) 的使用寿命。为什么 Windows 会这样做,我该如何防止这种情况发生,或者如何完全禁用页面文件而不会在某些程序中出现奇怪的行为。

memory windows windows-7 pagefile virtual-memory

4
推荐指数
1
解决办法
7713
查看次数