Questions tagged «virtual-memory»

虚拟内存是一种为每个进程分配自己的地址空间(虚拟内存)的方法,硬件会将每个VM引用转换为一个物理内存地址。最初,VM用于提供比可用物理内存更多的地址空间。为了适应使用的虚拟内存多于物理内存的情况,可以使用诸如HDD之类的存储设备来“交换”数据,然后根据需要“交换(回)”。

12
如果我有大量RAM,应该禁用交换文件还是应该将其移至虚拟RAM驱动器?
想象一下,我有大量的RAM。假设是64GB。甚至对于游戏PC来说,这也很多。现在,Windows中页面文件的默认位置在主OS驱动器上,无论是HDD还是SSD,它们通常都更快,但仍不如RAM快。 某件事告诉我,禁用硬盘驱动器上的页面文件或创建虚拟RAM驱动器并将页面文件保留在其中可能会使Windows将其所有虚拟内存移至RAM,从而提高系统的性能,但是我对此并不了解区域,因此可能根本不正确。 我都尝试过,但是我无法用我对记忆事物的知识水平来分析结果以得出明确的结论。 这行得通吗?如果没有,为什么?


2
在Mac OS X中取消暂停应用程序
我尝试解析一个巨大的XML文件,结果虚拟内存用完了。该操作系统暂停了我所有的应用程序,并为我提供了关闭应用程序以释放更多空间的屏幕。我杀死了XML解析应用程序,现在有很多空间,但是我无法继续我暂停的应用程序。我该怎么办?

6
什么是虚拟内存?
我仔细检查了有关“虚拟内存”的注释,教科书中的定义是: 分配一部分二级存储以充当主内存的一部分的过程 凡为维基百科说: 虚拟内存是一种计算机系统技术,可以使应用程序拥有连续的工作内存(地址空间)的印象。 和(维基百科也说) 请注意,“虚拟内存”不仅仅是“使用磁盘空间扩展物理内存大小” 谁能提供关于哪个正确的任何澄清?

3
当不使用页面文件时,提交电量为100%充满,但物理内存仅为60%
我已禁用页面文件在我的系统(硬盘是太缓慢,不能买一个新的马上,不能页面文件移动到另一个分区)。当我查看Resource Monitor时,使用要求内存的应用程序,系统显示提交费用几乎已满100%。的确,如果我继续要求更多的内存,那么随着提交费用有效地达到100%,程序就会开始崩溃。 同时,系统表示我仅使用50-60%的物理内存,并且具有大约1GB的可用内存(空闲+备用)。 如果提交费用是实际请求的总内存,那么系统为什么会说这么多的可用内存?Windows是否正在使用物理内存?内存图是否错误?我想念什么吗?

4
当内核仍然支持分页/虚拟内存时,为什么Linux使用交换分区?
据我了解分页和交换,它们是完全不同的概念。交换意味着进程要么完全在物理内存中,要么在硬盘上,进程的分页部分可以在物理内存中,而其他部分可以在硬盘上。 但是,为什么Linux需要交换分区呢?如果物理内存已满,则某些进程将外包给硬盘驱动器,并且新进程将从虚拟内存映射到物理内存。 我只是不明白为什么需要一个交换分区(或一般交换)? 还是这仅仅是术语问题swap partition == virtual memory?


2
如何诊断不断膨胀的OS X kernel_task和有线内存使用情况?
我有一个非常奇怪的问题,我很难对根本原因进行诊断。 我有一个Mac Pro(2008、8核2.8 GHz,8800GT)和14 GB的RAM(由于这个问题,最近进行了升级!)。 当我引导系统并登录时,vm_stat / top / Activity Monitor将显示kernel_task已分配了大约150 MB,而计算机已分配了大约800 MB的有线内存。 即使最初,800 MB似乎分配了很多有线内存,而没有运行任何应用程序-但是,情况变得更糟。(注意:有线已锁定,不可交换的内存) 在很短的时间后,有时是由启动终端之类的简单操作触发的,kernel_task将膨胀到8-900 MB的Real Mem(RSIZE),而Wired Memory将加速到1.6 GB(这意味着所有额外的内存请求都针对内核中的有线RAM)。 如果我退出所有内容(即:没有正在运行的应用程序,禁止活动监视器或终端查看顶部),则kernel_task RSIZE或有线内存使用率均不会显着降低。相反,向系统加载任务也表明有线内存不会减少-重要的是,它不会优先于大量交换而减少。 如果我注销并再次登录,它会减少一点(450 MB kernel_task,1.28 GB有线),但不会重新开始。 我没有运行任何古怪的kext秒-和futhermore,kextstat没有显示出巨大的内存分配出现; 最大的是com.apple.nvidia.nv50hal,其内存约为4 MB。 发生这种情况时,机器总体上感觉更加缓慢-毫不奇怪,因为如此大量的RAM被标记为不可分页。 所以我有几个问题: 1)有没有一种好的方法来诊断什么分配了所有此有线内存?它通常是kernel_task大小的2倍以上,不运行任何应用程序。实际的内存总数似乎并没有增加-似乎有一堆RAM并未在任何地方被占用。 2)发生什么情况导致内核突然需要6倍的内存?

5
给定的Mac应用程序使用多少交换空间?
有什么方法可以判断在Mac OSX(10.2+)上运行的特定应用程序是否已将其部分内存换出(即,换成其中一个/private/var/vm/swapfile*文件)?多少钱? 赏金(150 rps) 简单的问题。如果我在悬赏期满后不到两天的时间内看到第一个正确答案,则该答案会被接受。如果我还没有,那我将把它奖励给那些告诉我最有趣的新事实的人。如果我从任何答案中都没有学到任何东西,我将把赏金奖励给写得最多的人。

6
我还需要使用虚拟内存吗?
我原本以为这已经被问到了,但我似乎无法找到它。 在什么时候我不再需要启用虚拟内存?有了4GB的RAM,我发现计算机很少使用它附近的任何地方。此时虚拟内存并非绝对必要。关掉它有危险吗?如果我这样做,我会失去什么功能吗?

2
ImDisk:从命令行创建物理内存驱动器(不是虚拟内存驱动器)
我正在使用ImDisk在Windows 7中创建虚拟驱动器。我将其用作文档的临时驱动器,并且每次计算机/ Windows重新启动时都会创建该驱动器。这很好 但是,我想在物理内存而不是虚拟内存中创建驱动器。 在Windows的配置选项卡中,有“ ImDisk虚拟磁盘驱动程序”。使用此工具可以在物理内存中创建虚拟磁盘(另请参见下图),但是命令行版本没有物理内存选项,或者我不知道。 是否可以在命令行在物理内存中创建虚拟磁盘? 这是我当前使用的命令行批处理代码: imdisk -a -s 512M -m Z: -p "/fs:ntfs /v:RAMDISK /A:512 /q /c /y" 我该怎么做呢?

5
增加页面文件或购买RAM?
我有一台10年前的XP PC,令人惊讶的是它仍然可以工作,但是其中一个256MB RAM最终消失了。现在剩下的只有256MB。不出所料,PC变慢了,但是当我尝试将页面文件增加到最小4GB,最大4GB时,它又变得非常快,达到了可接受的水平。我的问题是: 如果因为目前的性能已经可以接受而购买更多的RAM,它会更快吗? 仅具有256MB RAM但4GB页面文件会带来一些影响吗(也许HDD受到了冲击)?

1
Linux过度使用内存
我一直在研究在Linux中使用的内存过度使用/proc/sys/vm/overcommit_memory,我读过一些不说同样内容的文章。 这个文档在“走向错误的方向”的标题下继续说,“值1:做过度使用,0(默认):不要”,但接下来的几行,它提到,在类似的事实上,这实际上并不正确,而0意味着“猜测过度承诺是多么合理”。这意味着,内存过量使用不使用值0,正确的禁用? 它还表示1表示“永远不会拒绝任何malloc()”,其中2表示“确切地说是过度使用 - 永远不会提交大于交换空间的虚拟地址空间加上物理内存的分数overcommit_ratio”。 另一方面,Red Hat杂志指出,“如果值为0,则内核检查以确定是否有足够的内存可以释放来自应用程序的malloc调用的内存请求。如果有足够的内存,那么请求被授予。否则,它被拒绝并且错误代码被返回给应用程序。“ 这听起来就像禁用过度使用。 “如果该值设置为1,则内核授予的分配高于物理RAM的数量,并在系统中交换,如overcommit_ratio值所定义....如果此文件中的设置为2,则内核允许所有内存分配,无论当前的内存分配状态如何。“ 就值1和2而言,这与之前的文档所说的相反,对吧? 有谁知道什么是真正的正确,如果有可能'禁用'过度使用?

3
没有分页文件运行时,如何抑制Vista Home Premium中的“内存不足”警告?
几周前,我禁用了Media Center上的所有页面文件。我发现它只能运行AVG,Media Center,Logmein,Chrome和其他服务来支持这些服务,并且永远不会超过1.4-1.5 GB的物理内存使用,那么这有什么危害呢?总体而言,这非常出色,并且没有出现驱动器抖动的情况。 但是,Windows坚持弹出警告,提示系统内存不足,尽管从来没有少于450 MB的可用RAM。现在我知道为什么这样做了,幸运的是弹出窗口不会干扰Media Center(否则,妻子肯定会有话要说!),但是每次我回到桌面做一些沙发冲浪时,有一个警告对话框。 有没有一种我可以基本告诉Windows的方法: “是的,我知道物理内存还不多,但是我现在是个大男孩,我知道我在做什么,所以如果某个任性的过程吞噬了我所有的备用RAM,就让我去做葬礼吧。”

3
与Linux系统中交换区域的数量无关吗
如果Linux中的交换区域的数量设置得太小(例如1Gb),而主RAM是,这有关系128Gb吗? 我们是否应该始终将交换区域的数量设置为RAM数量的两倍? 更新: 嗨,谢谢大家回答这个问题。实际上,我有这个问题,因为在使用小型集群系统时我们遇到了一些问题。问题在此处发布。下图是有关此小型群集中某些计算机的一些信息。 的MEMTOT是该机器的RAM的总量中,SWAPTO是SW AP区域该机器的总量,并且SWAPUS是SWAP区域的使用量。如图所示,SWAP的使用确实很小。 如图中所示,当尝试解决在here中发布的那些问题时,我们不确定SWAP区域的数量是否设置得太小(与1Gb相对)128Gb。因此,我有这个问题。抱歉,我没有在这篇文章的原始版本中发布整个背景信息。在此之前,我们还认为如果RAM数量很大,我们可以将SWAP数量设置得很小。我们试图将SWAP设置c0148为16Gb,问题似乎不存在(也许我们应该在长期观察它们的状态之后得出这个结论)。 我们不是Linux系统方面的专家,我们无法解释为什么会这样。这很可能是集群系统,并且SGE正在管理每台计算机的资源,并且它需要具有相对大量的SWAP,因为该计算机可能由许多用户提交的许多作业使用。 另外,如果我们只是将SWAP的数量设置得太大,那么它还会引起什么其他问题也是值得考虑的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.