15일날 제가 발표하는 주제가… Redis on AWS라고 되어있는데… 실 주제는…

15일날 제가 발표하는 주제가… Redis on AWS라고 되어있는데… 실 주제는 AWS에서 Redis가 느리다고 느껴지는 이유입니다. 핵심은…
http://stackoverflow.com/questions/11765502/best-ec2-setup-for-redis-server
이것의 마지막 답변을 보면 다 아시게 됩니다. 이거를 조금 더 풀어서 증거자료와 함께 발표를 드릴꺼 같습니다. 흑흑흑…

25 thoughts on “15일날 제가 발표하는 주제가… Redis on AWS라고 되어있는데… 실 주제는…

  1. Jihoon Kong 그런데 저것들이 다… 결국 핵심은 fork + persistent 라서… 왜냐하면… 결국 오래걸릴만한게 disk에 쓰는거 특히 클라우드는 다들 network storage니… 여기서 시간이 더 걸릴수 밖에 없는거죠. 흑흑흑 발표내용… 여기서 끝…

  2. 아 이건 일반화 시키기가 좀 쉽지 않은 문제인 것 같네요. 일단 hvm 인스턴스일 경우에는 당연히 로컬 디스크를 사용할테니 persistence 에 대해서 눈에 띄는 성능 향상이 가능해 지겠지만 저라면 성능이 조금 처지더라도 snapshotting 을 통해 만에 하나 인스턴스가 통째로 날아가는 사고를 당하더라도 조금 더 쉬운 복구를 할 수 있는 쪽을 선택할 것 같습니다.

    또한 캐시서버라는 것이 극단적인 방식으로 성능을 끌어내는 솔루션인 만큼 persistence 를 자주해서 좋을 것도 없고 데이터의 안정적인 보관을 위해서라면 더 근본적인 대책을 마련하는 것이 낫지 않나 생각해 봅니다.

    사실 굳이 redis 가 아니더라도 rabbitmq 클러스터만 구성해 봐도 정상적인 ec2 + ebs 환경에서는 운용조차 불가능 한 것을 바로 확인 가능합니다. 이는 서비스의 특징이지, 단점이 될 순 없다고 봅니다.

    redis 를 ec2(hvm) 위에서 돌리면서 동접 2만(초당 redis get/set 5만 이상) 정도 받아내 봤는데 사실 ec2 성능상의 문제를 겪어 본 적은 없습니다. 왠만한 서비스에서는 겪을 일도 없을 마세라티 문제라 생각합니다.

    뭐 만에 하나 문제가 발생하더라도 최근 redis 에 샤딩 기능이 포함되었으니 마스터-슬레이브 형태의 클러스터링 보다 샤딩 기반의 클러스터링을 구성하시면 더 낫겠지요?

  3. Moon Soo Kim 음… 이러다가 발표내용이 다 나올듯한데요. 이미 IBM이라… 혹시 persistent 옵션을 쓰셨나요? 이게 메모리 양이 적을때 크게 문제는 없는데, 사용하는 메모리 사이즈에 따라, fork time이 달라집니다. hvm 일때는 큰 문제가 없는데 pv 일 때는 꽤 큰 시간이 걸립니다. 몇초까지도, 그런데 싱글 스레드다 보니… fork 하는 동안, 처리가 불가능합니다. 초당 5만을 받으셨다고 하셨으니… 그 5만 쿼리가 전부 딜레이가 걸리는 거라… timeout에 따라서 꽤 영향을 받을 수 있습니다.

  4. Dae Myung Clark Kang 네 저희도 예전에 사실 비슷한 문제로 피를 본 적이 있습니다 ㅠㅠ fork 잘못했다가 redis 가 행걸린 것 처럼 응답도 없을 때가 생긴다던지…아주 환장하죠 진짜. redis 홈페이지를 봐도, 소스 코드를 봐도 redis 는 “거의” 싱글 스레드처럼 동작한다고 하죠. 그 중심에는 bgsave 가 있구요…

    다만 저는 이게 aws 상에서의 선택의 문제가 아닐까 생각해 보는거죠. 저도 aws 에 대해 깊이 몰라서 이런 소리 하는 걸 수도 있는데 hvm 인스턴스는 ebs 스냅샷도, 그리고 그 스냅샷을 이용해서 손쉽게 인스턴스 이미지를 만드는 것도, 그리고 그 이미지를 이용해서 나만의 맞춤형 인스턴스를 수십대 쫘악 깔아제끼는 것도 불가능하다는 점에서 선택의 문제, 특성의 문제가 아닌가 하는 말을 해 본 겁니다. 뭐 클라우드포메이션과 chef 같은게 있다면 어느정도 제가 말한 문제로부터 자유로울 수 있겠습니다만…

  5. 예를 들어 꼭 redis 가 필요한게 아니라면 persistence 지옥에 매달릴 것 없이 couchbase 를 선택하는 것도 좋은 방법일 거라 생각합니다. (도입 테스트 하다가 때려치워서 ebs 에서 couchbase 의 성능은 잘 모르겠네요)

  6. 아 역시 초보티 팍팍 냈네요. 인스턴스 스토리지를 쓰려면 hvm 을 쓸 수 있는거지 그 반대로 생각했네요. 그렇다면 제가 위에 적은 내용들은 쓰잘데기없는 소리였네요 ㅎㅎ hvm vs pv 이슈에 제가 제대로 모르고 ebs vs instance storage 를 끌고 온 셈이군요.

    지적 감사합니다. ^^

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.