사양이 낮은 시스템을 모방하기 위해 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.