修改 Windows“Swappiness”

rat*_*ath 12 windows-7 swap

Windows 7 中是否有可修改的“swappiness”等价物?

我的系统有 8GB 的​​ RAM,这对于我的日常使用来说绰绰有余。我想修改交换行为,*NIX 系统称之为swappiness并将其设置为 0,就像我在我的 Ubuntu 机器上所做的那样。

我已经在网上搜索过这个,但所有的答案似乎都是针对 *NIX 系统的。

wul*_*lxz 7

在 Windows 下,有一种叫做“页面文件”的东西,系统可以在其中交换应用程序以释放 RAM。我目前没有在Windows机器,但已安装Adobe放到网上的步骤在这里看的权利(我觉得Win+Pause是一个快捷方式到“高级系统设置)。

尽管可以禁用页面文件,但对此存在一些担忧。有关更多信息,请阅读

  • 正如您在评论中所说,Windows 确实似乎没有针对内存不足错误的保护措施。这让我相信没有“交换”等价物。+1 尽管如此,对于我学到的有趣的新快捷方式,并标记为已接受,因为您发布的链接将我引导至 [这篇文章](http://blogs.technet.com/b/markrussinovich/archive/2008/11/ 17/3155406.aspx)。干杯 (2认同)

小智 6

虚拟内存不仅仅是“应用程序分配 RAM,当物理 RAM 耗尽时,某些内容会被调出到交换空间”。

在Linux(可能还有UNIX)中,系统尝试将最近读取的页面保存在RAM中:执行的程序、加载的数据、最近写入的数据(也已经在磁盘上)等。这样,如果再次执行相同的程序,它就不会发生变化。不必从磁盘重新加载。当某些程序要求将更多内存分配给其虚拟地址空间时,首先会重新调整剩余的磁盘缓冲区的用途(无需磁盘访问)。如果这还不够,最近未访问过的正在运行的应用程序的某些页面实际上会被换出。在 Linux 上,交换通常根本不会发生。一旦你的系统开始交换,你就会注意到驱动器活动增加(和迟缓),然后你就会“哦,这是什么鬼……”,因为这可能意味着某些应用程序正在泄漏内存,或者幕后的某些东西已经开始失去控制。

Windows 传统上有一个愚蠢的额外习惯,即它们在不活动一段时间后交换整个用户空间应用程序。严格来说,没有原谅,只是为了拥有尽可能多的可用内存,“以防万一”你想启动另一个饥饿的应用程序。如果你让你的电脑保持运行,然后你离开几个小时,当你回来时,你会发现你切换到的任何应用程序都会从​​交换中缓慢地重新加载。这种行为在 Windows 2000 中尤其令人痛苦,并且在更现代的 Windows 版本中逐渐变得不那么明显。在 W2k 中,关闭交换是理所当然的事情。Windows 7 仍然可以像蜂蜜一样渗出,有时没有特殊原因,Windows 8.1 和 10 明显更好......但仍然没有可调整的“交换”旋钮,或交换算法的其他可调整参数。

还有其他因素可能导致系统缓慢的磁盘访问速度。在 Windows 7 中,您永远不知道系统是否刚刚以旧式 W2k 方式替换了您的应用程序,或者您是否应该将应用程序启动速度如此缓慢的事实归咎于防病毒软件,或者 Windows Update 是否在执行某些操作这次的背景(已知其算法中存在往复的怪癖,导致 100% CPU 消耗和/或磁盘抖动而挂起),或者如果特定的某些 .NET Framework 管理任务在 WinSXS 数据库中丢失或什么。有时/在某些 Microsoft 软件版本/化身中,实际上似乎某些 Windows 原生“后台任务”(特别是 Windows 更新本地数据库管理)被故意“隐藏”在任务管理器中,它们的 CPU 和 RAM 使用情况并没有改变。显示总内存消耗。“合法”活动,但很难与恶意软件 Rootkit 区分开来……只有当攻击停止并且立即弹出“有新更新可用”的气球时,您才知道原因是什么。

至少最近的 Windows 版本可以告诉您每个进程的磁盘 IO 活动,并且现在单独报告各个服务(而不是单个 SVCHOST.EXE 进程)。