RAM에서 버퍼와 캐시가 너무 많은 공간을 차지한다고 느껴지면 Linux의 버퍼 및 캐시 공간을 비우고 싶어질 수 있습니다. 이는 대개 Windows나 macOS처럼 캐싱을 덜 적극적으로 수행하는 환경에 익숙한 사용자에게 흔히 나타나는 현상입니다. 하지만 사실 캐시를 임의로 비우면 오히려 시스템 성능이 저하될 수 있습니다. 다만 RAM과 디스크 저장소를 동기화하는 것은 좋은 습관이며, 엄밀히 말해 캐시를 비우는 것은 아니지만 많은 사용자가 이를 'Linux 캐시 정리'로 여기곤 합니다.
이 작업은 터미널에서 수행해야 합니다. Ubuntu Dash에서 터미널을 검색하거나 Ctrl+Alt+T 키를 동시에 누르면 됩니다. LXDE, Xfce4, KDE 사용자라면 응용 프로그램 메뉴나 Whisker 메뉴를 클릭한 후 시스템 도구(System Tools)로 이동하여 터미널을 열면 됩니다.
방법 1: sync 명령어 사용하기
대부분의 경우 사용자가 실제로 원하는 것은 메모리에 캐시된 쓰기 작업을 실제 데이터가 저장된 영구 저장 장치에 동기화하는 것입니다. 즉, 메모리 내 파일 버퍼에 가해진 변경 사항이 디스크에도 반영되므로, 시스템이 갑자기 중단되더라도 모든 데이터가 최신 상태로 유지될 가능성이 높아집니다. 이 개념이 다소 어렵게 느껴진다면, 'RAM의 정보를 디스크나 SSD의 정보와 동일하게 만든다'고 간단히 기억하면 됩니다.
sync 명령어를 별도 인수 없이 실행하면 바로 이 작업이 수행됩니다. 아직 디스크에 기록되지 않은 변경 사항이 파일에 반영됩니다. 명령줄에 sync를 입력하고 Enter 키를 누르세요. 화면에는 어떠한 출력도 나타나지 않으며, 이전에 어떤 명령을 실행했든 언제든 사용할 수 있습니다.
이 방법은 단 하나의 단어만 기억하면 되므로 놀랍도록 간단합니다. 다른 방법과 달리 언제든 안전하게 실행할 수 있으며, 디스크 동기화가 진행되는 짧은 순간을 제외하고는 성능에 전혀 영향을 주지 않습니다. 외장 드라이브 간에 많은 파일을 이동한 뒤 모든 쓰기 작업이 완료되었는지 확인하고 싶다면, sync를 입력하고 Enter 키를 눌러 Linux 버퍼를 정리하면 됩니다. 그 외의 다른 모든 방법은 철저히 벤치마크 측정용으로만 사용해야 합니다. '더티 섹터(dirty sectors)'라는 용어를 들어본 적이 있다면, 이것이 바로 그 문제에 대한 해결책입니다. Linux는 때때로 파일을 메모리에 보관하면서 운영체제의 다른 부분에는 해당 파일이 이미 디스크에 있다고 알립니다. 하지만 sync를 실행하면 이러한 변경 사항이 실제로 디스크에도 기록됩니다. 파일이 RAM에서 제거되지 않기 때문에, 해당 데이터가 필요한 다른 프로그램들은 여전히 속도 저하 없이 접근할 수 있습니다.
방법 2: Linux 버퍼 완전히 비우기
본격적으로 진행하기 전에 꼭 기억해야 할 점이 있습니다. Linux는 의도적으로 적극적인 캐싱을 통해 시스템 속도를 높이기 때문에, 거의 모든 상황에서 방법 1(sync)이 가장 좋은 선택입니다. 일반적으로는 안전을 위해 모든 디스크 쓰기가 완료되었는지 확인하는 sync만 실행하면 충분합니다. 하드웨어 벤치마크 등 특수한 목적을 위해서만 캐시를 완전히 비우는 방법이 필요합니다.
이 작업의 위험성을 충분히 이해했다면, 터미널에서 free && sync && echo 3 > /proc/sys/vm/drop_caches && free 명령을 실행하세요. 명령이 길기 때문에 이 문서에서 복사하여 붙여넣는 것이 편리합니다. 편집(Edit) 메뉴의 붙여넣기(Paste) 옵션이나 마우스 오른쪽 버튼 메뉴를 이용하면 됩니다. sync 단독 실행과 달리 이 명령은 root 프롬프트에서 실행해야 하며, 일반 사용자 계정으로 로그인한 경우 명령 앞에 sudo를 붙여야 합니다. 이 명령줄을 실행하면 메모리 캐시가 실제로 비워졌음을 확인할 수 있는 출력 결과를 볼 수 있습니다.
다시 한번 강조하지만, 이 방법을 사용할 유일한 이유는 벤치마크 측정입니다. Linux가 열심히 캐싱해 온 모든 데이터를 비우기 때문에 실행 직후 실질적인 성능 저하를 느낄 수 있습니다. 추가로 sudo swapoff -a로 스왑을 비활성화하고 sudo swapon -a로 다시 활성화할 수도 있지만, 이 역시 root 권한이 필요하며 유틸리티나 파일 시스템 프로세스에 대한 실제 하드웨어 벤치마크를 수행하려는 개발자가 아니라면 사용할 일이 거의 없습니다. 그 외의 모든 사용자라면 root 권한 없이 일반 사용자로 sync만 실행하여 더티 섹터가 디스크에 모두 기록되도록 하는 것으로 충분합니다.
저자 소개

Kevin Arrows
Kevin Arrows는 10년 이상의 업계 경험을 갖춘 베테랑 기술 전문가입니다. Microsoft Certified Technology Specialist(MCTS) 자격증을 보유하고 있으며, 최신 기술 동향을 꾸준히 학습하는 데 큰 열정을 가지고 있습니다. 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅 등 폭넓은 기술 분야에서 활발히 집필해 왔으며, 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 동료들에게 폭넓은 인정과 존경을 받고 있습니다.