오픈소스 성능 최적화 보고서 ch07. Infinispan
Upcoming SlideShare
Loading in...5
×
 

오픈소스 성능 최적화 보고서 ch07. Infinispan

on

  • 282 views

 

Statistics

Views

Total Views
282
Views on SlideShare
278
Embed Views
4

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 4

http://www.slideee.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

오픈소스 성능 최적화 보고서 ch07. Infinispan 오픈소스 성능 최적화 보고서 ch07. Infinispan Presentation Transcript

  • ! 오픈소스
  •   소프트웨어
  •   성능 View slide
  •   최적화 View slide
  •   보고서
  •    Ch.7
  •   Infinispan 아꿈사
  •    cecil
  • Introduction 데이터
  •   그리드
  •   플랫폼
  •   
  •    분산
  •   메모리
  •   시스템으로
  •   Key-value
  •   저장
  •   기능
  •   제공
  •    ! •주로
  •   비싸고
  •   느린
  •   저장소(RDB)와
  •   서버
  •   사이의
  •   캐시
  •   역활로
  •   사용
  •    •일부에서는
  •   RDB를
  •   대체.
  •    •분산
  •   메모리의
  •   존재
  •   이유!
  •   성능!
  •   오직
  •   성능!
  • Overview 미들웨어
  •   범주에
  •   속하는
  •   소프트웨어로
  •    응용
  •   프로그램의
  •   계층과
  •   저장
  •   계층
  •   사이에
  •   주로
  •   위치
  •    ! ! 데이터
  •   베이스만
  •   사용할
  •   경우
  •   이슈
  •    •많은
  •   경우
  •   성능의
  •   가장
  •   큰
  •   병목
  •   지점은
  •   자료의
  •   저장/조회
  •   부분
  •    ✓ 데이터
  •   베이스
  •   앞에
  •   캐시
  •   계층을
  •   둘
  •   경우
  •   성능
  •   향상
  •    •경합과
  •   잠재적
  •   실패가
  •   집중되는
  •   단일
  •   지점
  • 적용
  •   구조
  •   -
  •   라이브러리로
  •   사용 Java
  •   응용
  •   프로그램에
  •   내장하는
  •   방법
  •    응용
  •   프로그램의
  •   힙
  •   메모리의
  •   일부를
  •   캐시
  •   메모리로
  •   사용
  • 적용
  •   구조
  •   -
  •   클러스터
  •   서버
  •   구조로
  •   사용 분산
  •   캐시
  •   서버로
  •   사용
  •    infinispan
  •   노드를
  •   여러개
  •   띄워서
  •   하나의
  •   클러스터를
  •   형성
  •    각
  •   노드는
  •   자신만의
  •   격리된
  •   JVM
  •   안에
  •   위치
  • Features •데이터는
  •   클러스터
  •   내의
  •   모든
  •   서버에
  •   투명하게
  •   분사되어
  •   저장됨
  •    •SPOF(Single
  •   Point
  •   Of
  •   Failure)가
  •   존재하지
  •   않음.
  •    •인스턴스
  •   추가를
  •   통한
  •   Scale-out
  •   기능
  •   제공
  •    •인스턴스
  •   종료를
  •   통한
  •   Scale-in
  •   가능
  •    •전반적인
  •   기능
  •   손실
  •   없이
  •   Scale-in/out
  •   기능
  •   제공
  • Benchmarking •Radar
  •   Gun
  •    •경쟁/비교
  •   벤치마크
  •   수행하고
  •   보고서를
  •   생성하는
  •   오픈
  •   소스
  •   벤치마킹
  •   프레임워크
  •    •Yahoo
  •   Cloud
  •   Serving
  •   Benchmark
  •    •다양한
  •   크기의
  •   자료를
  •   읽거나
  •   쓰기
  •   위해
  •   원격
  •   저장소와
  •   통신할때
  •   잠복지연을
  •   검사
  •    •Grinder,
  •   Apache
  •   JMeter
  •    •오픈소스
  •   부하
  •   생성기
  • Radar
  •   Gun 분산
  •   테스트:
  •   인스턴스를
  •   
  •   서로
  •   다른
  •   서버에
  •   
  •    실행시켜,
  •   각
  •   분산
  •   서비스
  •   노드의
  •   성능을
  •   테스트 주요
  •   Features
  •    •프로파일링
  •    •메모리
  •   성능
  •    •성능
  •   측정:
  •   tps
  •    •확장성
  • Prime
  •   Suspects •Network
  •    •Data
  •   serialization
  •    •Writing
  •   to
  •   Disk
  •    •Synchronization,
  •   Locking
  •   and
  •   Concurrency
  •    •Threads
  •   and
  •   Context
  •   Switching
  •    •Garbage
  •   Collection
  • Network •Infinispan에서
  •   네트워크
  •   통신은
  •   비용이
  •   가장
  •   큰
  •   부분
  •    •노드
  •   -
  •   노드
  •    •노드간
  •   통신에서
  •   JGroups을
  •   사용
  •    •JGroup:
  •   TCP/UDP를
  •   지원하는
  •   클러스터
  •   구성을
  •   위한
  •   신뢰성
  •   있는
  •   메시징
  •   라이브러리
  •    •JGroup을
  •   네트워크와
  •   응용
  •   프로그램의
  •   특성에
  •   맞게
  •   조율(스레드
  •   풀,
  •   버퍼
  •   크기
  •   등..)
  •    •JGroups
  •   번들링,
  •   단편화
  •   방식에
  •   맞게
  •   응용
  •   프로그램의
  •   특성을
  •   조율
  •    •서버
  •   소켓
  •    •TCP
  •   전송/수신
  •   버퍼
  •   크기,
  •   프레임
  •   크기,
  •   점보
  •   프레임
  •   크기를
  •   조욜
  •    •Netty
  •   사용:
  •   최적의
  •   성능
  •   보장하기
  •   위한
  •   여러
  •   수준의
  •   조율
  •   수단
  •   제공
  • Data
  •   serialization •하나의
  •   요청을
  •   처리하는데
  •   걸리는
  •   시간의
  •   20%를
  •   소요
  •    •Java의
  •   기본
  •   직렬화는
  •   성능이
  •   좋지
  •   못함.
  •    •메타
  •   데이터가
  •   포함됨:
  •   클래스
  •   정의
  •   등..
  •    •Externalizer를
  •   통하여
  •   직접
  •   구현
  •    •불필요한
  •   메타
  •   데이터를
  •   줄임
  •    •개발적으로
  •   재사용
  •   가능
  •   라이브러리:
  •   JBoss
  •   Marshalling
  • Writing
  •   to
  •   Disk •기본적으로
  •   내부
  •   자료
  •   구조이지만,
  •   영구
  •   기록
  •   기능도
  •   제공
  •    •내구성을
  •   위해
  •   (노드의
  •   재시작,
  •   고장)
  •    •메모리
  •   부족
  •   이슈를
  •   해결
  •    •파일
  •   시스템
  •   기반의
  •   고성능
  •   네이티브
  •   저장소
  •   준비중
  •    •메모리
  •   부족
  •   이슈를
  •   해결을
  •   위한
  •   페이징
  •   용도의
  •   최적화된
  •   B
  •   트리구조
  •    •내구성을
  •   위해
  •   쓰기는
  •   빠르지만,
  •   읽기/탐색은
  •   빠를
  •   필요가
  •   없는
  •   추가
  •   전용
  •   구조
  • Synchronization,
  •   Locking
  •   and
  •    Concurrency •핵심
  •   자료
  •   구조는
  •   동시
  •   접근
  •   시
  •   소프트웨어
  •   트랜잭션
  •   메모리
  •   사용
  •    •향후
  •   하드웨어
  •   지원
  •   시
  •   많은
  •   수정이
  •   필요
  •   없음.
  •    •Lock,
  •   Mutex등의
  •   동기화
  •   수단의
  •   필요성을
  •   최소화
  •    •또한
  •   학술
  •   논문을
  •   참고하여,
  •   lock-free
  •   구현
  •   기법을
  •   최대한
  •   적용
  • Threads
  •   and
  •   Context
  •   Switching Infinispan의
  •   서브
  •   시스템들은
  •   별도의
  •   
  •    스레드풀을
  •   사용하여
  •   비동기
  •   연산을
  •   지원
  •    ! 스레드
  •   자체는
  •   값싼
  •   자원이
  •   아님.
  •    조율이
  •   필요 Ex)
  •   비동기
  •   전송
  •   스레드
  •   풀의
  •   스레드의
  •   수
  •    •노드의
  •   평균
  •   동시
  •   갱신
  •   횟수
  •   이상
  • Garbage
  •   Collection •JVM의
  •   Garbage
  •   Collection의
  •   일반적인
  •   관행을
  •   따름
  •    •만약,
  •   GC
  •   중
  •   응답이
  •   없다면
  •   노드가
  •   고장난
  •   것으로
  •   판단
  •   우려가
  •   있음.
  •    •Open
  •   JDK
  •   or
  •   Oracle
  •   HostSpot
  •   JVM에서는
  •   CMS
  •    (Concurrent
  •   Mark
  •   and
  •   Sweep)가
  •   최적의
  •   설정
  •    •응답성이
  •   문제가
  •   될경우
  •   C4(Azul의
  •   Zing
  •   JVM)을
  •   고려
  • Reference • 테이비시
  •   암스트롱
  •   엮음.
  •   오픈소스
  •   소프트웨어
  •   성능
  •   최적화
  •   보고서.
  •   (류광
  •   옮 김).
  •   경기도
  •   파주:
  •   제이펍,
  •   2014