Tạm thời vô hiệu hóa RAM để bắt chước một máy spec thấp hơn?


30

Tôi đã có hai Macbook 2009. Một có 4 hợp đồng RAM và chạy os 10.10; một có 2 hợp đồng biểu diễn và chạy os 10.5.

Tôi đang xem xét nâng cấp máy sau lên Yosemite (10.10), nhưng tôi lo lắng rằng nó sẽ chạy chậm với rất ít RAM. Để có được cảm giác về hiệu suất sẽ như thế nào, tôi tự hỏi liệu có cách nào tôi có thể "tắt" một nửa RAM trong máy spec cao hơn không. Nếu tôi làm điều này, tôi có thể hiểu được Yosemite sẽ chạy như thế nào trên máy 2 gig trước khi thực sự nâng cấp.

Có cách nào để tạm thời vô hiệu hóa RAM mà không cần tháo chip ra không?


Tại sao không loại bỏ chip là một yêu cầu? Bạn không thể trao đổi RAM vật lý của hai chiếc MacBook sao?
Saaru Lindestøkke

4
Tôi không có tuốc nơ vít bên phải tiện dụng.
dB '

3
MacBook Pro 2009 sẽ chấp nhận ram DDR3 1333 MHz (tốc độ sẽ giảm xuống 1066mhz). Bạn có thể mua với giá $ 30. Những máy này sẽ mất tới 8gb. Thêm một ổ SSD và đây vẫn là một chiếc máy rất tốt.
Jasper Blues

@dB 'Hãy chấp nhận câu trả lời của OSdweeb. thay vì của tôi Mặc dù bạn phải khởi động lại, nhưng đây là một phương thức mặc định và thanh lịch và nó mang lại kết quả đáng tin cậy hơn cho 10.9 / 10.10 và có thể sau đó. Đĩa RAM hoạt động tốt cho Mac OS X lên đến 10.8 mà không cần khởi động lại và giả mạo các tệp hệ thống.
klanomath

Câu trả lời:


25

Không cần phải lấy RAM ra, tạo đĩa RAM hoặc sử dụng VM. Chỉ cần khởi động HĐH bằng cách sử dụng maxmem=giá trị cờ khởi động được tạo ra cho mục đích này và đã tồn tại trong nhiều thập kỷ.

Đơn giản chỉ cần mở Terminal dưới dạng sudoer và nhập

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

Sau khi nhập mật khẩu của bạn thay đổi

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

đến

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

và ghi các thay đổi vào đĩa bằng ctrlovà thoát khỏi nano vớictrlx

Khởi động lại máy Mac của bạn để áp dụng các thay đổi.

Để hoàn nguyên các thay đổi, hãy xóa 'maxmem = 2048' bằng nano lần nữa.


2
Bộ não của tôi là một thùng rác cũ ... Hôm qua tôi đã cố gắng tìm giải pháp dễ dàng này đến địa ngục hoặc nước cao - và tôi biết nó tồn tại - nhưng tôi chỉ không nhớ nó.
klanomath

1
Nhân tiện: bạn nên hoàn thành việc đăng ký, nếu không, nếu bạn vô tình làm mất cookie, bạn sẽ không thể đăng nhập vào tài khoản của mình nữa.
nicael

Trong khi câu trả lời này, như được viết vào ngày 4 tháng Tư, có thể đã hoạt động trên OS X thông qua OS X 10.10 Yosemite; tuy nhiên, nó không còn hoạt động trên OS X 10.11 El Capitan và sau đó trừ khi lần đầu tiên vô hiệu hóa Bảo vệ toàn vẹn hệ thống. Xem Cách sửa đổi Bảo vệ toàn vẹn hệ thống trong El Capitan và dù hướng của nó là dành cho El Capitan, các hướng dẫn cơ bản tương tự cũng áp dụng cho các phiên bản macOS mới hơn.
dùng3439894

14

Chỉ cần tạo Đĩa RAM với kích thước 2 GiB để giảm RAM có sẵn cho hệ thống và chạy các ứng dụng.

Để có được số khối cần thiết để tạo một đĩa như vậy, hãy nhân (RAMdiskSize tính bằng MB) * 2048. Trong ví dụ của bạn đó là 2048 * 2048 = 4194304.

Sau đó mở Terminal và nhập:

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

Bạn sẽ nhận được một tin nhắn tương tự như tin nhắn đó:

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  

sau đó sử dụng dd và đường dẫn đến ổ đĩa và điền vào đĩa với dữ liệu ngẫu nhiên:

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

Lệnh sẽ ghi 1 khối dữ liệu ngẫu nhiên MiB vào tệp Random.dat trong ổ đĩa RAM cho đến khi dung lượng được lấp đầy.

Điều này sẽ làm giảm đáng kể RAM có sẵn của bạn xuống ~ 2 GiB cho đến khi bạn ngắt kết nối Đĩa RAM hoặc khởi động lại máy Mac.

Sau một số thử nghiệm, điều này dường như không hoạt động đáng tin cậy như trong hệ thống cũ. Lý do là quản lý bộ nhớ mới trong các hệ thống mới nhất (10.9 trở lên).
Bộ nhớ được sử dụng bởi RAM Disk không nên hoán đổi sang đĩa nhưng tùy thuộc vào chất lượng của tệp dữ liệu ngẫu nhiên, nó có thể bị nén một chút. Bạn có thể tăng kích thước Đĩa RAM thêm 5-10% lên ~ 2.1 GB để có được hình ảnh chân thực hơn.


Nếu bạn muốn thực hiện điều này trong 10.5-10.8, lệnh sau có vẻ đủ để có kết quả đáng tin cậy (để nhận định danh Đĩa kiểm tra đầu ra của diskutil...lệnh):

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

Giải pháp tuyệt vời! Nếu tôi hiểu chính xác tôi đã chỉ huy 2 hợp đồng ram cho một đĩa ram. Có 2 hợp đồng RAM được phân bổ, nhưng, vì tôi không sử dụng đĩa ram cho bất cứ điều gì, nên nó không thực sự được truy cập bởi bất kỳ xử lý nào. Nếu tôi có bộ nhớ ảo, liệu os có ghi khối ram không sử dụng này vào tệp hoán đổi của tôi, giải phóng hiệu quả 2 hợp đồng biểu diễn một lần nữa không?
dB '

@dB 'Bạn đã đúng với nhận xét đầu tiên của mình về RAM không sử dụng. Trong thực tế, nó có thể sẽ được nén rất cao để lại rất nhiều RAM miễn phí. Vì vậy, tôi đã sửa đổi câu trả lời của mình để lấp đầy đĩa với dữ liệu ngẫu nhiên để bỏ qua điều đó.
klanomath

Bạn có thể chỉ cần đổ tất cả các tính toán về kích thước đĩa và để dd lấp đầy toàn bộ đĩa:dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k
Josh

@Josh Tôi sẽ thử lại và sửa đổi câu trả lời của tôi nếu nó hoạt động. Hôm qua tôi có vấn đề khi thực hiện lệnh trong VM. Tôi vừa gặp lỗi 'tài nguyên bận' và không có gì được ghi vào tập.
klanomath

Nếu bạn đang viết vào một tập tin of=/Volumes/RAM\ Disk/random.dat, thì bạn sẽ ổn thôi. nếu bạn đang ghi vào đĩa, of=/dev/rdisk9thì bạn phải root và có thể phải ngắt kết nối. (cần được ngắt kết nối, nếu không hệ thống sẽ bị lẫn lộn)
Josh

8

Có - sử dụng memory_pressurecông cụ để áp dụng áp lực bộ nhớ thực cho hệ thống.

Nó không phải là một sự tương tự hoàn hảo để loại bỏ chip bộ nhớ vì việc điều chỉnh bộ nhớ ảo vẫn biết có 4 GB hoặc RAM và đối số -p Perc_free sẽ không phân bổ một lượng RAM không đổi, nhưng giữ cho hệ thống gần với X phần trăm.

Nó sẽ cho phép bạn rất nhanh xem liệu khối lượng công việc của bạn có phù hợp với hệ thống có ram 2 GB ngay cả với sự tương tự không hoàn hảo.

Nếu bạn có thể gỡ bỏ chip một cách vật lý - trước tiên bạn có thể mô phỏng mọi thứ và lấy điểm chuẩn và sau đó thực hiện thay đổi phần cứng nếu bạn cần xác minh chính xác.


Vấn đề chính tôi thấy khi loại bỏ chip vật lý là chế độ kênh đôi cũng bị xóa khỏi hình ảnh. Tùy chọn đầu tiên trong câu trả lời này có vẻ như là cách tốt hơn để làm điều đó vì các vấn đề hiệu suất thực sự đơn giản đến từ việc sử dụng tăng lên.
Thebluefish

3

Thêm vào câu trả lời của OSdweeb:

Vì El Capitan chỉnh sửa com.apple.Boot.plisttệp chỉ có thể khi vô hiệu hóa Giao thức toàn vẹn hệ thống (SIP) (xem chủ đề này ).

Tuy nhiên, bạn có thể đặt cờ khởi động bằng lệnh sau:

sudo nvram boot-args="maxmem=2048"


2

Một giải pháp khác là sử dụng máy ảo để mô phỏng máy Mac có RAM thấp hơn. Cài đặt VMWare Fusion, Parallels hoặc VirtualBox (nếu bạn thích phiêu lưu) và cài đặt OS X trong đó. Sau đó, bạn có thể thao tác số lượng lõi, dung lượng ổ đĩa và (như bạn đã yêu cầu) dung lượng RAM có sẵn cho OS X. VirtualBox là miễn phí, nhưng hiện bị giới hạn ở 3Gb cho OS X cho đến khi các nhà phát triển cho phép hoạt động kernel 64 bit . Hai sản phẩm khác có các thử nghiệm 30 ngày và 14 ngày, tương ứng.


-1, xin lỗi ... đây không phải là một so sánh tốt. Bây giờ, bạn có trình điều khiển video ảo hóa, I / O ảo ​​hóa và một hiệu suất CPU nhỏ. Tôi thích ảo hóa, nhưng nếu tất cả những gì bạn muốn làm là xem hệ thống sẽ hoạt động như thế nào với ít RAM hơn thì đây không phải là một giải pháp tốt.
Josh

@Josh Hình phạt hiệu năng nhỏ cho ảo hóa không đáng kể: CPU hiện đại có hỗ trợ phần cứng cho một nhiệm vụ như vậy, vì vậy hiệu suất sẽ rất gần với kim loại trần trừ một số trường hợp rìa bí truyền. Bên cạnh đó, bạn không chỉ có thể trực tiếp kiểm soát dung lượng bộ nhớ còn trống, bạn còn có thể điều chỉnh tần số CPU, lõi khả dụng, bộ nhớ video có sẵn và các thông số khác. Để thực sự mô phỏng các máy cũ hơn, việc có sẵn các tùy chọn này có thể hữu ích. Hiệu năng của một hệ điều hành không chỉ là RAM có sẵn.
phyrfox

Nếu bạn đang nói về ảo hóa cấp doanh nghiệp như VMWare ESXi, thì bạn đã đúng @phyrfox - về tốc độ CPU . Có một điểm nhấn về hiệu năng xử lý đồ họa và video sẽ đáng chú ý nếu chạy Mac OS X. Tôi đồng ý, Ảo hóa giải pháp phù hợp khi bạn muốn điều chỉnh tần số CPU, lõi có sẵn, phần cứng, v.v. Nhưng câu hỏi này hoàn toàn là về giới hạn RAM có sẵn và trong trường hợp sử dụng đó tôi tin rằng ảo hóa không phải là giải pháp phù hợp.
Josh

-1

Để lấy RAM, bạn có thể:

Nếu macbook của bạn là Nhôm, bạn lấy toàn bộ phần đáy ra và RAM phải được đập ngay vào giữa.

Nếu nó màu trắng, hãy lấy ngăn nhỏ trong góc và truy cập ram theo cách đó.

Nguồn: https://support.apple.com/en-ca/HT1651


1
Lưu ý rằng anh ta yêu cầu vô hiệu hóa nó mà không cần gỡ bỏ ram.
Tiêu điểm

Anh ấy vẫn có thể giải quyết vấn đề của mình với điều này là điều tôi muốn nói ...
Kachamenus

2
Nhưng câu hỏi là, "Có cách nào để tạm thời vô hiệu hóa RAM mà không cần tháo chip ra không?", Vì vậy điều này không trả lời được câu hỏi
Josh

Xin lỗi vì việc đó. Tôi chỉ nói rằng có một cách để lấy ram.
Kachamenus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.