24시간 팰월드 서버를 운영하다보면 점점 서버에 렉이 걸리면서 맛이 가기 시작합니다. 메모리 누수로 인해 정리되지 않은 메모리들이 점점 쌓이면서 서버에 무리를 주게 되는 것인데, 이를 해결하기 위한 방법을 알아봅시다.
24시간 팰월드 서버
앞서 말한 문제점은 24시간 내내 운영되는 팰월드 서버에서 생겨나는 일이므로 본인이 서버를 여닫는 데디케이트 서버를 운영할 때는 문제가 되지 않습니다. 직접 껐다 켜면 되니까요.
그러나 24시간 내내 항상 열려있는 멀티 서버에서는 갑자기 서버를 닫았다 열어버릴 수도 없는 노릇입니다. 이러한 서버에서는 조금 다른 방법이 필요합니다. 24시간 팰월드 서버를 만드는 법은 아래 링크를 참고하세요.
유저가 없을 때 서버 리셋 후 일시 정지하기
이제 유저들이 없을 때 서버를 리셋하고 일시 정지 상태로 유지하도록 할 것입니다. 이때 유저가 접속하면 일시 정지가 해제되면서 서버가 정상적으로 돌아가며, 유저가 1명도 없으면 다시 유휴 상태가 됩니다.
이 방법은 Docker를 이용하여 24시간 팰월드 서버를 만들었을 때 사용하는 방법입니다. 잘 모르겠으면 링크대로 서버를 만들었을 때 사용하는 방법이라고 아시면 됩니다.
준비물
서버를 재시작하도록 스크립트가 짜여져 있는 파이썬 파일입니다. 해당 파일을 다운받으세요.
또한 모바엑스텀이 필요합니다. 모바 엑스텀으로 세션 추가하는 방법은 다음 링크를 참고하세요.
✔ 팰월드 멀티 서버 24시간 서버 만드는 법#모바엑스텀 세션 만들기
1. Docker에 권한 부여하기
모바엑스텀에서 Docker에 권한을 부여해서 스크립트가 정상적으로 작동하게끔 해줘야 합니다.
sudo chmod 666 /var/run/docker.sock
위 명령어를 모바엑스텀에 입력하여 권한을 부여합니다.
2. server_restart.py 실행하기
다운받았던 Server_restart.py 파일을 드래그하여 모바엑스텀에 붙여넣기합니다.
위 상태에서 오른쪽 창에 다음과 같이 입력합니다.
nohup python3 -u server_restart.py &
위 명령어는 쉽게 말해 어떠한 프로그램을 종료없이 백그라운드로 계속 실행하고 싶다는 명령어입니다. 명령어를 입력하고 잘 작동하는지 확인하려면 아래와 같이 입력하세요.
ps -ef | grep server
palworl+ 7080 1 0 Apr22 ? 00:00:00 python3 -u server_restart.py
위처럼 server_restart.py가 포함된 명령줄이 보인다면 정상적으로 작동하고 있는 것입니다. 만약 잘못 입력했다면 아래 명령어로 종료할 수 있습니다.
kill -9 [PID번호]
PID는 ps -ef로 볼 수 있습니다. 여기서 저는 pid가 7080이기에 kill -9 7080을 입력하면 종료할 수 있습니다.
3. nohup.out 확인하기
작동하고 있는 server_restart.py는 nohup.out이라는 파일에 로그가 쌓여서 남게 됩니다. 이 로그를 실시간으로 확인하려면 아래와 같은 명령어를 입력하세요.
tail -f nohup.out
마지막 10줄을 실시간으로 보여주는 명령어입니다. 이제 팰월드 서버에 접속을 해봅시다.
접속한 유저의 이름, playeruid, steamid가 기록됩니다. 유저가 있으면 이렇게 서버가 계속 작동하고 유저가 없으면 아래와 같이 서버를 재시작합니다.
플레이어를 찾지 못해 서버를 재시작하고 있습니다. 재시작 이후에는 일시 정지 상태로 대기하며, 새로운 유저가 접속 시도를 하면 일시 정지를 풀고 서버가 다시 정상적으로 돌아가게 합니다.
이렇게 플레이어가 없을 때 서버를 재시작하고 일시 정지 상태로 만듦으로써 메모리 누수를 방지하고 서버를 쾌적한 상태로 유지할 수 있습니다.
서버 운영 팁
– 구글 클라우드를 이용한 팰월드 24시간 멀티 서버 만드는 방법입니다.
✔ 기존 서버 정보를 유지한 채 새로운 24시간 멀티 서버 만들기
- 구글 클라우드의 크레딧을 거의 다 사용하여 새로운 서버를 만들어야할 때 기존 서버 정보를 새 서버에 이식하는 방법입니다.