Daha düşük özellikli bir makineyi taklit etmek için RAM'ın geçici olarak devre dışı bırakılması?


30

İki tane 2009 Macbook'um var. Birinde 4 g RAM vardır ve 10.10 işletim sistemini çalıştırır; biri 2 konsere sahip ve os 10.5 çalışıyor.

İkinci makineyi Yosemite'e (10.10) yükseltmeyi düşünüyorum, ancak çok az RAM ile yavaş çalışacağından endişeleniyorum. Performansın nasıl olacağına dair bir fikir edinmek için, yüksek özellikteki makinede RAM'in yarısını "kapatabilecek" bir yol olup olmadığını merak ediyorum. Bunu yapsaydım, aslında yükseltme yapmadan önce Yosemite'in 2 konser makinesinde nasıl çalışacağını anladım.

Çipi fiziksel olarak çıkarmadan RAM'i geçici olarak devre dışı bırakmanın bir yolu var mı?


Çipi neden çıkarmak şart değil? İki MacBook’un fiziksel RAM’ini değiştiremez miydiniz?
Saaru Lindestøkke

4
Elimde doğru tornavida yok.
dB '

3
2009 MacBook Pro, DDR3 1333 MHz RAM'i kabul edecek (1066mhz'ye düşecek). 30 dolara satın alabilirsiniz. Bu makineler 8GB'a kadar alacaktır. Bir SSD ekleyin ve bu hala çok iyi bir makine.
Jasper Blues,

@dB 'Lütfen OSdweeb'in cevabını kabul edin. benim yerine Yeniden başlatmanız gerekmesine rağmen, şık ve varsayılan bir yöntemdir ve 10.9 / 10.10 ve muhtemelen daha sonra için daha güvenilir bir sonuç sunar. RAM diski, yeniden başlatmadan ve sistem dosyalarını kurcalamadan Mac OS X için 10.8'e kadar iyi çalışır.
klanomath

Yanıtlar:


25

RAM almaya, RAM disk oluşturmaya veya VM kullanmaya gerek yok. Basitçe maxmem=, bu amaç için yaratılmış ve on yıllardır piyasada olan önyükleme bayrağı değerini kullanarak önyükleme yapmak.

Terminal'i sudoer olarak açın ve

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

Parolanızı değiştirdikten sonra

<?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>

için

<?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>

ve değişiklikleri diske yazın ctrlove nano ile çıkınctrlx

Değişiklikleri uygulamak için Mac'inizi yeniden başlatın.

Değişiklikleri geri almak için nano ile tekrar 'maxmem = 2048' i kaldırın.


2
Beynim eski bir çöp tenekesidir ... Dün bu kolay çözümü cehennem ya da yüksek su olarak bulmaya çalıştım - ve var olduğunu biliyordum - ama hatırlamadım.
klanomath

1
Bu arada: kaydı tamamlamanız daha iyi olur, aksi takdirde çerezlerinizi yanlışlıkla kaybederseniz, artık hesabınıza giriş yapamazsınız.
nicael

Bu cevap, 4 '15 Nisanda yazıldığı gibi, OS X 10.10 Yosemite; ancak, ilk önce Sistem Bütünlüğü Korumasını devre dışı bırakmadığı sürece OS X 10.11 El Capitan ve sonrasında çalışmaz. Bkz El Capitan Sistem Bütünlüğü Koruma nasıl değiştirilir ve bunun tarifi yine El Capitan için ise, aynı temel talimatlar MacOS yeni sürümlerini geçerlidir.
user3439894

14

Sistem ve çalışan uygulamalar için kullanılabilir RAM miktarını azaltmak için 2 GiB boyutunda bir RAM Disk oluşturun.

Böyle bir disk oluşturmak için gerekli blok sayısını almak için çarpın (MB cinsinden RAMdiskSize) * 2048. Örneğinizde bu 2048 * 2048 = 4194304.

Ardından Terminal'i açın ve şunu girin:

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

Buna benzer bir mesaj alacaksınız:

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  

daha sonra dd ve birimin yolunu kullanın ve diski rasgele verilerle doldurun:

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

Komut, kapasiteye dolana kadar RAM Diski birimindeki random.dat dosyasına 1 MiB rasgele veri parçası yazacaktır.

Bu, RAM Diski çıkarmadan veya Mac'inizi yeniden başlatana kadar mevcut RAM'inizi ~ 2 GiB kadar yapay olarak düşürmelidir.

Bazı testlerden sonra, bu eski sistemdeki kadar güvenilir bir şekilde çalışmaz. Bunun nedeni, en son sistemlerdeki yeni bellek yönetimidir (10.9 ve üstü).
RAM Diski tarafından kullanılan bellek diske değiştirilmemelidir, ancak rastgele veri dosyasının kalitesine bağlı olarak biraz sıkıştırılabilir. Daha gerçekçi bir görüntü elde etmek için RAM Disk boyutunu% 5-10 artırarak ~ 2,1 GB arasında artırabilirsiniz.


Bunu 10.5-10.8'de yapmak istiyorsanız, aşağıdaki komut güvenilir bir sonuç elde etmek için yeterli görünüyor (Disk Tanımlayıcısının diskutil...komutun çıktısını kontrol etmesini sağlamak için ):

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

Harika çözüm! Eğer doğru anlıyorsam, bir ram diski için 2 gg ram kumanda ettim. 2 gb RAM tahsis edilmiştir, ancak, ram diskini hiçbir şey için kullanmayacağım için, aslında herhangi bir işlenmiş tarafından erişilemiyor. Sanal hafızam varsa, os bu kullanılmayan koç bloğunu swap dosyama yazıp, 2 konser tekrar etkin bir şekilde serbest bırakmayacak mıydı?
dB '

@dB 'Kullanılmayan RAM ile ilgili ilk düşüncen doğru. Aslında, muhtemelen çok fazla boş RAM bırakarak yüksek oranda sıkıştırılır. Bu yüzden cevabı, bunu atlamak için diski rastgele verilerle doldurmak için değiştirdim.
klanomath

Muhtemelen disk boyutunun tüm hesaplamalarını dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k
Josh

@Josh Bunu tekrar deneyeceğim ve işe yararsa cevabımı değiştireceğim. Dün komutu VM'de yürütmekte sorun yaşadım. Az önce bir 'kaynak meşgul' hatasıyla karşılaştım ve birime hiçbir şey yazılmadı.
klanomath

Bir dosyaya yazıyorsanız, of=/Volumes/RAM\ Disk/random.datiyi olmalısınız. Eğer diske yazıyorsanız of=/dev/rdisk9, o zaman root olmanız ve çıkarılmamış olması gerekebilir. (sökülmeli, aksi takdirde sistem karışır)
Josh

8

Evet - memory_pressuresisteme gerçek bellek basıncı uygulamak için aracı kullanın.

Sanal bellek ayarlama hala 4 GB veya RAM olduğunu bildiğinden ve -p yüzde_ücretsiz argümanı sabit bir RAM miktarı tahsis etmeyeceğinden, bellek yongasını çıkarmanın mükemmel bir benzetmesi değildir, ancak sistemi yüzde X'e yakın tutunuz.

İş yükünüzün kusurlu analojiyle bile 2 GB ramlı bir sisteme uygun olup olmadığını çok hızlı bir şekilde görmenize olanak sağlamalıdır.

Eğer çipi fiziksel olarak çıkarabilirseniz - önce bir şeyleri simüle edebilir ve bir kıyaslama alabilirsiniz ve ardından doğru olduğunu doğrulamanız gerekiyorsa donanım değişikliğini yapabilirsiniz.


Fiziksel çipi çıkarırken gördüğüm en büyük sorun, çift kanal modunun da resimden kaldırılması. Bu cevaptaki ilk seçenek, bunu yapmanın daha iyi bir yolu gibi gözüküyor çünkü gerçek performans sorunları sadece kullanımın artmasından kaynaklanıyor.
Thebluefish,

3

OSdweeb'in Cevabına Ekleme:

El Capitan, com.apple.Boot.plistdosyayı düzenlemeden bu yana , yalnızca Sistem Bütünlüğü Protokolü'nü (SIP) devre dışı bırakırken mümkündür (bu konuya bakın ).

Bununla birlikte, önyükleme bayraklarını aşağıdaki komutla ayarlayabilirsiniz:

sudo nvram boot-args="maxmem=2048"


2

Başka bir çözüm, daha düşük RAM Mac'unu simüle etmek için sanal bir makine kullanmak olacaktır. VMWare Fusion, Parallels veya VirtualBox'u (maceracıysanız) kurun ve içine OS X'i kurun. Ardından, çekirdek sayısını, disk alanını ve (istediğiniz gibi) OS X için mevcut RAM miktarını değiştirebilirsiniz. VirtualBox ücretsizdir, ancak geliştiriciler 64-bit çekirdek işlemlerine izin verene kadar OS X için 3Gb ile sınırlıdır . Diğer iki ürün, sırasıyla 30 günlük ve 14 günlük denemelere sahiptir.


-1, üzgünüm ... bu iyi bir karşılaştırma değil . Artık sanallaştırılmış video sürücüleri, sanallaştırılmış I / O ve küçük bir CPU performans vuruşuna sahipsiniz. Sanallaştırmayı seviyorum, ancak tek yapmak istediğiniz sistemin daha az RAM ile nasıl performans göstereceğini görmekse, bu iyi bir çözüm değildir.
Josh,

@Josh Sanallaştırma için küçük performans cezası ihmal edilebilir olmalıdır: modern CPU'lar böyle bir görev için donanım desteğine sahiptir, bu nedenle performans bazı ezoterik saçak vakaları dışında çıplak metale çok yakın olacaktır. Bunun yanı sıra, yalnızca ne kadar bellek kullanılabilir olduğunu doğrudan kontrol etmekle kalmaz, CPU frekansını, kullanılabilir çekirdekleri, kullanılabilir video belleğini ve diğer parametreleri de ayarlayabilirsiniz. Eski makineleri gerçekten taklit etmek için, bu seçeneklerin mevcut olması yararlı olabilir. Bir işletim sisteminin performansı sadece mevcut RAM'den daha fazlasıdır.
phyrfox

VMWare ESXi gibi kurumsal sınıf sanallaştırmadan bahsediyorsanız, haklısınız @phyrfox - CPU hızı hakkında . Orada Mac OS X Katılıyorum çalışan Sanallaştırma eğer fark edilebilir olacaktır grafik ve video işleme üzerine bir performans isabet olduğunu vb CPU frekansını, mevcut çekirdek, donanım düzenlemek istediğinizde doğru çözüm Ama bu soru sınırlama konusunda tamamen idi Kullanılabilir RAM ve bu kullanım için sanallaştırmanın doğru çözüm olmadığını düşünüyorum.
Josh,

-1

RAM ALMAK için şunları yapabilirsiniz:

Eğer macbook'unuz Aluminyum ise, tüm alttan çıkar ve RAM ortada tam bir şaplak olmalıdır.

Beyazsa, köşedeki küçük bölmeyi alın ve ram bu şekilde erişin.

Kaynak: https://support.apple.com/en-ca/HT1651


1
Tokmağı fiziksel olarak çıkarmadan devre dışı bırakmayı istediğini unutmayın.
Spotlight

Sorununu hala bu şekilde çözebilirdi ...
Kachamenus

2
Ancak, “Çipi fiziksel olarak çıkarmadan RAM'i geçici olarak devre dışı bırakmanın bir yolu var mı?”
Josh

Üzgünüm ama. Sadece koç çıkarmanın bir yolu olduğunu belirttim.
Kachamenus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.