카테고리 없음

텍스트큐브의 색다른 공지사항

MIRiyA☆ 2009. 4. 5. 11:28




텍스트큐브 닷컴의 공지사항에 장애에 대한 공지가 올라왔다.

아래와 같은 내용이다.


2009년 3월 30일부터 2009년 4월 1일까지 텍스트큐브 메인 사이트 및 notice, howto와 포럼 접속이 원활하지 않은 문제가 있었습니다. 원인을 분석하여 문제를 해결 하였습니다. 아래는 문제가 발생한 원인의 설명입니다.

사이트에 누가 접속했는지 관리하는 기능을 세션기능이라고 합니다. 텍스트큐브는 세션을 데이터베이스(mysql)를 사용하여 관리합니다. 그런데 텍스트큐브 메인 사이트의 세션 관리를 파일 기반 DB로 감당하는 것에는 한계가 있습니다. 그렇기 때문에 텍스트큐브 메인 서버는 텍스트큐브 1.8 베타의 메모리 DB 사용 기능(memcached 사용기능) 을 이용하여 세션을 메모리에서 처리합니다. 기존 메인 서버가 위치했던 TNF1이 2008년 10월 1일의 문제( http://notice.textcube.org/ko/147 ) 로 수리 절차에 들어간 이후, 텍스트큐브 메인 서버 및 포럼을 daybreaker님 의 개인 서버로 이전하여 운영 중입니다. 이후 이전한 서버 환경에 따라 memcached를 사용하지 않고 mysql MEMORY type 테이블을 사용하여 세션을 관리하고 있습니다.

그런데 메모리 타입 테이블의 메모리 총량은 mysql의 heap 메모리 크기에 의존하게 됩니다. 그런데 서버 이전 이후 새 서버의 메모리 DB 크기를 재설정하지 않아, 1시간내 접속자 수가 3천명이 넘는 경우 세션 테이블이 넘치게 됩니다. 세션을 만들 수 없게 되면 텍스트큐브는 같은 세션 아이디가 있기 때문이라고 판단하고 새로운 세션을 만드려고 시도하는데, 이 과정에서 100번을 시도합니다. 결과적으로 서버의 mysql 동작이 급격하게 느려지고, 접속이 불가능하게 됩니다. 기존에는 방문자가 문제를 야기할 만큼 많지 않았으나 지속적으로 접속자 수가 늘고 있어 이러한 경우가 발생하게 되었습니다.

문제를 알아낸 후 heap 메모리의 크기를 조정하고, 세션 유지 시간을 15분으로 줄였습니다. 또한 텍스트큐브 소스의 세션 설정 재시도 횟수를 최대 3회로 줄여 수정하여 trunk (2.0), 1.8 베타 및 1.7.8 에 반영하였습니다. 그러나 지속적으로 늘어나는 접속 유입을 감당하기 위하여 4월 중 메인 서버를 daybreaker님의 개인 서버에서 복구가 완료된 TNF1으로 다시 이전할 예정입니다.

원인을 알아내기 위하여 하드웨어 테스트를 포함한 다양한 테스트를 하느라 실제 원인을 알아내는 시간이 오래 걸렸습니다. 관련하여 개발 진행 및 다운로드, 포럼 접속에 불편을 겪으신 분들께 죄송합니다. T_T


웹서비스 공지사항이 아니라 마치 개발자 포럼에 온 듯한 느낌을 받는데, 이게 희한하긴 하지만 재미있는 이유는 텍스트큐브이기 때문이 아닐까? 오묘한 포지션이다.


ps. 만약 티스토리에서 이랬으면 큰일 났을듯.. :)





이 글이 도움이 되었다면 RSS로 구독하세요.

http://blog.daum.net/xml/rss/miriya



이 블로그의 모든 글은 자유롭게 링크할 수 있으며, 오픈캐스트 발행을 허용합니다.

다음 블로그로 스크랩하거나, 출처와 함께 퍼가도 뭐라 안합니다.(출처 없으면 뭐라 할겁니다.)