카카오톡은 최근까지 시스템에 변화를 주고 있다. 기본적인 데이터베이스(DB) 시스템부터 하드웨어까지 다양한 업그레이드 작업이 이뤄졌다. 이를 통해 데이터베이스 운영 속도가 10배 빨라지고 서버 규모도 줄일 수 있었다는 설명이다.
최근 퓨전IO가 케이스스터디 페이지를 통해 카카오톡의 성능 업그레이드 사례를 소개했다.
이 회사는 최근 카카오톡의 기존 메신저 시스템에 솔리드스테이트드라이브(SSD)를 도입했다.
1억명의 사용자를 보유한 카카오톡은 방대한 양의 메시지 처리를 위해 입출력(I/O) 대기시간을 출일 수 있는 방안을 원했다. 기본적인 SW변화와 별개로 디스크 기반 인프라에 변화를 줘야한다는 게 카카오톡의 판단이었다.
카카오톡은 SSD 기반 시스템을 우선 시범 적용했다. 그러나 RAID 컨트롤러를 필요로 하는 SSD 시스템의 경우 최대 성능이 불안정했다. 때문에 퓨전IO의 IO드라이브를 도입해 일관된 피크 성능을 달성했다. 단순 SSD를 사용했을 때보다 퓨전IO를 사용했을 때 5배 빠른 트랜잭션 처리속도를 기록했다. HDD 기반 시스템보다는 10배 빨랐다.
고우찬 카카오톡 IT시스템 팀장은 퓨전IO 솔루션은 SSD 시스템보다 5배 더 빨리 메시지 트랜잭션을 완수했고, HDD 시스템보다 10배 더 빨랐다라고 설명했다. 그는 일본 대지진 당시 카카오톡 메시지가 폭증했음에도 중단없이 작업을 완수했다라고 강조했다.
DB 서버 성능 역시 향상됐다고 한다. 전보다 적은 수의 서버로 더 높은 성능을 기록하게 됐다는 것이다. 서버 효율성은 60% 향상됐다.
이를 통해 카카오톡 서비스의 소프트웨어 스택은 IO드라이브2를 포함하게 됐다. 맨 아랫단에 IO드라이브2 365GB를 두고 VSL, 센트OS 5.8, xfs, 마리아DB 5.5, 메시징 애플리케이션 등의 순으로 스택이 구성됐다.
여기서 또 주목되는 부분은 DB다. 카카오톡은 메신저 애플리케이션에 마이SQL을 DB로 사용했다. 일반적으로 여러 웹서비스가 마이SQL 기반으로 만들어진다.
카카오톡은 메신저 출시 초기 DB서버로 오라클 마이SQL을 사용했다. 그러나 카카오톡은 작년부터 마이SQL을 마리아DB로 교체하는 작업을 시작했다.
마리아DB는 마이SQL의 창시자인 마이클 몬티 위드니우스가 만든 오픈소스 DBMS다. 마이SQL과 동일한 코드에 기반했고, 사용방법과 구조가 같다. 마이SQL과 99.99%의 바이너리 호환성을 제공한다. 때문에 마리아DB와 마이SQL은 쌍둥이 자매란 소리를 들을 정도다.
마리아DB는 마이SQL에 비해 초당쿼리처리 속도에서 2~10% 빠르다. 쿼리 최적화, 서브쿼리 지원, 조인 작업 시 색인 사용률 등에서 성능향상효과를 거둘 수 있는 것으로 평가받는다.
관련기사
- 구글, 마리아DB 후원 '反오라클 선봉?'2013.09.04
- 카카오톡 가입자 1억명 돌파2013.09.04
- 국민 메신저 ‘카카오톡’ PC서도 쓴다2013.09.04
- 위키피디아, 마이SQL 걷어낸다2013.09.04
세계 최대 백과사전인 위키피디아가 마이SQL에서 마리아DB로 교체했으며, 레드햇엔터프라이즈리눅스, 페도라, 오픈수세 등도 기반 DBMS를 마이SQL에서 마리아DB로 교체했다. 구글도 마리아DB를 마이SQL 대체품으로 고려중이다.
카카오톡의 마리아DB 대체와 퓨전IO 도입은 여러 측면의 이점을 준다. 일단 마리아DB 사용을 통해 SW적으로 더 빠른 메시지 처리를 할 수 있게 됐다. 퓨전IO 도입은 서버 대수를 줄이면서 IO 병목현상을 제거하는 효과를 줬다. 두 솔루션의 결합으로 전보다 적은 비용으로 DB를 관리할 수 있게 된 점도 주목할 부분이다.