ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프리 메모리가 충분한데도 스왑 사용량이 많은 이유
    Dev/Linux 2024. 2. 17. 17:22
    반응형

    리눅스 시스템을 사용하다 보면 시스템에 남아 있는 free 메모리가 많이 있는 데도 불구하고 스왑(swap) 사용량이 많은 경우가 있다. 

     

    스왑은 시스템 메모리에 free 메모리가 아주 낮거나 없을때만 사용되는 것이 아니었던가? 

     

    이를 알아보기 전에 스왑에 대해서 몇가지 알아야 할 내용이 있다. 

     

    첫째, 스왑 스페이스는 시스템 메모리가 아닌 스토리지 공간을 이용한다. 따라서 디스크로의 읽고 쓰는 과정이 필요한 고비용의 작업이다. 

    둘째, 디스크로 스왑아웃 되는 데이터는 파일 맵핑이 없이 애플리케이션에서 할당되어 사용되는 anonymous 데이터들이다.

    셋째, 커널은 가장 잘 사용하지 않는(inactive) 메모리 페이지 리스트(lru: Least recently used) 를 관리하는데 이 중에 anonymous 데이터 들이 스왑아웃되는 대상이된다. 

    넷째, 시스템 상에 프리메모리가 충분 하다면 스왑은 발생하지 않는다. 

    다섯째, 현재 스왑스페이스 사용량은 현재의 프리 메모리 양과는 무관할 수 있다.  스왑 아웃된 데이터는 사용하지 않는 inactive 한 데이터들이기 때문에 시스템 상에서 당장은 불필요한 데이터 들이다. 따라서 이들은 프리 메모리 부족 시 스왑 아웃되었고 메모리 부족 현상이 개선되어도 굳이 다시 메모리로 읽어 들일(swap back in) 필요가 없다. 

     

    따라서 free 명령 실행시 보여지는 현재 스왑 사용량은 현재의 시스템의 프리 메모리 사용량과는 무관할 수 도 있다. 

    반응형
Designed by Tistory.