Mac의 sleepimage 파일이란 무엇이고 지워도 되나요
sleepimage는 macOS가 잠자기를 위해 메모리의 사본을 보관하는 /private/var/vm/sleepimage의 파일입니다. 잠자는 동안 전원이 끊겨도 Mac이 열어 둔 작업을 복원할 수 있게 하는 것이 이 파일의 역할입니다. sudo로 지울 수 있지만 최대 절전 모드가 켜져 있으면 macOS가 Mac이 다음에 잠들 때 다시 쓰므로, 지워도 오래 가는 공간은 돌아오지 않습니다. 계속 없는 상태로 두려면 전원 설정을 바꿔야 하는데, 그 설정은 이 파일이 존재하는 이유인 보호 기능을 없앱니다.
이 파일이 하는 일
man pmset은 hibernatemode의 세 가지 값을 설명합니다.
hibernatemode |
잠자기 때 하는 일 | 전원이 끊기면 |
|---|---|---|
0 |
메모리에 전원이 유지되고 디스크에는 사본이 없음 | 세션을 잃음 |
3 |
메모리에 전원이 유지되고 사본이 디스크에 기록됨, 매뉴얼상 휴대용 기기의 기본값 | Mac이 사본에서 복원함 |
25 |
사본이 디스크에 기록되고 메모리 전원이 꺼짐: 잠자기와 깨우기는 느려지지만 배터리는 더 오래 감 | Mac이 항상 사본에서 복원함 |
standby도 중요합니다. 켜져 있으면 macOS는 한동안 잠들어 있던 Mac을 최대 절전 상태로 넘기며, 이때도 이미지가 기록됩니다. 그래서 hibernatemode 0인 데스크톱에도 이 파일이 있을 수 있습니다.
다음과 같이 설정과 파일을 확인합니다.
pmset -g | grep -E 'hibernate|standby|autopoweroff'
ls -lh /private/var/vm
출력에는 경로가 hibernatefile로 나옵니다. 폴더 목록에는 /var/vm이 보일 수 있으며, 이것은 /private/var/vm과 같은 곳입니다.
얼마나 커지나
항상 메모리 크기와 같지는 않습니다. 이 글을 확인한 Apple 실리콘 Mac은 메모리가 48GB이고 hibernatemode 3에서 sleepimage가 2.0GB였습니다. 여러분의 Mac에서는 기종과 메모리에 있던 내용에 따라 달라지므로 가정하지 말고 직접 재세요.
du -h /private/var/vm/sleepimage
이 파일은 오래전부터 함께 언급되어 왔지만 스왑과는 관계가 없습니다. 최근 Mac에서 스왑 파일은 별도의 볼륨에 있으며, Mac에서 스왑이 동작하는 방식에서 다룹니다. 저장 공간 설정은 보통 sleepimage를 시스템 데이터에 포함하므로 큰 시스템 데이터 수치의 일부일 수 있지만, 주된 부분인 경우는 드뭅니다.
지워야 하나
대부분의 사람에게는 아닙니다. 몇 기가바이트는 다음 잠자기 전까지만 돌아오고, 이 파일은 제 역할을 하고 있습니다. 작은 디스크에서 정말 그 공간이 필요하다면 오래 가는 방법은 이미지를 쓰는 설정을 모두 끄는 것뿐입니다. 매뉴얼에 따르면 최대 절전 이미지는 hibernatemode, standby, autopoweroff가 모두 0일 때에만 완전히 중단됩니다.
sudo pmset -a hibernatemode 0
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
sudo rm /private/var/vm/sleepimage
pmset -g에 autopoweroff가 나오지 않으면 그 줄은 건너뛰세요. 대가는 잠자는 동안 배터리가 바닥나거나 데스크톱의 전원이 끊기면 세션이 돌아올 방법 없이 끝나고, 저장하지 않은 작업이 사라진다는 점입니다. 노트북을 평소대로 되돌리려면 hibernatemode를 3으로, standby를 1로 되돌린 다음 Mac을 한 번 잠들게 하세요.
sudo pmset -a hibernatemode 3
sudo pmset -a standby 1
하지 말아야 할 것
- 파일을 계속 반복해서 지우지 마세요. 같은 쓰기 비용이 들고, 다음 잠자기 때 그 공간은 파일로 되돌아옵니다.
hibernatefile이 외장 디스크를 가리키게 하지 마세요. 매뉴얼에 따르면 루트 볼륨의 파일만 가리킬 수 있습니다.- 파일을 잠긴 빈 파일로 바꾸지 마세요. 포럼에서 오래 전해진 방법인데, 시스템 설정과 충돌하고 실제 상태를 가립니다.
- 배터리가 자주 바닥나는 노트북에서는 이 설정들을 끄지 마세요. 이 파일이 지켜 주는 상황이 바로 그 경우입니다.
Mole은 어디에 쓰이나
Mole에는 sleepimage용 정리 행이 없습니다. 실행 중인 시스템 파일이라 지워도 오래 비워지지 않기 때문입니다. 분석은 /private를 포함한 macOS 시스템 영역을 건너뛰므로 /private/var/vm과 sleepimage는 거기에 나타나지 않고 Mole에서 휴지통으로 옮길 수도 없습니다. Mole은 hibernatemode도 바꾸지 않습니다. 건드리는 pmset 설정은 disablesleep 하나뿐이며, 화면 켜기 유지가 덮개를 닫아도 깨어 있도록 할 때 씁니다. 디스크가 가득 찼다면 실제 후보는 대개 다른 곳에 있으므로, 시동 디스크가 가득 찼을 때 할 일에서 시작하는 편이 낫습니다.
자주 묻는 질문
Mac에서 sleepimage를 지워도 되나요?
sudo rm으로 지울 수는 있지만, 최대 절전 모드가 켜져 있으면 macOS가 다음 잠자기 때 다시 씁니다. 없는 상태를 유지하려면 hibernatemode, standby, autopoweroff를 0으로 설정해야 하고, 잠자는 동안 전원이 끊기면 세션이 끝나는 것을 감수해야 합니다.
sleepimage는 왜 이렇게 큰가요?
잠자기를 위한 메모리 사본이 들어 있으므로 기종과 메모리에 있던 내용에 따라 달라집니다. 다른 Mac의 수치는 참고가 되지 않으니 du -h /private/var/vm/sleepimage로 확인하세요.
sleepimage는 스왑과 같은 것인가요?
아닙니다. 스왑은 Mac이 깨어 있고 메모리가 부족할 때 메모리 페이지를 보관합니다. sleepimage는 잠자는 동안 전원이 끊긴 뒤에 복원하기 위해 있습니다.
hibernatemode를 0으로 하면 어떻게 되나요?
잠자기와 깨우기가 조금 빨라질 수 있고 그 모드에서는 이미지가 기록되지 않지만, Mac이 잠자는 동안 전원이 끊기면 열어 둔 작업이 복원되지 않습니다. standby가 켜져 있는 Mac에서는 그것도 끌 때까지 이미지가 기록될 수 있습니다.
디스크가 작은 Mac에서는 sleepimage가 중요한가요?
256GB 디스크에서는 몇 기가바이트가 더 크게 느껴지므로 그럴 수 있습니다. 그래도 개발자 캐시, iPhone 백업, 앱 데이터를 먼저 보세요. 잠자기 동작을 바꾸지 않고도 훨씬 많은 공간이 돌아옵니다.