暂时禁用RAM以模仿规格较低的计算机?


30

我有两本2009年的Macbook。其中一个具有4 GB的RAM并运行os 10.10。一个有2个演出并运行os 10.5。

我正在考虑将后一台计算机升级到优胜美地(10.10),但我担心它会在内存很少的情况下缓慢运行。为了了解性能,我想知道是否可以通过某种方式“关闭”更高规格机器中的一半RAM。如果这样做,我可以在实际进行升级之前了解优胜美地在2 gig计算机上的运行方式。

有什么方法可以在不物理移除芯片的情况下临时禁用RAM?


为什么不要求卸下芯片?您不能只交换两个MacBook的物理RAM吗?
SaaruLindestøkke2015年

4
我没有合适的螺丝刀。
分贝”

3
2009年MacBook Pro将接受DDR3 1333 MHz随机存取内存(它将降速至1066MHz)。您可以以30美元的价格购买。这些机器最多需要8GB。添加一个SSD,这仍然是一个非常不错的机器。
贾斯珀·布鲁斯

@dB'请接受OSdweeb的回答。而不是我的 尽管您必须重新启动,但它是一种优雅且默认的方法,对于10.9 / 10.10及更高版本,它可以提供更可靠的结果。RAM磁盘非常适合Mac OS X 10.8或更高版本,而无需重新启动和篡改系统文件。
klanomath

Answers:


25

无需取出RAM,创建RAM磁盘或使用VM。只需使用maxmem=为此目的创建的启动标志值来启动操作系统,并且已经存在了数十年。

只需将Terminal作为sudoer打开并输入

sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

输入密码后

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>Kernel Flags</key>
        <string></string>
</dict>
</plist>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>Kernel Flags</key>
        <string>maxmem=2048</string>
</dict>
</plist>

并使用将更改写入磁盘ctrlo并使用退出nanoctrlx

重新启动Mac以应用更改。

要还原更改,请再次使用nano删除'maxmem = 2048'。


2
我的大脑是一个旧的垃圾桶...昨天,我试图找到这个简单的解决方案,来吧地狱或高水-我知道它的存在-但我只是不记得了。
klanomath

1
顺便说一句:您最好完成注册,否则,如果您不小心丢失了cookie,将无法再登录您的帐户。
nicael 2015年

正如15年4月4日所写的那样,该答案可能已通过OS X 10.10 Yosemite在OS X上运行;但是,除非先禁用系统完整性保护,否则它在OS X 10.11 El Capitan和更高版本上将不再起作用。请参阅如何在El Capitan中修改系统完整性保护,尽管其说明适用于El Capitan,但相同的基本说明适用于更新的macOS版本。
user3439894

14

只需创建一个大小为2 GiB的RAM磁盘,以减少系统和正在运行的应用程序的可用RAM。

要获得创建此类磁盘所需的块数,请乘以(RAMdiskSize以MB为单位)* 2048。在您的示例中为2048 * 2048 = 4194304。

然后打开终端并输入:

diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach -nomount ram://4194304`

您将收到与该消息相似的消息:

Started erase on disk9  
Unmounting disk  
Erasing  
Initialized /dev/rdisk9 as a 2 GB HFS Plus volume  
Mounting disk  
Finished erase on disk9 RAM Disk  

然后使用dd和卷的路径,并用随机数据填充磁盘:

dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k

该命令将1个MiB块随机数据写入RAM磁盘卷中的文件random.dat中,直到充满为止。

这将人为地将可用RAM减少约2 GiB,直到卸载RAM磁盘或重新启动Mac。

经过一些测试,它似乎不像旧系统那样可靠。原因是最新系统(10.9及更高版本)中的新内存管理。
RAM磁盘使用的内存不应交换到磁盘,但是根据随机数据文件的质量,它可能会被压缩一点。您可以将RAM磁盘大小增加5-10%至〜2.1 GB,以获得更逼真的图像。


如果要在10.5-10.8中执行此操作,则以下命令似乎足以获得可靠的结果(要获取磁盘标识符,请检查diskutil...命令的输出):

dd if=/dev/zero of=/dev/rdisk9 bs=1m

很酷的解决方案!如果我理解正确,我已经抢购了2 gig的ram内存。分配了2 GB的RAM,但是,由于我没有将ram磁盘用于任何用途,因此实际上没有任何处理程序访问它。如果我有虚拟内存,操作系统会不会将此未使用的ram块写入我的swapfile中,从而有效地释放2个演出?
dB'15年

@dB'关于未使用的RAM,您的第一句话是对的。实际上,它可能会得到高度压缩,从而留下大量可用RAM。所以我修改了答案,用随机数据填充磁盘以绕过磁盘。
klanomath

您可能只需要转储磁盘大小的所有计算,然后让dd填满整个磁盘:dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k
Josh

@Josh我将再次尝试并修改我的答案(如果可行)。昨天我在VM中执行命令时遇到问题。我刚遇到“资源繁忙”错误,但未将任何内容写入该卷。
klanomath

如果您正在写入文件 of=/Volumes/RAM\ Disk/random.dat,则应该没问题。如果要写入磁盘,of=/dev/rdisk9则必须是root用户,并且可能必须将其卸载。(应将其卸载,否则系统会感到困惑)
Josh

8

是的-使用该memory_pressure工具向系统施加实际内存压力。

删除内存芯片并不是一个完美的类比,因为虚拟内存调优仍然知道有4 GB或RAM,并且-p percent_free参数不会分配恒定数量的RAM,但会使系统接近X%的可用空间。

即使模拟不完善,它也应使您能够快速查看您的工作负载是否适合2 GB内存的系统。

如果可以从物理上卸下芯片,则可以先进行仿真并获得基准,然后在需要验证其准确性的情况下进行硬件更改。


我看到的卸下物理芯片的主要问题是,图像中也删除了双通道模式。这个答案中的第一个选项似乎是一种更好的方法,因为真正的性能问题仅来自使用量的增加。
Thebluefish

3

添加到OSdweeb的答案:

由于El Capitan com.apple.Boot.plist仅在禁用系统完整性协议(SIP)时才可以编辑文件(请参见此线程)。

但是,您可以使用以下命令设置启动标志:

sudo nvram boot-args="maxmem=2048"


2

另一个解决方案是使用虚拟机来模拟较低RAM的Mac。安装VMWare Fusion,Parallels或VirtualBox(如果您喜欢冒险),然后在其中安装OSX。然后,您可以操纵OS X可用的内核数量,磁盘空间量和(如您所要求的)RAM量。VirtualBox是免费的,但在OS X上目前限于3Gb,直到开发人员允许64位内核操作为止。其他两种产品分别具有30天和14天的试用期。


-1,对不起...这不是一个很好的比较。现在,您已经拥有虚拟化的视频驱动程序,虚拟化的I / O和较小的CPU性能。我喜欢虚拟化,但是如果您要做的只是查看系统如何以较少的可用RAM运行,这不是一个好的解决方案。
乔什(Josh)

@Josh虚拟化对性能的微小影响应该可以忽略不计:现代CPU对此类任务具有硬件支持,因此,除了某些神秘的情况外,性能将非常接近裸机。除此之外,您不仅可以直接控制可用内存量,还可以调整CPU频率,可用内核,可用视频内存和其他参数。为了真正模拟较旧的计算机,可能需要使用这些选项。操作系统的性能不仅仅是可用的RAM。
phyrfox 2015年

如果您在谈论诸如VMWare ESXi之类的企业级虚拟化,那么您对@phyrfox是正确的-关于CPU速度。如果运行Mac OS X,图形和视频处理性能会明显下降。我同意,当您要调整CPU频率,可用内核,硬件等时,虚拟化正确的解决方案。但是,这个问题纯粹是关于限制可用的RAM,对于该用例,我认为虚拟化不是正确的解决方案。
乔什(Josh)

-1

要取出RAM,您可以:

如果您的Macbook是Aluminium,则将整个底部取下,并且RAM应该位于中间。

如果是白色,则抓住角落的小隔间,以这种方式进入撞锤。

资料来源:https : //support.apple.com/en-ca/HT1651


1
请注意,他要求禁用它,而无需实际卸下撞锤。
Spotlight

他仍然可以用我的意思解决他的问题……
Kachamenus 2015年

2
但是问题是,“是否有某种方法可以在不物理移除芯片的情况下暂时禁用RAM?”,所以这不能回答问题
Josh

抱歉,我只是说有一种方法可以取出公羊。
Kachamenus 2015年
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.