More Related Content
Similar to Cassandra 멘붕기 | Devon 2012 (20)
Cassandra 멘붕기 | Devon 2012
- 6. 검색 광고? 광고 검색?
CPT, CPM, CPC, ... ?
무엇에 대해 광고비를 지불하는가
기간, 회수, 클릭
- 8. 쿼리는 얼마나?
다음 통합검색: 5~6천만/일
외부 매체 포함 총 유입 쿼리: 120~140 M
카산드라 Read (쿼리의 15배): 20억/일
카산드라 총 쿼리: 약 25억/일
- 13. 리즈 시절
구현이 쉽다.
쓸만한 속도가 나온다. MEMORY Engine 쓰면...
요즘에 비해 유입 쿼리가 절반 수준이었다.
게시판 구현과 유사한 방식
그렇게... Mysql을 선택해 버렸다......
- 18. Why Cassandra?
카산드라 내부의 데이터 저장방식
검색 인덱스의 데이터 구조와 매우 유사
그 외 NoSQL의 일반적(매력적) 특성
High Availabilities
Scalabilities
등등등...
- 22. Why Cassandra?
간략한 특징
토큰 링 위에 key를 배치한다.
모든 노드의 행동이 동일하다.
Update가 없다. 무조건 Write.
메모리 우선 Read/Write
C를 다소 희생시켜 A, P 보장
- 24. 1st trial
20 Nodes 짜리 Cluster
각 Node는,
CPU: 4-cores
RAM: 8GB
DISK: SATA-3 x 2 volumes
...면 충분할거라 생각했다.
- 26. 1차 멘붕
Hot spot 다수 발생
schema 설계를 “더 잘 해야”했다.
CF, ROW, COLUMN 크기와 수를 예측
Replication strategy도..
- 33. 2차 멘붕
왜 이래도 안되나?ㅠㅠㅠㅠㅠㅠ
Compactions ➔ HEAVY I/O
iowait 상태 유발된 후 swap발생
Hot spot이 전체 클러스터로 확산
메모리 우선이라는 특징이 무력화
- 35. 3rd trial
...이라고 쓰고 서버교체라고 읽는다.
SATA to SAS
RAID-10 구성
RAID controller상의 cache는 그다지...
swapoff
네할렘 트리플 풀채널 : 4GB x 3EA
- 36. 3차 멘붕
며칠 잠잠하더니 뻥뻥터지는 Read Time-out
이번에도 Disk I/O 관련한 iowait 부하
tcp소켓도 다소 문제.
- 39. 3차 멘붕
스키마에 오타라니 OTL
keys_cached가 8,000,000
이 실수를 안하는 꼼수-_-개발
800000 은 자릿점이 없다
800111
50111000
- 42. Tuning again...
블럭디바이스 스케줄러
noop, anticipatory, DEADLINE, cfq
ext4 mount options
rw,noatime,data=writeback,barrier=
0,nobh,errors=remount-ro
Integrity 위협 = Consistency 희생?
- 44. Tuning again...
/etc/sysctl.conf
vm.swappiness = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.core.somaxconn = 3072
net.ipv4.tcp_fin_timeout = 10
- 45. Tuning again...
Running on JVM
깨알같은...
-XX:+UseCompressedOops
-XX:+UseParNewGC (기본)
-XX:+UseConcMarkSweepGC (기본)
-XX:+CMSParallelRemarkEnabled (기본)
- 46. Tuning again...
Running on JVM
(계속)
-XX:SurvivorRatio=11
-XX:MaxTenuringThreshold=1 (기본)
-XX:CMSInitiatingOccupancyFraction=90
-XX:+UseCMSInitiatingOccupancyOnly (기본)
- 49. 4차 멘붕
노드중 한 대만 이상한 짓을 한다.
Hot spot?
RAID controller 불량으로 판정
교체후 쌩쌩해짐
장비 불량은 빨리 발견해서 AS받자.
- 51. 요약
SYSTEM
Cassandra
RAM, SAS, RAID
JNA, MMAP
OS
schema design
scheduler
cache size
sysctl, swapoff
disable keep-alive
ext4, mount opt
Endpoint snitch
JVM
column index size
OOPS
disable preheat
GC