테스트용으로 AWS Lightsail에서 가장 저렴한 5$ 플랜을 선택했습니다. 근데 이 플랜 가성비는 기가막히지만 메모리가 512MB라는 환경입니다. 512GB가 아니라 512MB!
DB 학습 및 테스트 용으로 MariaDB 설치했는데 가능하려나 싶네요
설치만 했는데 메모리가 ‘풀(Full)’?
저같이 많은 초보엔지니어들이 top 명령어를 보고 당황합니다. “서버 만들자마자 메모리 바(bar)가 절반이나 차 있네?”

- 분석 : 실제 사용량(Used)은 적지만, 리눅스 커널은 성능을 위해 남은 메모리를 캐시로 점유함. 하지만 진짜 문제는 메모리 사용량이 아니라, 아래에 보이는 “MiB Swap: 0.0/0.0” 이라는 숫자임
MariaDB 설치 후 벌어지는 일
여기에 MariaDB 설치했습니다.

- 상황 : 설치 직후 메모리 사용량(Used)은 약 15MB 상승했고, 시스템 부하(Load Average)는 약 6배가 올랐어요. 이런 상태에서 누가 DB에 접근하거나 쿼리를 날린다면 Swap이라는 방어막이 없는 이 서버는 바로 OOM 당해서 먹통 될 수 있습니다.
해결책은? 산소호흡기 달아주기 : Swap 설정
저사양 서버에서 Swap 은 선택이 아닌 필수입니다. 물리 메모리가 부족할 때 디스크 일부를 메모리처럼 빌려 쓰는 기술입니다.
설정 커맨드 (Ubuntu 22.04 기준) :
$ sudo fallocate -l 2G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

💡 Rocky Linux나 RHEL 계열 사용 중이라면 제 블로그 이전 글인 “[리눅스 실무 기초 #4] 저사양 서버의 필수 생명줄: Swap 메모리 설정 가이드” 를 참고하세요.
결과 : 이제야 안심할 수 있는 서버
설정 후 다시 지표를 확인해봤습니다.

- 결과 : 이제 MiB Swap 항목에 2048.0 이라는 숫자가 보입니다. 이제 메모리 점유율이 일시적으로 튀더라도 서버가 바로 죽지는 않을거에요
💡엔지니어의 참견 : ‘안정성’이 우선
어쩔 수 없이 비용 때문에 저사양 클라우드를 사용하신다면 지금 당장 top를 쳐서 본인 서버의 Swap을 확인해보시고 최적화 하시기를 바랍니다. 우리가 돈이 없지 가오가 없습니까?