스몬봇 장애 & 스몬봇 사용료에 대한 제안

avatar

안녕하세요 @realmankwon입니다.

어제 아침 스몬봇에 장애가 있었습니다.
원인은 예전에도 있었던 DB 접속 장애였습니다.
사양이 낮아서인지 동접자수가 많아지면 DB 조회 속도가 급격하게 떨어져서 값을 가져오지 못하게 되었습니다.
Index를 걸어서 쿼리의 속도도 빠르게 했지만 이미 접속되어서 처리하고 있는 건이 워낙 많기 때문에 처리가 늦게되는 것 같았습니다.
스몬봇을 끄고 쿼리를 실행하면 빨라지는 것으로 보아 원인이 맞는 것 같습니다.

다음은 AWS의 RDS 모니터링에서 IOPS 읽기에 대한 수치 변화입니다.
IOPS 의 상세 설명은 다음과 같습니다.

Input/Output Operation Per Second의 약자로 HDD, SSD, SAN 같은 컴퓨터 저장 장치를 벤치마크하는 데 사용되는 성능 측정 단위다.

쉽게 얘기해서 얼마나 많은 데이터를 읽었느냐를 수치로 나타낸 것이라 이해하시면 됩니다.

제가 혼자 사용할때는 for문으로 한 계정씩 실행을 하고 있었습니다.
물론 node.js는 비동기적 언어이기 때문에 한 계정씩 실행 시켰다고 할지라도 완료가 되기 전에 다른 계정이 또 실행이 될 수 있습니다.
그래서 동시에 여러 계정들이 실행이 되지만 그래도 보통은 3~4개이 실행이 되기 때문에 한번에 DB에서 읽는 양은 제한적이었습니다.

하지만 서비스를 생각을 두고 변경을 하면서 동시에 10계정을 시작시킬 수 있게 로직을 변경하다보니 한번에 20~30 계정이 DB에 접속하게 되었습니다.
그 작업을 6월 11일에 했는데 정확히 그때부터 수치가 오르기 시작했고 몇 분이 참여하면서 그 수치는 평소보다 몇 백배가 많아지는 것을 수치상으로 확인이 가능합니다.

그렇다보니 동시에 DB에 접속하는 계정이 많아지니 대기 시간이 너무 오래 걸려서 덱을 찾아오지 못해서 폐하게 되는 경우가 많아졌습니다.
그래서 일단 오전에는 스몬봇을 껐더니 오른쪽의 빨간색 원처럼 바로 DB 사용율이 확 줄어든 것을 확인할 수 있었습니다.

이것을 해결하는 방법은 여러가지가 있을 것 같습니다.

  • 한번에 플레이하는 계정수를 줄임
  • DB사양을 업그레이드
  • 소스의 최적화

현재는 한번에 플레이하는 계정수를 줄여서 진행하고 있습니다.
이렇게 했을때 단점은 배틀과의 간격이 너무 길다는 것입니다.

12~18분 정도로 간격이 길다보니 일퀘를 완료하는데 시간이 오래걸리기도 하고 DEC 를 채굴함에 있어서도 더 많은 게임을 할수록 채굴양이 많은데 비효율적인 것 같습니다.
개인적으로는 하루에 20개 계정으로 2000~3000 DEC 정도를 채굴했었는데 그 반정도 밖에 되지 않는 것 같습니다.
DB 를 사용하지 않거나 사양을 높이는 방식으로 하기에는 작업에 소요되는 시간이 있으니 쉽지 않네요.

이 부분이 해결이 되어야지 정식으로 서비스를 출시할 수 있을 것 같습니다.
또한 서비스 사용료도 아직 정해지지 않다보니 정식 출시에 시간이 더 걸리는군요.

스몬봇 사용료에 대해서는 다음과 같이 생각을 해 보았습니다.

1 . 계정당 기본 사용료

현재 생각으로는 한 계정당 월 500 ~ 1000 DEC 를 고정으로 받아 서버비를 충당할까 합니다.
1 DEC가 1원이 조금 안 되지만 1원으로 생각하면 한 계정당 500 ~1000원이 한달 사용료가 되는 것입니다.
다계정일수록 서버에 부하를 더 많이 주기 때문에 계정당으로 서비스료를 부과하는 것이 맞을 것 같습니다.

2 . 게임 진행 사용료

기본 사용료 외에 각 계정 당 게임, 일퀘, 시즌 보상에서 나온 DEC의 20~30%를 추가로 사용료를 부과하는 부분을 생각하고 있습니다.
카드 보상에 대해서는 부과하는 것이 없을 것입니다.
서버 문제로 인해서 실제로 게임을 진행하지 않았을때는 사용료도 없기 때문에 이렇게 하는 것이 가장 합리적일 것 같습니다.

기본 사용료와 게임 진행 사용료로 나누어서 지불하는 방안에 대해서 어떻게 생각하시는지 의견이 있으시면 남겨주시면 감사하겠습니다. ^^
요즘 폭풍 개발건들이 많다보니 오늘 참 피로하군요 ㅎㅎ
그래도 결과물들이 있어서 즐거운 요즘입니다.
이제 주말!!
다들 즐거운 주말되세요!ㅎ



0
0
0.000
0 comments