OSX가 더 많은 RAM을 사용하고 스왑을 줄 이도록하는 방법이 있습니까? 다른 시스템은 데스크탑입니다. 나는

내가 겪고있는 문제는 4GB의 RAM이있는 서버 (및 다른 OSX 상자에서도)에 있지만 OSX는 사용 가능한 RAM의 40-60 % 만 사용하고 6-7GB 스왑을 사용합니다. 서버는 Apache 및 MySQL을 실행하는 반면 다른 시스템은 데스크탑입니다.

나는 비슷한 Linux 박스 (하드웨어 및 소프트웨어)와 사용법을 비교하고 Linux가 일반적으로 RAM의 80-90 %를 사용하고 훨씬 작은 스왑 파일 (2-3GB)을 가지고 있음을 발견했습니다. Linux 서버는 일반적으로 훨씬 빠르게 실행됩니다.

디스크 스왑 파일을 사용하기 전에 OSX가 RAM의 대부분 또는 대부분을 사용하도록하는 방법이 있습니까?

Windows에서는 실제로 스왑을 모두 비활성화 할 수 있습니다. OSX와 비슷한 것이 있습니까?



답변

가장 기본적인 답변은? 아니요. OS는 사용자의 메모리 관리를 처리하여 요청한만큼의 메모리를 프로세스에 제공하며 시스템의 성능을 수정할 수 있다는 측면에서 많은 양을 제공하지는 않습니다. Linux 서버가 Mac 서버보다 성능이 우수한 이유에 대해 메모리 사용률이 방정식의 일부인지 알아내는 데 큰 도움이되지 않습니다.

가상 메모리 시스템에 “해킹 가능성”이 없기 때문에 가장 좋은 옵션은 가상 메모리의 성능을 평가하여 실제로 성능 문제가 있는지 확인하는 것입니다. 가장 기본적인 방법은 사용 vm_stat또는 사용하는 것입니다. vm_stat [number of seconds]얼마나 많은 페이지 아웃이 발생하는지 확인 하여 사용 하십시오. 사용하지 않는 페이지를 RAM에서 하드 드라이브로 이동하면 하드 드라이브에서 RAM으로 페이지를 다시 검색하는 것보다 비용이 훨씬 저렴합니다. OS X 용어의 페이지는 4kb의 데이터를 나타냅니다.

또한 32 비트 프로세스 (예 : Illustrator)는 4GB를 초과하여 액세스 할 수 없으므로 이론적으로 2GB의 여유 공간을 확보하고 6GB를 설치 한 경우 프로세스에 메모리가 부족할 수 있습니다.

데스크탑과 서버 모두 vm_stat 2에서 마지막 열을 실행 하고 확인합니다. 특히 Illustrator로 전환 할 때 몇 초 지연되는 경우가 있습니다.

스왑이 실제로 얼마나 큰지 알아 보려면 활동 모니터에서 스왑 크기를 확인하거나 실행하십시오 du -shc /var/vm/swap* | tail -n 1.

du -sh /var/vm최대 절전 모드 (지난 4 년 이상)가있는 랩톱의 경우 사용시 한 가지주의 사항이 있습니다 sleepimage. 설치 한 메모리 크기 는 대략적으로 크기 일 수 있습니다 .


맥 OS X 메모리 전문 용어 :

유선 : 커널 코드 등을 말합니다. RAM 밖으로 이동해서는 안되는 메모리. 상주 메모리라고도합니다.

공유 : 둘 이상의 프로세스간에 공유되는 메모리입니다. 두 프로세스 모두이 메모리 양을 보여 주므로 실제로 사용중인 메모리 양이 약간 잘못 될 수 있습니다.

실제 : 현재 프로세스에있는 실제 페이지 수의 대략적인 수인 task_info ()에 의해보고 된 애플리케이션의 “실제”메모리 사용량입니다. (RSIZE)

Private : 프로세스가 상주 메모리에서 사용되는 자체 프로세스에서만 사용하는 메모리입니다. (RPRVT)

가상 : 프로세스에서 임의의 변수에 대한 임의의 공간이든 관계없이 매핑 된 프로세스의 총 주소 공간은 실제 VM 사용과 동일하지 않습니다. (VSIZE)

활성 : 현재 활성으로 표시된 메모리이며 RAM이 사용됩니다.

비활성 : “비활성 메모리는 더 이상 사용되지 않고 디스크에 캐시되었습니다. 다른 응용 프로그램에 공간이 필요할 때까지 RAM에 남아 있습니다. RAM에이 정보를 남겨두면 사용자 (또는 컴퓨터의 클라이언트)가 돌아 오는 경우 유리합니다 “나중에.” -Mac OS X 도움말

Free : 데이터없이 실제로 사용 가능한 RAM의 양입니다.


내가 아는 (그리고 후속 연구에서 찾을 수있는) 최고의 문서는 개발자 웹 사이트에있는 Apple의 자체 메모리 관리 기사입니다.

다른 유용한 소스 : Darwin-dev 메일 링리스트 : [ 1 ], [ 2 ] 및 MacOSXHints 에 관한 오래된 기사 . 또한 Mike Ash는 자신의 블로그 에 좋은 평신도의 소개를 올렸습니다.


sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plistdynamic_pager (실제 가상 메모리 할당을 수행하는 프로그램)가 시작되지 않도록 실행 한 다음 다시 시작 하여 가상 메모리 시스템을 비활성화 할 수 있습니다 (시도 하지 않았습니다). 그러나 OS에 가상 메모리가 있다고 가정하기 때문에 매우 빠르게 문제가 발생할 수 있습니다. 백업을로드하려면 sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist(단일 사용자 모드에서 필요한 경우)