비활성 메모리는 리소스 낭비가 아닙니까?


87

아래 스크린 샷의 예에 비추어 특히 내 컴퓨터의 메모리 사용에 대한 설명을 찾고 있습니다.

메모리 사용량

내가 뭘 이해 FreeActive수단
그러나의 의미 무엇 Wired하고 Inactive?

특히 inactive왜 우리가 사용하지 않는 무언가에 너무 많은 메모리를 사용합니까?

답변:


142

비활성 메모리는 이름이 불분명하여 끔찍한 랩을 받았습니다. 그것은 "끔찍한 이름을 제외하고는, 맥이 같은 작업을 두 번째, 세 번째, 네 번째로 정말 빠르게 처리하도록"메모리와 같은 이름으로 불려 졌을 것입니다.

Apple은 몇 가지 새로운 기능을 도입하고 압축 메모리를 추가했을 때 활동 모니터를 다시 작성 했으므로이 중 일부는 더 이상 "비활성 메모리"를 표시하지 않는 macOS에는 적용되지 않지만 Mac OS X 메모리 관리에는 여전히 적용됩니다. Activity Monitor 버전 : https://support.apple.com/en-us/HT201538

OS X의 가상 메모리 개념에 익숙하지 않은 사람에게 다음과 같이 설명했습니다.

  • 유선 :이 양의 RAM이 없으면 시스템을 실행할 수 없습니다 (스왑되지 않음)
  • 활성 : 프로그램이 현재 또는 마지막 몇 초 동안이 메모리를 실제로 사용하고 있습니다.
  • 비활성 : 프로그램이 느린 디스크 또는 다른 곳에서 읽은 것으로 다시는 필요하지 않은 것들. 엔지니어들은 더 잘 알고 있습니다. 몇 분 후에 Facebook으로 돌아가거나 Word를 종료 한 후 다시 시작합니다. 컴퓨터에서도 같은 일이 반복됩니다.
  • Free : 완전히 낭비 된 RAM- 시스템은 단기 할당 요청을 처리하기 위해 1 ~ 2MB의 여유 공간 만 있으면됩니다. 최대 할당량의 경우, 일부 비활성 RAM을 활성 / 유선에 할당하고 보유한 정보를 제거하여 간단히 사용합니다.

이 문제는 Free + Inactive가 전체의 약 1/3보다 작을 때 발생하며 실제로 속도가 느려질 수 있습니다.

비활성 메모리는 보너스 속도 / 더블 듀티 RAM입니다. 그것은 순간 통지없이 무료로 제공되지만 시스템이 올바르게 추측하고 다시 할 RAM에 무언가를 보관하면 반복되는 작업을 훨씬 더 빠르게 만듭니다. 이미 RAM에로드되어 있기 때문에 스왑 된 메모리보다 빠르며 가상 메모리 시스템이 추측 할 때 가속화합니다.

RAM이 문제인지 궁금하다면 4 가지 범주 (활성 스왑을 계산하는 경우 5 개) 각각을 보는 것이 아니라 W + A를 새 프로그램 / 작업 속도를 늦추고 F + I를 새로운 프로그램 / 작업. F + I가 많을수록 할당 된 메모리를 저글링하기 위해 RAM이 스와핑에 의존하기 전에 더 많은 새로운 프로그램을 시작할 수 있습니다.

위에서 언급 한 이후 스왑이 어떻게 작동하는지 알 필요가 없습니다. 기본적으로 프로그램이 유휴 상태이고 며칠 (또는 몇 시간) 동안 사용되지 않은 경우 시스템은 프로그램을 죽이지 않고 해당 RAM을 하드 드라이브에 씁니다. 이를 통해 시스템은 메모리 관리와 관련된 모든 종류의 내용을 섞고 처리 할 수 ​​있으며 시스템이 부족할 때 누가 메모리를 적게 사용하는지에 대해 각 프로그램이 서로 대화 할 필요가 없습니다.

비활성 RAM을 사용하는 방법에 대한 실제 예는 다음과 같습니다.

  1. 모든 앱을 종료하고 로그인 할 때 테스트중인 두 앱이 자동 시작으로 설정되어 있지 않은지 확인하십시오.
  2. Mac 재부팅
  3. 활동 모니터를 시작하고 전체적으로 RAM을보십시오.
  4. 응용 프로그램 A를 시작하는 데 걸리는 시간 (MS Word가 적합합니다.)
  5. A 종료
  6. 응용 프로그램 B를 시작하는 데 걸리는 시간 (Adobe 무언가도 좋습니다)
  7. B 종료
  8. A의 두 번째 발사에 걸리는 시간
  9. A 종료
  10. 타임 B의 두 번째 발사.
  11. B가 실행되면서 시간 A가 세 번째로 시작됩니다.

시스템이 두 개의 앱을 실행하는 데 필요한 RAM을 비활성 RAM으로 유지하는 방법을 배우면서 두 번째 / 세 번째 시작에 대한 극적인 속도 향상을 볼 수 있습니다.


귀하의 경우-총 유선 및 활성은 디스크로의 스와핑이 발생할 가능성이 있으며 비활성 RAM이 재사용해야 할 모든 것을 저장할만큼 충분히 크지 않기 때문에 Mac이 가능한 한 빠르지 않다는 것을 의미합니다 . 빠른 SSD 드라이브를 사용하는 경우이 RAM 할당은 정상이며 RAM의 1/2 미만이 F + I 인 경우 속도가 느려지기 시작하는 대신 F의 총 RAM의 1/4에 가깝게 절단 할 수 있습니다. 눈에 띄게 속도가 느려지기 전에 + I. 이 지침은 일반적이며, vm_stat 15중간 또는 중간 볼륨 스와핑으로 인해 Mac 속도가 느려지지 않도록 감시 하거나 비슷한 간격을 원할 것 입니다.


9
와 같은 초보자를위한 매우 완전한 답변입니다. 대단히 감사합니다, 매우 감사합니다 :)
GusDeCooL

6
예-모두에게 답할 수 있습니다. 한 번에 사람들은 더 나은 결과를 얻기 위해 편집 할 수 있으며 답을 얻을 수 있습니다. 사람들이 와서 흥미로운 질문을 할 수있는 웹 사이트에 대한 멋진 아이디어입니다. :-)
bmike

3
와! 아름다운 답변!
duci9y

3
나는 그들이 내 OS 클래스에서 이와 같이 설명하기를 바랍니다.
styfle

2
@cvsguimaraes 퍼지는 순간적이지 않다; chat.stackexchange.com/transcript/message/12107920#12107920
그레이엄 페린

6

Mac에서 메모리가 '스트레스'되었는지 확인 하는 데 가장 중요한 숫자 는 '페이지 아웃'수치입니다. Mavericks의 Activity Monitor에서 더 이상 표시되지 않으며, 이제 'Swap Used :'에 정보가 표시됩니다.

페이지 아웃은 OS가 요청한 모든 응용 프로그램 및 프로세스를 실행하기에 사용 가능한 RAM이 충분하지 않다고 판단했음을 의미합니다. 그런 다음 실제로 사용되지 않는 것으로 판단되는 메모리의 디스크 부분으로 '페이지'됩니다. 이는 RAM 메모리 (빠른)가 HDD 메모리 (느린)로 변경되었음을 의미합니다. 많은 응용 프로그램이 실행 중이고 사용자가 응용 프로그램 사이를 이동하기 때문에이 문제가 많이 발생하면 많은 페이지 아웃과 페이지 인이 발생합니다.

페이지 아웃이 증가하면 조치를 취해야합니다.


4

내 Mac의 문제는 명령 창에서 수동 제거를 수행하지 않으면 "비활성"메모리가 제거되지 않는 것입니다. 응용 프로그램을 종료하라는 팝업 창이 나타날 때까지 빌드되고 빌드됩니다. 모든 응용 프로그램을 종료 한 후에도 여전히 비활성 메모리가 너무 많아서 아무것도 실행할 수 없습니다. 따라서 최신 버전의 Mountain Lion을 실행하는 Mac에서 사용 가능한 메모리가 부족할 때 비활성 메모리가 재생되는 것은 사실이 아닙니다. 해제되지 않은 비활성 메모리 덩어리를 잠그는 앱이 있거나 iOS에 버그가 있습니다. (8GB의 실제 메모리가 있습니다 ... 충분해야합니다!)


2
Mac OS 10.6 및 10.7의 MacBook Pro 및 Mac Pro에서 Ernie와 함께 있습니다. 비활성 메모리가 크롤링되고 OS가 스왑을 시작합니다 ( "Page Ins"및 "Page Outs"에 따라). 시스템이 정지합니다. 비활성 메모리는 결코 회수되지 않는 것 같습니다. "퍼지"를 사용하여 비활성 메모리를 회수하고 시스템을 다시 활성화해야합니다.
Eric

2
이 팝업 창은 어디에서 왔습니까? vm_stat발생했을 때보 고되는 메모리 상황은 무엇입니까 ? "무엇을 실행하기 위해" "너무 많은"비활성 메모리가있을 수 있도록 하는가? 내가 아는 한, 이것은 당신이 알고있는 코드를 뒷받침하지 않는 모든 의견이며 실제로 커널에서 실행됩니다.
Kuba Ober

2
메모리 할당이 거스가 제시 한 것과 비슷합니까? 여기서 우리는 기가 바이트 유선 및 기가 바이트 반 활동에 대해 이야기하고 있습니다. 이 상황에서는 비활성 / 자유 배급이 괜찮아 보입니다. 아마도 상황이 어긋나는 상황을 자세하게 설명하는 두 번째 질문을 하시겠습니까?
bmike

2

모든 포스터와 주석가들 덕분에 이것은 유익하고 유용한 글이었습니다. 나의 최근 경험은 누군가에게 유용 할 수 있습니다. 다른 곳에서 실행되는 프로토 타이핑 소프트웨어에 OS X10.8.1 및 16G RAM과 함께 Mac Mini를 사용합니다. "몇 분 후에 Facebook으로 돌아가거나 Word를 종료 한 후 다시 시작하지 않을 것"이라는 것을 확신 할 수 있습니다. 대신 Macbook에서 수행합니다.

내 임무는 많은 양의 데이터를 뭉개 버리고, I / O는 시간이 많이 걸리므로 한 번에 가능한 한 많은 양의 데이터를 읽고 처리하고 디스크에 다시 쓰는 개념입니다. 그런 다음 완료 될 때까지 프로세스를 반복하십시오. 몇 시간이 걸립니다. 내가 보는 것은 새로운 데이터 청크에서 읽을 때마다 비활성 메모리가 점프한다는 것입니다. 시스템 AI는 이전 청크를 다시 사용하고 싶다고 가정합니다. 메모리가 떨어집니다.

이 프로세스를 몇 번 반복하면 사용 가능한 메모리가 몇 MB로 줄어들고 비활성 메모리는 몇 MB를 더 비운 다음 결국 사용 가능한 메모리와 비활성 메모리 사이에서 몇 분 동안 장애가 발생하면 비활성 메모리가 해제됩니다. 한 번에 몇 GB까지. 모두 @bmike가 설명하고 있으며 vm_stat 15와 활동 모니터는 모두 페이지 아웃을 표시합니다.

아마 그렇지 않을 수도 있습니다. 여러 번 일이 수영을하면서 움직 였는데, 커피 나 저녁을 먹으러 나가서 프로세스를 모니터링하지 않았으며, 어떤 일이 발생하지 않아야하는지, 프로세스는 갑자기 페이지 아웃으로 인해 배가 가득 차고 속도가 느려집니다. 아마도 문제의 원인이되는 엉터리 코드 일 것입니다.하지만 그 변동성의 원인을 제거하기 위해 비활성 메모리를 끌 수 있기를 바랍니다. 고장 났나요? 나는 그렇게 말하지는 않지만 메모리 관리가 내 사용 사례에 최적화되어 있지 않다고 생각합니다.


0

최근에 활성화하고 종료 한 앱에서 사용하는 비활성 메모리 OS X은 사용자가 프로그램을 다시 열려고 할 경우를 대비하여 예약 된 상태로 유지합니다. 이 경우 OS X은 성능 속도를 높이기 위해 메모리를 재배치 할 필요가 없습니다. 프로그램을 다시 열지 않으면 잠시 후 비활성 메모리가 해제되거나 재배치됩니다. (c)

이 기능은 RAM이 많을 때 멋지지만 그렇지 않을 때는 상당히 성가시다. 실제로 모든 것은 사과에 관한 것입니다. 강력한 가제트 나 Mac을 사용하면 모든 것이 멋지지만 기기가 오래되면 모든 기능이 느려집니다.

그래서 당신은 그것을 관리하기 위해 특별한 트릭을 사용해야합니다.

비활성 메모리의 경우 purge이를 해제 하는 명령 이 있습니다.


-3

기본적으로 고장났습니다. 여유 RAM이 부족하면 비활성 RAM이 자동으로 "퍼지"되어야합니다. 사용자가 다시 열기를 바라면서 이전에 열었던 응용 프로그램의 RAM을 유지하는 요점은 무엇입니까? 사용 가능한 RAM이 낮다는 사실은 기존 ACTIVE 응용 프로그램에 충분한 RAM이없고 지금 교체 중임을 나타냅니다. 닫힌 응용 프로그램에 대해 GB의 RAM을 유지하는 것은 바보입니다. Apple의 설명에 따르면, Free RAM이 낮 으면 Inactive RAM을 자동으로 제거하거나 빌려야합니다. 이것은 사실이 아닙니다.


3
가상 메모리 시스템은 대량의 여유 RAM을 낭비로 만듭니다. 프로그램이 메모리 할당을 요청하면 커널은 더 많은 가상 메모리를 구성하고 사탕처럼 나눠줍니다. 프로그램이 해당 메모리에 실제 데이터를 채우는 경우에만 시스템은 해당 작업을위한 RAM 공간을 확보해야합니다. "만들기 공간"은 사용 가능한 메모리를 해제 한 다음 비활성 메모리를 가져옵니다. 비활성 메모리를 해제하는 지연 시간은 매우 작습니다. 설명하는 제거는 정확히 수행되는 것입니다. 시스템이 게으른 경우 시스템이 제거 작업을 먼저 수행해야하며 필요한 경우에만 해당 작업을 수행해야 함을 의미합니다.
bmike

@bmike 그러나 남은 RAM이없고 새 앱을 시작할 때 비활성 RAM 부분이 줄어들고 활성 상태가된다는 것을 의미하지 않습니까? 그것은 분명히 사실이 아니며 내 경험으로는 기가 바이트의 비활성 램이 있음에도 불구하고 더 많은 여유 램이 없을 때마다 시스템이 매우 느려집니다. 시스템은 비활성 램 재사용을 고려하기 전에 디스크 교환을 선호하는 것 같습니다.
codingFriend1 2016 년

4
@ codingFriend1 정확히 말해 보자-얼마나 많은 페이지를 비우는 지 vm_stat"더 이상 사용 가능한 RAM이 없다"고 생각하십니까? Mac이 "느리게"있을 때 페이지의 페이지 및 페이지 수는 vm_stat 1얼마입니까? 문제가있는 시스템에서 이것을보고있을 때마다 vm_stat 15터미널 창에서 실행하거나 파일 시스템에 로깅하는 것을 좋아하므로 페이징 활동이 무엇인지 결정할 때 페이징 활동이 무엇인지 정확하게 알 수 있습니다. 휴대용 소형 무선 호출기. 이 예제에는 100MB의 사용 가능한 RAM이 있으므로 페이징 압력을받지 않아도됩니다.
bmike

-4

본질적으로 비활성 메모리는 이전에 닫힌 프로세스를 더 빨리 열 수 있습니다. Mac OS가 너무 많은 메모리를 사용하고 있다면 Safari 또는 Chrome에서 열었던 수십 개의 탭에서 실제로 필요하지 않은 것은 터미널의 'purge'명령을 사용하는 것입니다. OS X Mavericks에서는 대신 'sudo purge'를 사용하십시오 (암호를 입력해야합니다). 무언가를 다시 열어야 할 때 귀중한 시간을 절약 할 수 있지만 RAM 집약적 인 게임을하거나 RAM 배고픈 응용 프로그램을 열려면 purge 명령을 사용하는 것이 좋습니다.


2
이것은 다른 답변과 어떻게 다릅니 까?
user151019
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.