20120117 :: OSX의 메모리 상태 보는 법

맥은 얼마 쓰지도 않아서 메모리를 다쓴다?
윈도에서 맥으로 넘어와서 버리기 힘든 나쁜 습관 중 하나는 메모리의 상태를 걱정하는 일이다. 무슨 소린고 하니 마치 메모리 먹는 괴물처럼 맥은 시스템에 달린 램을 거의 대부분 써버린다. 시스템의 메모리는 활성상태보기(activity)라는 앱을 실행해서 확인할 수 있는데, 여기서 보면 “여유 메모리”에 진짜 여유가 있는 경우가 좀처럼 없기가 십상이다.

그래서 메모리의 여유 공간을 확보해주는 앱들도 유/무료로 많이 팔리고 있는 중인데, 꼭 이런 앱을 돌릴 필요가 있을까 싶은 생각이 든다. 물론 윈도에서의 메모리 확보 프로그램과는 달리, 이 앱들은 시스템에 해악을 끼친다고는 생각되진 않는다. 아무튼 이러한 일종의 ‘오해’는 맥의 메모리 관리 방법에 대한 무지에서 비롯된다고 생각되는데, 이런 메모리 정보를 어떻게 이해해야 할까?

먼저 활성상태보기 앱을 실행해보면 시스템 메모리가 현재 어떻게 사용되고 있는지를 보여준다. 각각의 내용은 다음과 같다.

  • 여유공간 : 말 그래도 여유공간이다. 시스템 메모리 중 사용되지 않고 있으며, 언제든 사용할 수 있는 공간이다.
  • 와이어드 : Wired 상태의 메모리는 특히 앱의 실행 코드가 올라가 있는 공간이다. 따라서 하드디스크 위의 가상메모리 공간으로 스와핑이 불가능하다.
  • 활성 : 활성 메모리 영역은 앱들이 정보를 올려두고 사용하는 공간이다. 메모리가 부족한 상황이 된다면 시스템은 이 영역의 데이터 중 당장 사용되지 않는 내용들을 가상 메모리로 옮겨주게 된다.
  • 비활성 : 아마 시스템을 사용하다보면 가장 많은 분량을 차지하게 되는 메모리 공간이다. 비활성 메모리는 최근에 종료한 앱이 사용했던 공간이다. 이 부분을 바로 해제해서 여유 공간으로 확보할 수 있지만, 실제로는 일반적인 사용자는 동일한 앱을 빈번히 종료/재시작하므로, 비활성 메모리에 이전 앱이 사용하던 정보를 남겨두면, 그 앱을 재실행할 때 빠르게 구동할 수 있다는 장점이 있다. 물론 메모리가 부족한 상황에서는 이 공간을 free 하여 필요한 메모리를 즉시 확보할 수 있다. 현재 시중에 나도는 메모리 확보용 앱은 이 비활성 메모리 영역을 해제해주는 것외에 하는 내용은 없다.

따라서 시스템에서 사용 가능한 메모리 공간은 “여유공간 + 비활성”의 크기 만큼이 되겠다. 그리고 이 두 영역을 합해도 필요한 메모리보다 부족하다면 시스템은 활성 메모리 중의 일부를 디스크로 옮겨서 필요한 메모리 영역을 확보하게 된다. 이 때 사용하는 가상 메모리의 크기가 VM이며, VM에 대해 얼마나 액세스했는가 하는 정보가 페이지출력/입력에 표시된다.
이 페이지 입력/출력의 양이 많으면 많을수록 더 많은 양의 메모리가 필요해서 그 만큼 페이징을 했다는 이야기이며, 하드디스크는 램에 비해 훨씬 더 속도가 느리므로 시스템의 전체적인 체감 성능이 떨어진 것처럼 느껴질 수 있다. 하지만 대부분의 경우에는 그 정도까지로 메모리를 사용하는 케이스는 좀 드물다.
맥이 메모리를 99%, 100%까지 쓰는 것은 메모리를 잘 못 관리하기 때문이 아니라, 그만큼 메모리를 잘 활용하고 있는 (그것도 극대화하여 사용) 증거이므로 굳이 메모리 관리 앱을 사용하여 여유 공간을 수동을 매번 잡아줄 필요는 없다.
덧 : 이는 몇 번 지적한 내용인데, 윈도용 메모리 확보 프로그램은 맥으로 치면 현재의 활성상태 메모리 영역에 있는 데이터를 디스크의 스왑공간으로 강제로 옮기는 기능을 수행한다. 따라서 일시적으로 여유공간이 증가하는 것처럼 보이지만, 필요이상의 하드디스크 액세스를 발생시키므로 오히려 앱을 사용하는 속도는 느려진다. 윈도에서의 메모리 관리도 시스템이 관리하는 것이 가장 낫다고 생각된다. 단, 윈도는 메모리 여유 공간이 제법 남아 있는 상황에서도 가상메모리로 페이징하는 일이 빈번하여 되려 같은 체감성능을 제공하는데 있어 더 많은 램 크기를 요구하는 경우가 많다.
참고자료 : http://support.apple.com/kb/HT1342?viewlocale=ko_KR&locale=ko_KR

Read more

워드프레스에서 고스트로 이전

워드프레스에서 고스트로 이전

이 글을 쓰면서도 믿기 힘든 사실인데, 블로그라는 걸 처음 시작한지가 20년이 되었습니다. 이글루스에서 처음 시작했다가, SK컴즈가 인수한다고 발표함과 동시에 워드프레스로 플랫폼을 옮겼죠. 워드프레스오 옮긴 이후에는 호스팅 환경을 이리 저리 옮기긴 했지만 거의 18년 가까이 워드프레스를 사용해온 것 같습니다. 그 동안 워드프레스는 블로깅 툴에서 명실상부한 범용CMS로 발전했습니다. 사실 웬만한 홈페이지들은 이제

By sooop
띄어쓰기에 대한 생각

띄어쓰기에 대한 생각

업무 메일을 쓸 때 가장 많이 쓰는 말 중에 하나가 메일 말미에 ‘업무에 참고 부탁 드립니다.‘인데요, 어느 날부터 아웃룩에서 이 ‘부탁 드립니다’가 틀렸다고 맞춤법 지적을 하기 시작했습니다. 맞는 말은 ‘부탁드립니다’라고 붙여 쓰는 거라고. 사실 아래아한글 시절부터 이전의 MS워드까지, 워드프로세서들의 한국어 맞춤법 검사 실력은 거의 있으나 마나 한

By sooop

구글 포토에서 아이클라우드로 탈출한 후기

한 때 구글 포토가 백업 용량을 무제한으로 제공해 주겠다고해서, 구글 포토를 사용해서 사진을 백업해왔습니다. 물론 이 이야기의 결말은 저나 이 글을 읽고 있는 여러분이나 모두 알고 있습니다. 사실 AI에게 학습 시킬 이미지 데이터를 모으기 위한 것일 뿐이라거나 하는 이야기는 그 당시에도 있었습니다만, 에이 그래도 구글인데 용량은 넉넉하게 주겠지…하는 순진한

By sooop

Julia의 함수 사용팁

연산자의 함수적 표기 Julia의 연산자는 기본적으로 함수이며, 함수 호출 표기와 같은 방식으로 호출하는 것이 가능합니다. 또한 그 자체로 함수이기 때문에 filter(), map() 과 같이 함수를 인자로 받는 함수에도 연산자를 그대로 적용하는 것이 가능합니다. 특히 + 연산자는 sum() 함수와 같이 여러 인자를 받아 인자들의 합을 구할 수 있습니다. 2 + 3 # = 5 +(2,

By sooop