저번에 EBS 볼륨 크기를 늘려 용량 부족 문제는 해결했다. 그런데 다른 서버에서는 돌아가던 코드가 AWS 서버에서 돌아가지 않는 부분을 발견했다. 160MB짜리 Pickle 파일을 읽어내는 부분이었는데, 왜 이걸 못 불러오지? 싶었다. 결국 서버는 렉먹기 시작했고 Apache 자체에서 5분 TimeOut이 되어버려서 끊겼다.
이유는 메모리 부족이었다. AWS프리티어는 메모리가 1GB라고 (...)
돈주고 사기는 싫으니 대처방안이라고 하는 게 맞겠다. 임시방편인데 swap file
을 이용했다. 아마존 블로그에 소개되어있다.
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ sudo swapon -s
$ sudo vi /etc/fstab
그리고 파일의 맨 아래줄에 다음과 같은 글을 입력하기 위해 커서를 움직이고 i(끼워넣기)키 누르고 다 입력한 뒤 esc키 누르고, :wq 입력
/swapfile swap swap defaults 0 0
하면 끝난다.
이 다음에 Pickle파일을 읽어올 수 있었다. 이 방법은 느리긴 하지만 돌아가긴 할거다.