SlideShare a Scribd company logo
다중성 확보, 시스템 안정화
choong
AP 서버
• 서버가 멈추는 요인
• 사람의 실수.
• 물리적인 고장.
• 메모리 장애.
• 장애 발생 시 자동으로 failover, 복구 시
failback
• failover : 고장난 서버를 자동적으로 분리.
• failback : 서버가 복구 되면 원상태로 복귀.
다중성 확보 – AP 서버
로드 밸런서 로드 밸런서
AP 서버 1 AP 서버 2 AP 서버 1 AP 서버 2
X
failover
failback
DB 서버
• 마스터의 다중화는 어려움.
• 멀티 마스터 구성
• 마스터간의 레플리케이션. (서로간의 슬레이브구성)
• 데이터 간 일치하지 않는 부분 발생.
• 동기화 처리 ( slave에서 쓰여진것을 확인 하고 client
에게 응답).
• 성능면에서 리스크.
멀티 마스터
• 기본적으로 Active/Standby 2대로 구성
• failover 발생 시 (standby 서버 기준)
• VRRP(Virtual Router Redundancy Protocol)라는 프
로토콜을 이용하여 Active 마스터 감시.
• 장애 발생을 발견하면 자신이 Active 마스터로 승격.
멀티 마스터 구성
LVS
마스터 DB
(Active)
마스터 DB
(Standby)
10.0.0.1(real ip)
10.0.0.3(VIP) 10.0.0.2(real ip)
상호간
레플리케이션
감시(VRRP)
LVS
마스터 DB
(Standby)
마스터 DB
(Active)
10.0.0.1(real ip)
10.0.0.2(real ip)
10.0.0.3(VIP)
상호간
레플리케이션
감시(VRRP)
장애 발생
스토리지
• 애플리케이션 데이터를 영속적, 일시적 저장하는
기능.
• 스토리지 선택 고려사항 (액세스 패턴)
• 평균크기, 최대크기, 신규추가빈도, 갱신빈도, 삭제빈
도, 참조빈도.
• 용량이 큰 HDD 사용 시, 저장된 파일 수가 많아
져서 I/O 병목 현상에 원인.
스토리지 종류
• RDBMS
• MySQL, PostgreSQL
• 분산 key-value 스토어
• memcached, TokyoTyrant
• 분산 파일 시스템
• MogileFS, GlusterFS, Lustre
• 기타
• NFS 계 분산 파일 시스템, DRBD, HDFS
MogileFS
• 작은 대량의 파일을 다룰 목적으로 Perl로 구현
된 분산 파일 시스템.
• KB~MB 크기의 파일
• 파일 추가에 적합
• 추가 후 갱신 되지 않고 참조용.
• 하나의 파일은 3중으로 다중화.
• 일부 스토리지 서버가 고장 나도 서비스는 정상적으로
가능.
• Client Server간 Http 통신 사용
• PUT, GET
MogileFS 구성
• 애플리케이션(클라이언트)
• 파일을 저장하고 로드하는 주체.
• 구현 필요.
• Tracker
• 클라이언트 요청에 대한 처리를 관리.
• DB
• 메타데이터 정보를 관리.
• 스토리지
• 파일을 저장하는 장소.
MogileFS 동작(GET)
Client
(API:Perl)
trakers Storage
nodes
database
domain,
key
Host,
Port
filename
HTTP GET
request
File
자원 효율 상반관계
• 한계에 이를 때까지 메모리 튜닝
• 안정성 <-> 자원 효율
• 메모리 소비 올라가면 ->성능 저하(스왑) -> 장애
• 메모리는 7할 정도 까지만 사용
• 한계에 이를 때까지 CPU 사용
• 안정성 <-> 속도
• 서버 1대 다운 -> 처리 능력 초과 -> 장애
• CPU를 7할 정도까지만 사용.
시스템 불안정 요인
• 애플리케이션/서비스 레벨 -> 부하증가
• 기능 추가
• 메모리 누수
• 지뢰
• 사용자의 액세스 패턴
• 데이터량 증가
• 위부연계 추가
• 하드웨어 -> 처리능력 저하
• 메모리, HDD 장애
• NIC 장애
애플리케이션/서비스 레벨
• 기능 추가 / 메모리 누수
• 새로운 기능으로 인한 부하증가.
• Perl 은 메모리 누수를 완전 배제 하기 어려움(스왑 발생).
• 지뢰
• 특정 URL 호출 메모리 누수 및 무한 루프 발생.
• 사용자의 액세스 패턴
• 특정 URL 에 트래픽이 몰려 서비스 다운.
• 데이터량 증가
• 당초 예상했던 데이터량 보다 늘어나서 부하의 증가.
• 데이터 설계 미흡으로 인한 테이블 레코드 증가.
• 외부연계 추가
• 외부 시스템 장애로 서비스 장애
하드웨어 레벨
• 메모리, HDD, NIC 장애
• 일상적으로 발생하는 장애
• 로드밸런서 에서 적절한 항목에 대해 헬스체크.
시스템 안정화 대책
• 적절한 버퍼 유지
• 메모리량, CPU 사용 7할 유지
• 불안정 요인 제거
• 부하가 높아질 것 같은 SQL은 다른 DB 이용해서 처
리.
• 이상 동작 시의 자율제어
• 자동 DoS 판정
• 자동 재 시작
• 자동 쿼리제거

More Related Content

What's hot

03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
Opennaru, inc.
 
가용성을 고려한 웹 서비스 인프라 설계
가용성을 고려한 웹 서비스 인프라 설계가용성을 고려한 웹 서비스 인프라 설계
가용성을 고려한 웹 서비스 인프라 설계
Herren
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shooting
DaeMyung Kang
 
Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloops
SungMin OH
 
서버/인프라를 지탱하는 기술
서버/인프라를 지탱하는 기술서버/인프라를 지탱하는 기술
서버/인프라를 지탱하는 기술
재훈 정
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
Ted Won
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
Opennaru, inc.
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
smartstudy_official
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
HyeonSeok Choi
 
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2HyeonSeok Choi
 
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발
현승 배
 
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서흥배 최
 
20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈
ymtech
 
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
Hyunmin Lee
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기
cho hyun jong
 
서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infraHwanseok Park
 

What's hot (20)

03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
가용성을 고려한 웹 서비스 인프라 설계
가용성을 고려한 웹 서비스 인프라 설계가용성을 고려한 웹 서비스 인프라 설계
가용성을 고려한 웹 서비스 인프라 설계
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
Redis
RedisRedis
Redis
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shooting
 
Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloops
 
Redis on AWS
Redis on AWSRedis on AWS
Redis on AWS
 
서버/인프라를 지탱하는 기술
서버/인프라를 지탱하는 기술서버/인프라를 지탱하는 기술
서버/인프라를 지탱하는 기술
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
Redis edu 4
Redis edu 4Redis edu 4
Redis edu 4
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
 
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
 
서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2서버인프라를지탱하는기술2_1-2
서버인프라를지탱하는기술2_1-2
 
FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발FCGI, C++로 Restful 서버 개발
FCGI, C++로 Restful 서버 개발
 
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
Twitter의 대규모 시스템 운용 기술 어느 고래의 배속에서
 
20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈20170609 tech day_4th-nginx(lb)-이재훈
20170609 tech day_4th-nginx(lb)-이재훈
 
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
카프카(kafka) 성능 테스트 환경 구축 (JMeter, ELK)
 
테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기테드폴허브(올챙이) PostgreSQL 디비 확장하기
테드폴허브(올챙이) PostgreSQL 디비 확장하기
 
서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra서버인프라 구축 입문 basis of composing server and infra
서버인프라 구축 입문 basis of composing server and infra
 

Viewers also liked

Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1Sukjin Yun
 
Geb quick start
Geb quick startGeb quick start
Geb quick start
Sukjin Yun
 
Atom
AtomAtom
Express 프레임워크
Express 프레임워크Express 프레임워크
Express 프레임워크
Choonghyun Yang
 
자료구조 큐
자료구조 큐자료구조 큐
자료구조 큐
Choonghyun Yang
 
Hadoop io part2
Hadoop io part2Hadoop io part2
Hadoop io part2
Choonghyun Yang
 
자료구조 – 트리 (Tree)
자료구조 – 트리 (Tree)자료구조 – 트리 (Tree)
자료구조 – 트리 (Tree)
Choonghyun Yang
 
연결 자료구조
연결 자료구조연결 자료구조
연결 자료구조
Choonghyun Yang
 
Bootstrap
BootstrapBootstrap
Bootstrap
Choonghyun Yang
 
자바병렬프로그래밍 9.gui 애플리케이션
자바병렬프로그래밍 9.gui 애플리케이션자바병렬프로그래밍 9.gui 애플리케이션
자바병렬프로그래밍 9.gui 애플리케이션
Choonghyun Yang
 
하둡관리
하둡관리하둡관리
하둡관리
Choonghyun Yang
 
NSO Introduction
NSO IntroductionNSO Introduction
NSO Introduction
Junho Lee
 
Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)
Choonghyun Yang
 
Spring boot 5장 cli
Spring boot 5장 cliSpring boot 5장 cli
Spring boot 5장 cli
Choonghyun Yang
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
Choonghyun Yang
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
Choonghyun Yang
 
Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)
Choonghyun Yang
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
Choonghyun Yang
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
Amazon Web Services Korea
 
장애 관리 방안
장애 관리 방안장애 관리 방안
장애 관리 방안
Junho Lee
 

Viewers also liked (20)

Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1
 
Geb quick start
Geb quick startGeb quick start
Geb quick start
 
Atom
AtomAtom
Atom
 
Express 프레임워크
Express 프레임워크Express 프레임워크
Express 프레임워크
 
자료구조 큐
자료구조 큐자료구조 큐
자료구조 큐
 
Hadoop io part2
Hadoop io part2Hadoop io part2
Hadoop io part2
 
자료구조 – 트리 (Tree)
자료구조 – 트리 (Tree)자료구조 – 트리 (Tree)
자료구조 – 트리 (Tree)
 
연결 자료구조
연결 자료구조연결 자료구조
연결 자료구조
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
자바병렬프로그래밍 9.gui 애플리케이션
자바병렬프로그래밍 9.gui 애플리케이션자바병렬프로그래밍 9.gui 애플리케이션
자바병렬프로그래밍 9.gui 애플리케이션
 
하둡관리
하둡관리하둡관리
하둡관리
 
NSO Introduction
NSO IntroductionNSO Introduction
NSO Introduction
 
Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)Http 완벽 가이드(2장 url과 리소스)
Http 완벽 가이드(2장 url과 리소스)
 
Spring boot 5장 cli
Spring boot 5장 cliSpring boot 5장 cli
Spring boot 5장 cli
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
 
Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)Http 완벽가이드(3장 http 메시지)
Http 완벽가이드(3장 http 메시지)
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
 
장애 관리 방안
장애 관리 방안장애 관리 방안
장애 관리 방안
 

Similar to 다중성 확보, 시스템 안정화

600.Troubleshooting Patterns
600.Troubleshooting Patterns600.Troubleshooting Patterns
600.Troubleshooting Patterns
Opennaru, inc.
 
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XpressEngine
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
Mungyu Choi
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster
NAVER D2
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약kidoki
 
LTM
LTMLTM
[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To
Ji-Woong Choi
 
Lena Application Server
Lena  Application ServerLena  Application Server
Lena Application Server
시온시큐리티
 
113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013NAVER D2
 
Oracle Application Performance Monitoring Cloud Service 소개
Oracle Application Performance Monitoring Cloud Service 소개Oracle Application Performance Monitoring Cloud Service 소개
Oracle Application Performance Monitoring Cloud Service 소개
Mee Nam Lee
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 
Restful web service
Restful web serviceRestful web service
Restful web service
sunguen lee
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
I Goo Lee
 
REST with Spring
REST with SpringREST with Spring
REST with Spring
강우 김
 
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
IMQA
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How ToJi-Woong Choi
 
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Kyunghun Jeon
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
NAVER D2
 
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
SANG WON PARK
 

Similar to 다중성 확보, 시스템 안정화 (20)

600.Troubleshooting Patterns
600.Troubleshooting Patterns600.Troubleshooting Patterns
600.Troubleshooting Patterns
 
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
XE 오픈 세미나(2014-02-22) - XE 서버 성능 개선
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약
 
LTM
LTMLTM
LTM
 
[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To[오픈소스컨설팅]Performance Tuning How To
[오픈소스컨설팅]Performance Tuning How To
 
Lena Application Server
Lena  Application ServerLena  Application Server
Lena Application Server
 
113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013113 deview2013 varnish-day1_track1_session3_1013
113 deview2013 varnish-day1_track1_session3_1013
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
Oracle Application Performance Monitoring Cloud Service 소개
Oracle Application Performance Monitoring Cloud Service 소개Oracle Application Performance Monitoring Cloud Service 소개
Oracle Application Performance Monitoring Cloud Service 소개
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
Restful web service
Restful web serviceRestful web service
Restful web service
 
MySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software TestMySQL/MariaDB Proxy Software Test
MySQL/MariaDB Proxy Software Test
 
REST with Spring
REST with SpringREST with Spring
REST with Spring
 
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To
 
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
Backend Master | 1.1 Enhancing performance - Scalability (Scale UP & OUT)
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
 
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...Apache kafka performance(throughput) - without data loss and guaranteeing dat...
Apache kafka performance(throughput) - without data loss and guaranteeing dat...
 

More from Choonghyun Yang

Git
GitGit
Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins
Choonghyun Yang
 
데이터 모델링
데이터 모델링데이터 모델링
데이터 모델링
Choonghyun Yang
 
아꿈사.C++ api 디자인.20140315 a
아꿈사.C++ api 디자인.20140315 a아꿈사.C++ api 디자인.20140315 a
아꿈사.C++ api 디자인.20140315 a
Choonghyun Yang
 
Http method
Http methodHttp method
Http method
Choonghyun Yang
 
대규모 데이터 처리 입문
대규모 데이터 처리 입문대규모 데이터 처리 입문
대규모 데이터 처리 입문
Choonghyun Yang
 
네트워크 부트의 활용, 원격관리
네트워크 부트의 활용, 원격관리네트워크 부트의 활용, 원격관리
네트워크 부트의 활용, 원격관리
Choonghyun Yang
 
NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스
Choonghyun Yang
 
서버 인프라를지탱하는기술(1.3,1.4)
서버 인프라를지탱하는기술(1.3,1.4)서버 인프라를지탱하는기술(1.3,1.4)
서버 인프라를지탱하는기술(1.3,1.4)
Choonghyun Yang
 
NoSQL distilled 왜 NoSQL인가
NoSQL distilled 왜 NoSQL인가NoSQL distilled 왜 NoSQL인가
NoSQL distilled 왜 NoSQL인가
Choonghyun Yang
 
No sql 분산모델
No sql 분산모델No sql 분산모델
No sql 분산모델
Choonghyun Yang
 
CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지
Choonghyun Yang
 
십진수 이외의 것
십진수 이외의 것십진수 이외의 것
십진수 이외의 것
Choonghyun Yang
 
프로그래머로 사는 법 Chapter.19 지금 알고 있는걸 그때도 알았더라면
프로그래머로 사는 법   Chapter.19  지금 알고 있는걸 그때도 알았더라면프로그래머로 사는 법   Chapter.19  지금 알고 있는걸 그때도 알았더라면
프로그래머로 사는 법 Chapter.19 지금 알고 있는걸 그때도 알았더라면
Choonghyun Yang
 

More from Choonghyun Yang (14)

Git
GitGit
Git
 
Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins
 
데이터 모델링
데이터 모델링데이터 모델링
데이터 모델링
 
아꿈사.C++ api 디자인.20140315 a
아꿈사.C++ api 디자인.20140315 a아꿈사.C++ api 디자인.20140315 a
아꿈사.C++ api 디자인.20140315 a
 
Http method
Http methodHttp method
Http method
 
대규모 데이터 처리 입문
대규모 데이터 처리 입문대규모 데이터 처리 입문
대규모 데이터 처리 입문
 
네트워크 부트의 활용, 원격관리
네트워크 부트의 활용, 원격관리네트워크 부트의 활용, 원격관리
네트워크 부트의 활용, 원격관리
 
NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스
 
서버 인프라를지탱하는기술(1.3,1.4)
서버 인프라를지탱하는기술(1.3,1.4)서버 인프라를지탱하는기술(1.3,1.4)
서버 인프라를지탱하는기술(1.3,1.4)
 
NoSQL distilled 왜 NoSQL인가
NoSQL distilled 왜 NoSQL인가NoSQL distilled 왜 NoSQL인가
NoSQL distilled 왜 NoSQL인가
 
No sql 분산모델
No sql 분산모델No sql 분산모델
No sql 분산모델
 
CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지CODE - 주판에서 반도체까지
CODE - 주판에서 반도체까지
 
십진수 이외의 것
십진수 이외의 것십진수 이외의 것
십진수 이외의 것
 
프로그래머로 사는 법 Chapter.19 지금 알고 있는걸 그때도 알았더라면
프로그래머로 사는 법   Chapter.19  지금 알고 있는걸 그때도 알았더라면프로그래머로 사는 법   Chapter.19  지금 알고 있는걸 그때도 알았더라면
프로그래머로 사는 법 Chapter.19 지금 알고 있는걸 그때도 알았더라면
 

다중성 확보, 시스템 안정화

  • 1. 다중성 확보, 시스템 안정화 choong
  • 2. AP 서버 • 서버가 멈추는 요인 • 사람의 실수. • 물리적인 고장. • 메모리 장애. • 장애 발생 시 자동으로 failover, 복구 시 failback • failover : 고장난 서버를 자동적으로 분리. • failback : 서버가 복구 되면 원상태로 복귀.
  • 3. 다중성 확보 – AP 서버 로드 밸런서 로드 밸런서 AP 서버 1 AP 서버 2 AP 서버 1 AP 서버 2 X failover failback
  • 4. DB 서버 • 마스터의 다중화는 어려움. • 멀티 마스터 구성 • 마스터간의 레플리케이션. (서로간의 슬레이브구성) • 데이터 간 일치하지 않는 부분 발생. • 동기화 처리 ( slave에서 쓰여진것을 확인 하고 client 에게 응답). • 성능면에서 리스크.
  • 5. 멀티 마스터 • 기본적으로 Active/Standby 2대로 구성 • failover 발생 시 (standby 서버 기준) • VRRP(Virtual Router Redundancy Protocol)라는 프 로토콜을 이용하여 Active 마스터 감시. • 장애 발생을 발견하면 자신이 Active 마스터로 승격.
  • 6. 멀티 마스터 구성 LVS 마스터 DB (Active) 마스터 DB (Standby) 10.0.0.1(real ip) 10.0.0.3(VIP) 10.0.0.2(real ip) 상호간 레플리케이션 감시(VRRP) LVS 마스터 DB (Standby) 마스터 DB (Active) 10.0.0.1(real ip) 10.0.0.2(real ip) 10.0.0.3(VIP) 상호간 레플리케이션 감시(VRRP) 장애 발생
  • 7. 스토리지 • 애플리케이션 데이터를 영속적, 일시적 저장하는 기능. • 스토리지 선택 고려사항 (액세스 패턴) • 평균크기, 최대크기, 신규추가빈도, 갱신빈도, 삭제빈 도, 참조빈도. • 용량이 큰 HDD 사용 시, 저장된 파일 수가 많아 져서 I/O 병목 현상에 원인.
  • 8. 스토리지 종류 • RDBMS • MySQL, PostgreSQL • 분산 key-value 스토어 • memcached, TokyoTyrant • 분산 파일 시스템 • MogileFS, GlusterFS, Lustre • 기타 • NFS 계 분산 파일 시스템, DRBD, HDFS
  • 9. MogileFS • 작은 대량의 파일을 다룰 목적으로 Perl로 구현 된 분산 파일 시스템. • KB~MB 크기의 파일 • 파일 추가에 적합 • 추가 후 갱신 되지 않고 참조용. • 하나의 파일은 3중으로 다중화. • 일부 스토리지 서버가 고장 나도 서비스는 정상적으로 가능. • Client Server간 Http 통신 사용 • PUT, GET
  • 10. MogileFS 구성 • 애플리케이션(클라이언트) • 파일을 저장하고 로드하는 주체. • 구현 필요. • Tracker • 클라이언트 요청에 대한 처리를 관리. • DB • 메타데이터 정보를 관리. • 스토리지 • 파일을 저장하는 장소.
  • 12. 자원 효율 상반관계 • 한계에 이를 때까지 메모리 튜닝 • 안정성 <-> 자원 효율 • 메모리 소비 올라가면 ->성능 저하(스왑) -> 장애 • 메모리는 7할 정도 까지만 사용 • 한계에 이를 때까지 CPU 사용 • 안정성 <-> 속도 • 서버 1대 다운 -> 처리 능력 초과 -> 장애 • CPU를 7할 정도까지만 사용.
  • 13. 시스템 불안정 요인 • 애플리케이션/서비스 레벨 -> 부하증가 • 기능 추가 • 메모리 누수 • 지뢰 • 사용자의 액세스 패턴 • 데이터량 증가 • 위부연계 추가 • 하드웨어 -> 처리능력 저하 • 메모리, HDD 장애 • NIC 장애
  • 14. 애플리케이션/서비스 레벨 • 기능 추가 / 메모리 누수 • 새로운 기능으로 인한 부하증가. • Perl 은 메모리 누수를 완전 배제 하기 어려움(스왑 발생). • 지뢰 • 특정 URL 호출 메모리 누수 및 무한 루프 발생. • 사용자의 액세스 패턴 • 특정 URL 에 트래픽이 몰려 서비스 다운. • 데이터량 증가 • 당초 예상했던 데이터량 보다 늘어나서 부하의 증가. • 데이터 설계 미흡으로 인한 테이블 레코드 증가. • 외부연계 추가 • 외부 시스템 장애로 서비스 장애
  • 15. 하드웨어 레벨 • 메모리, HDD, NIC 장애 • 일상적으로 발생하는 장애 • 로드밸런서 에서 적절한 항목에 대해 헬스체크.
  • 16. 시스템 안정화 대책 • 적절한 버퍼 유지 • 메모리량, CPU 사용 7할 유지 • 불안정 요인 제거 • 부하가 높아질 것 같은 SQL은 다른 DB 이용해서 처 리. • 이상 동작 시의 자율제어 • 자동 DoS 판정 • 자동 재 시작 • 자동 쿼리제거