2015-01-18 3 views
1

저는 2 + 2GB RAM을 가진 첫 번째 alu iMac 중 하나를 가지고 있습니다. 저는 Vagrant를 사용하여 여러 가지 작업으로 분리 된 고급 개발 환경을 에뮬레이션합니다.Force Vagrant가 스왑 메모리를 사용합니다.

백그라운드에서 하나의 방산 프로세스가 실행 중일 때 컴퓨터는 항상 메모리가 부족하기 때문에 지옥처럼 느려집니다.

질문 : 스왑 메모리에서만 실행할 수있는 방랑제 (또는 모든 응용 프로그램)를 사용할 수 있습니까? 그렇다면 OS 및 기타 응용 프로그램을위한 모든 메모리가 남을 수 있습니까?

해결책이있는 경우 어떻게해야합니까?

+0

당신의 아이맥 몇 살 더 많은 RAM을 추가하는 것입니다 4 기가 바이트 호스트와 방랑 경우 모두 괜찮습니다. 아마 느린 것은 메모리와 전혀 관련이 없습니다. – BMW

+0

@BMW 늦은 2007 년 또는 2008 년입니다. : – balintant

답변

1

짧은 대답은 입니다. 아니요, 프로세스를 완전히 스왑에서 실행할 수 없습니다.

프로세스가 CPU에서 작업 할 수 있도록 RAM에 데이터가 있어야하며,로드 된 모든 데이터가 메모리에 더 이상 사용할 수없는 공간이있을 때 데이터를 스왑 공간으로 이동하는 경우는 드뭅니다.

더 큰 스왑 공간을 만들고 ulimit을 사용하여 프로세스가 사용하는 메모리 양을 제한 할 수 있습니다. 즉, 이전 스왑 공간으로 강제로 옮깁니다. 그러나 이것은 문제의 근원을 다루지 않습니다. 4GB의 메모리 한도로

스왑 공간을 사용하면 디스크에서 읽기 (SSD 포함)가 메모리에서 읽는 것보다 훨씬 느리기 때문에 항상 성능 문제가 발생합니다. 더 많은 메모리로 업그레이드의

이 짧은, 당신은 할 수 :

  • 은 방랑 상자에 의해 할당 된 메모리의 양을 줄입니다;
  • OS X의 활동 모니터을 사용하여 사용 중이 아니지만 여전히 메모리를 사용중인 모든 프로그램/프로세스를 식별하고 닫습니다.

그러나 이것들은 단지 스톱 - 갭 솔루션입니다.

+0

- 애석하게도 4GB가 지원되는 최대 메모리 크기입니다 - 'ulimit'을 최대한 빨리 시도해 보겠습니다 - 방황액이 유일한 응용 프로그램 인 경우 시스템이 메모리 부족으로 인해 여전히 죽어 가고 있습니다. – balintant

+0

당신이 어떻게 생각하는지 예를 들려 주시겠습니까?'ulimit'을 사용해야합니까? – balintant

+0

빠른 예가 있습니다 :'$ ulimit -Sv 500000; $ vagrant up' 이것은 가상 메모리 _ 최대 값을 500MB로 설정합니다. Chrome과 같이 사용하지 않는/불필요한 애플리케이션을 닫는 것만으로 더 큰 수익을 올릴 수 있습니다. 또한 해당 금액 상자에서 할당 한 금액을 확인할 수도 있습니다 (예 :VM이 2 ~ 4GB의 메모리를 사용하도록 설정되어 있다면이를 줄이는 것이 좋습니다. – thomaswsdyer

1

간단한 대답은 없습니다.

스왑 전략을 가장 적극적인 모드로 설정하려면 Linux에서 echo 100 > /proc/sys/vm/swappiness과 같은 제어 스왑을 VM 내에서 수행해야합니다. 프로세스가 실행중인 위치 (물리적 메모리 VS 스왑)를 제어 할 수 없음을 기억하십시오.

그러나 이렇게하면 호스트/게스트가 단순히 실제 메모리가 부족하여 지옥처럼 느려질 수 있습니다.

궁극적 인 해결책은 iMac에 ;-D

+0

그래, 해결책은 그 것이다. 하지만 (공식적으로) 4GB만을 지원하며 헝가리에서는 아무 것도 찾지 못했습니다. 그래서 나는 해외에서 일할 것을 확신하지 못하는 것을 주문하지 않습니다. :(정보 주셔서 감사합니다! – balintant