클라우드 서버들은 신기하게 스왑 공간이 0으로 설정돼 있습니다.
스왑 공간은 메모리가 다 찼을 때 임시로 사용할 수 있는 파일 시스템 공간입니다.
스왑은 기본적으로 사용하지 않을 수 있다면 사용하지 않는 게 성능상은 가장 좋습니다. 메모리를 늘리는 게 답이죠. 스왑 공간은 메모리가 아니라 저장공간이기 때문에 많이 느립니다. SSD 덕에 요즘은 스왑 공간도 나름 빨라졌다고 하지만 그래도 RAM의 성능을 따라갈 수는 없습니다.
스왑 사용 여부는 어떻게 정해야 할까요? 서버가 메모리 부족으로 죽어도 빠른 게 안정적인 것보다 더 중요하다면(아마 서버를 여러 대 굴리고 있으면 그렇겠죠) 스왑 공간을 굳이 설정할 필요가 없습니다.
하지만 서버가 잠깐 느려지더라도 죽는 것은 무조건 방지해야 한다면 스왑 공간을 설정해 주는 것이 좋을 것입니다. 비용 대비 서버 증설의 효용성이 적을 때 이렇게 하는 게 좋을 겁니다.
스왑 공간은 램의 1~2배가 적당하다고 합니다. 아래 명령어에는 2G로 돼 있는데, 제 서버가 1G기 때문입니다.
아래 명령어로 설정합니다. 2G는 자신에 맞게 수정해야 합니다.
# 스왑용 파일 생성
sudo fallocate -l 2G /swapfile
# 보안을 위한 권한 설정
sudo chmod 600 /swapfile
# 생성한 파일을 스왑 공간으로 설정
sudo mkswap /swapfile
# 스왑 활성화
sudo swapon /swapfile
# 재부팅해도 날아가지 않도록 /etc/fstab에 기록
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab > /dev/null
# 스왑 설정 확인
sudo swapon --show
댓글 남기기