사양이 낮은 시스템을 모방하기 위해 RAM을 일시적으로 비활성화합니까?


30

2009 년 맥북 2 개가 있습니다. 하나는 4 기가의 RAM을 가지며 OS 10.10을 실행합니다. 하나는 2 기가 있고 운영 체제는 10.5입니다.

후자의 컴퓨터를 요세미티 (10.10)로 업그레이드하는 것을 고려하고 있지만 RAM이 거의 없어서 느리게 실행 될까 걱정됩니다. 성능이 어떤지 이해하기 위해 더 높은 사양의 시스템에서 RAM의 절반을 "끄는"방법이 있는지 궁금합니다. 이 작업을 수행 한 경우 실제로 업그레이드를 수행하기 전에 Yosemite가 2 공연 시스템에서 어떻게 실행되는지 알 수있었습니다.

칩을 물리적으로 제거하지 않고 RAM을 일시적으로 비활성화 할 수있는 방법이 있습니까?


칩을 제거하지 않아도되는 이유는 무엇입니까? 두 MacBook의 물리적 RAM 만 교체 할 수 없습니까?
Saaru Lindestøkke

4
올바른 드라이버가 없습니다.
dB '

3
2009 MacBook Pro는 DDR3 1333 MHz 램 (1066MHz로 다운 스피드)을 사용할 수 있습니다. 30 달러에 구입할 수 있습니다. 이 머신은 최대 8GB를 사용합니다. SSD를 추가하면 여전히 괜찮은 시스템입니다.
재스퍼 블루스

@dB 'OSdweeb의 답변을 수락하십시오. 내 대신. 다시 시작해야하지만 우아하고 기본 방법이며 10.9 / 10.10 이상에서 더 안정적인 결과를 제공합니다. RAM 디스크는 시스템 파일을 다시 시작하거나 변경하지 않고 Mac OS X에서 최대 10.8까지 잘 작동합니다.
klanomath

답변:


25

RAM을 꺼내거나 RAM 디스크를 만들거나 VM을 사용할 필요가 없습니다. maxmem=이 목적을 위해 만들어졌으며 수십 년 동안 사용 된 부팅 플래그 값을 사용하여 OS를 부팅하기 만하면 됩니다.

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나노를 종료ctrlx

변경 사항을 적용하려면 Mac을 재시동하십시오.

변경 사항을 되돌리려면 nano로 'maxmem = 2048'을 다시 제거하십시오.


2
내 두뇌는 낡은 쓰레기통입니다 ... 어제 나는이 쉬운 해결책을 찾기 위해 노력했습니다.
klanomath

1
그건 그렇고 : 등록을 완료하는 것이 좋습니다. 그렇지 않으면 실수로 쿠키를 잃어버린 경우 더 이상 계정에 로그인 할 수 없습니다.
nicael

이 답변은 15 년 4 월 4 일에 작성된 것처럼 OS X 10.10 Yosemite를 통해 OS X에서 작동했을 수 있습니다. 그러나 시스템 무결성 보호를 먼저 비활성화하지 않으면 OS X 10.11 El Capitan 이상에서 더 이상 작동하지 않습니다. El Capitan에서 시스템 무결성 보호를 수정하는 방법을 참조하십시오. 그럼에도 불구하고 지침은 El Capitan을위한 것이지만 동일한 기본 지침이 최신 버전의 macOS에 적용됩니다.
user3439894

14

시스템 및 실행중인 응용 프로그램의 사용 가능한 RAM을 줄이려면 크기가 2GiB 인 RAM 디스크를 만드십시오.

이러한 디스크를 생성하는 데 필요한 블록 수를 얻으려면 (RAMdiskSize in 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

이 명령은 용량이 채워질 때까지 RAM 디스크 볼륨의 random.dat 파일에 1MiB의 임의 데이터 청크를 씁니다.

RAM 디스크를 마운트 해제하거나 Mac을 재시동 할 때까지 사용 가능한 RAM이 ~ 2GiB로 인위적으로 줄어 듭니다.

일부 테스트 후에는 이전 시스템 에서처럼 안정적으로 작동하지 않는 것 같습니다. 그 이유는 최신 시스템 (10.9 이상)의 새로운 메모리 관리 때문입니다.
RAM 디스크가 사용하는 메모리는 디스크로 교체해서는 안되지만 임의 데이터 파일의 품질에 따라 약간 압축 될 수 있습니다. 보다 현실적인 그림을 얻기 위해 RAM 디스크 크기를 ~ 2.1GB로 5-10 % 늘릴 수 있습니다.


10.5-10.8에서이 작업을 수행하려면 다음 명령이 안정적인 결과를 얻기에 충분 해 보입니다 (디스크 식별자가 diskutil...명령 의 출력을 확인하도록하기 위해 ).

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

멋진 솔루션! 올바르게 이해하면 램 디스크에 2 기가의 램을 지휘했습니다. 2 기가의 RAM이 할당되었지만 램 디스크를 사용하지 않기 때문에 실제로는 처리 된 것으로 액세스되지 않습니다. 가상 메모리가 켜져 있으면 os가 사용되지 않는 램 블록을 내 스왑 파일에 쓰지 않고 효과적으로 2 기가를 해제합니까?
dB '

@dB '사용되지 않은 RAM에 대한 첫 번째 언급이 맞습니다. 실제로 많은 여유 RAM을 남기고 압축률이 높아질 것입니다. 그래서 디스크를 임의의 데이터로 채워서 우회하도록 대답을 수정했습니다.
klanomath

디스크 크기의 모든 계산을 덤프하고 dd가 전체 디스크를 채우도록 할 수 있습니다.dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k
Josh

@ 조쉬 다시 시도하고 작동하면 대답을 수정합니다. 어제 VM에서 명령을 실행하는 데 문제가있었습니다. 방금 '자원 사용 중'오류가 발생하여 볼륨에 아무것도 기록되지 않았습니다.
klanomath

파일에 쓰고 있다면 of=/Volumes/RAM\ Disk/random.dat괜찮을 것입니다. 디스크에 쓰는 경우 of=/dev/rdisk9루트 여야하며 마운트 해제해야합니다. (마운트를 해제해야합니다. 그렇지 않으면 시스템이 혼란스러워집니다)
Josh

8

예- memory_pressure도구를 사용 하여 시스템에 실제 메모리 압력을 적용하십시오.

가상 메모리 튜닝에 여전히 4GB 또는 RAM이 있다는 것을 알고 -p percent_free 인수는 일정한 양의 RAM을 할당하지 않지만 시스템을 X 퍼센트에 가깝게 유지하기 때문에 메모리 칩을 제거하는 것과 완벽하게 유사하지 않습니다.

불완전한 비유로도 2GB 램이있는 시스템에서 작업 부하를 처리 할 수 ​​있는지 매우 빠르게 확인할 수 있어야합니다.

물리적으로 칩을 제거 할 수있는 경우 먼저 시뮬레이션을 수행하고 벤치 마크를 얻은 다음 정확한지 확인해야하는 경우 하드웨어 변경을 수행 할 수 있습니다.


실제 칩을 제거 할 때 나타나는 주요 문제는 사진에서 듀얼 채널 모드도 제거된다는 것입니다. 이 답변의 첫 번째 옵션은 실제 성능 문제가 단순히 사용량 증가에서 비롯되므로 더 나은 방법으로 보입니다.
Thebluefish

3

OSdweeb의 답변에 추가 :

El Capitan com.apple.Boot.plist파일 편집은 SIP (System Integrity Protocol)를 비활성화 할 때만 가능합니다 (이 스레드 참조 ).

그러나 다음 명령을 사용하여 부팅 플래그를 설정할 수 있습니다.

sudo nvram boot-args="maxmem=2048"


2

또 다른 해결책은 가상 머신을 사용하여 RAM이 적은 Mac을 시뮬레이션하는 것입니다. VMWare Fusion, Parallels 또는 VirtualBox (모험적인 경우)를 설치하고 OS X를 설치하십시오. 그런 다음 OS X에서 사용할 수있는 코어 수, 디스크 공간 및 요청한 RAM 크기를 조작 할 수 있습니다. VirtualBox는 무료이지만 개발자가 64 비트 커널 작업을 허용 할 때까지 OS X의 경우 3Gb로 제한됩니다. . 다른 두 제품에는 각각 30 일 및 14 일 평가판이 있습니다.


-1, 죄송합니다 ... 이것은 좋은 비교 가 아닙니다 . 이제 가상화 된 비디오 드라이버, 가상화 된 I / O 및 적은 CPU 성능 저하가 있습니다. 나는 가상화를 좋아하지만, 사용 가능한 RAM이 적은 시스템이 어떻게 작동하는지 보는 것만으로는 좋은 해결책이 아닙니다.
Josh

@Josh 가상화에 대한 작은 성능 저하는 무시할 수 있어야합니다. 현대 CPU는 이러한 작업에 하드웨어를 지원하므로 일부 난해한 경우를 제외하고 성능은 베어 메탈에 매우 가깝습니다. 또한 사용 가능한 메모리 양을 직접 제어 할 수있을뿐만 아니라 CPU 주파수, 사용 가능한 코어, 사용 가능한 비디오 메모리 및 기타 매개 변수를 조정할 수도 있습니다. 구형 머신을 실제로 시뮬레이션하려면 이러한 옵션을 사용하는 것이 유용 할 수 있습니다. OS의 성능은 사용 가능한 RAM 이상입니다.
phyrfox

VMWare ESXi와 같은 엔터프라이즈 급 가상화에 대해 이야기하고 있다면 CPU 속도 에 관한 @phyrfox가 맞습니다 . Mac OS X를 실행하면 그래픽 및 비디오 처리 성능이 눈에 띄게 나타납니다. CPU 주파수, 사용 가능한 코어, 하드웨어 등을 조정하려는 경우 가상화 올바른 솔루션입니다. 그러나이 질문은 순전히 제한에 관한 것이 었습니다 사용 가능한 RAM이 있고 그 사용 사례에 대해 가상화가 올바른 솔루션이 아니라고 생각합니다.
Josh

-1

RAM을 꺼내려면 다음을 수행하십시오.

맥북이 알루미늄이라면, 바닥 전체를 벗기고 RAM이 중간에 딱 맞아야합니다.

흰색이면 구석에있는 작은 칸을 가져 가서 램에 접근하십시오.

출처 : https://support.apple.com/en-ca/HT1651


1
램을 물리적으로 제거하지 않고 비활성화를 요청합니다.
스포트라이트

그는 여전히 이것으로 그의 문제를 해결할 수 있었다.
Kachamenus

2
이 질문에 대한 답하지 않도록하지만 문제가 있었다 "? 물리적으로 칩을 제거하지 않고 일시적으로 비활성화 RAM에 어떤 방법이 있나요"
조쉬

죄송합니다. 나는 방금 램을 꺼낼 수있는 방법이 있다고 말하고있었습니다.
Kachamenus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.