Top

[고성능 웹 애플리케이션 제작을 위한]
MariaDB 성능 분석과 최적화

  • 원서명MariaDB High Performance (ISBN 9781783981601)
  • 지은이피에르 마브로(Pierre MAVRO)
  • 옮긴이김성일
  • ISBN : 9788960777347
  • 30,000원
  • 2015년 07월 20일 펴냄
  • 페이퍼백 | 336쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 웹 프로페셔널

책 소개

요약

이 책에서는 MariaDB를 사용하기에 최적의 구성을 소개하고 성능 분석과 최적화에 관해 설명한다. 또한, 복제를 통해 실제상황에서 벌어질 수 있는 일에 잘 대처할 수 있게 한다. 마지막으로 모니터링과 백업의 다양한 방법을 소개하고 독자의 요구사항에 맞도록 최고의 방법을 선택할 수 있게 도와준다.

이 책에서 다루는 내용

전통적인 마스터/슬레이브 복제 구축 방법과 WAN에서도 쉽게 확장하는 방법

로드 밸런서와 클러스터 소프트웨어로 이중 마스터 복제를 만드는 방법

스파이더 엔진을 이용한 데이터 샤딩

갈레라 클러스터(Galera Cluster)를 이용한 쓰기 인프라스트럭처 향상

복잡한 구성을 만들기 위한 갈레라 클러스터 생성과 동시 복제

엔진 최적화와 병목현상 찾기

갈레라와 MySQL 클러스터 비교

툴을 이용한 데이터 그래프화

갈레라 재난 복구 솔루션 구성

이 책의 대상 독자

이 책은 대규모 트래픽을 지원하기 위해 현재 인프라스트럭처를 개선하는 방법을 배우려는 시스템 관리자/설계자나 DBA를 위한 책이다. 이 책을 학습하기 전에 MySQL/MariaDB의 일반적인 사용법에 익숙한 독자이기를 바란다. 만약 리눅스를 사용해 MariaDB를 위한 대형 인프라스트럭처를 배우고 만드는 데 문제가 없다면 아주 빠르게 학습할 수 있을 것이다.

이 책의 구성

1장, '성능 소개'에서는 여러분의 니즈에 해당하는 최적의 솔루션을 선택할 수 있도록 일반적인 하드웨어를 설명한다. 추가로 시스템 최적화를 소개하고 MySQL에서 MariaDB로 이전하는 방법을 설명한다.
2장, '성능 분석'에서는 성능 문제를 찾기 위한 툴을 소개하고 기본적인 모범 실무를 보여준다.
3장, '성능 최적화'에서는 병목현상을 찾는 법과 캐시 튜닝에 대해서 얘기하고 추가로 일부 엔진에 관해 설명한다.
4장, 'MariaDB 복제'에서는 MariaDB 복제를 구성하는 방법, HAProxy로 확장하는 법, 복제의 이점을 설명한다.
5장, 'WAN 슬레이브 구조'에서는 WAN 복제에서 일어날 수 있는 문제를 이해하고 해결할 수 있도록 도와준다.
6장, '이중 마스터 복제 생성'에서는 이중 마스터 복제 구조의 이점과 DRBD, 페이스메이커, PRM 등을 사용해 구성하는 방법을 설명한다.
7장, 'MariaDB 다중 마스터 슬레이브'에서는 MariaDB 10의 복제 기능을 사용하는 이점을 설명한다.
8장, '갈레라 클러스터: 다중 마스터 복제'에서는 갈레라 클러스터의 이점과 구성 방법을 설명한다.
9장, '스파이더: 데이터 샤딩'에서는 데이터를 샤딩하면서 더 나은 성능을 얻는 방법을 설명한다.
10장, '모니터링'에서는 싱글 인스턴스, 복제, 갈레라 클러스터에서 어떤 요소가 모니터링 하기에 중요한지를 설명한다.
11장, '백업'에서는 백업하는 여러 방법을 소개하고 여러분의 니즈에 맞도록 최고의 방법을 선택할 수 있게 도와준다.

저자/역자 소개

지은이의 말

MariaDB는 MySQL의 한 갈래다(이제는 대체품이 되었다). MySQL은 썬마이크로시스템즈(Sun Microsystems)에 2008년 인수됐으며, 그 후 2010년 오라클(Oracle)이 썬마이크로시스템즈를 인수했다. 몇 가지 이유로 미카엘 몬티 위디니어스(Michael Monty Widenius, MySQL의 창시자)는 MySQL을 분기(fork)하기로 하고 몬티 프로그램 AB(Monty Program AB)라는 이름의 회사를 설립했다. 그래서 MariaDB(마리아는 미카엘 몬티 위디니어스의 둘째 딸 이름)가 탄생했다.
과거에 MySQL가 겪은 것처럼 다른 회사가 인수할 수 없도록 2012년 12월 MariaDB 재단이 설립됐다.
SkySQL는 과거 MySQL 경영진과 투자자로 구성된 회사로 MariaDB에 관련된 서비스를 제공한다. 2013년 4월 SkySQL과 몬티 프로그램 AB는 합병했다. MariaDB로 이관하고자 했던 회사들은 외부의 기술지원 없이는 거의 불가능했지만, 이 합병을 통해 가능해졌다.
MariaDB는 새롭고 흥미로운 특징을 가지고 있다. MySQL에서는 불가능했던 더 나은 테스팅, 향상된 성능, 버그 수정이 바로 그것이다. 예를 들면 일부 옵티마이저들은 구글, 페이스북, 트위터 등으로부터 비롯됐다.
MariaDB는 완전한 오픈 소스 프로젝트임을 기억해달라. 그리고 여러분의 참여도 환영한다.

지은이 소개

피에르 마브로(Pierre MAVRO)

조인빌 르 퐁(Joinville-le-Pont, 파리의 교외지역)에 산다. 오픈 소스를 사랑하며 10년 이상 리눅스에 관련된 일을 하고 있다. 요즘은 레드햇(Red Hat)과 이노밴스(eNovance)에서 시니어 디브옵스 엔지니어(Senior DevOps Engineer)로 일하고 있다. 여기서 웹과 개인화 클라우드(오픈스택)에 관한 솔루션을 설계, 제작하고 있다. 최근 몇 년간은 많은 양의 거래가 있는 회사를 위해 성능 튜닝으로 고가용성 인프라스트럭처를 설계하고 있다. 또한 지오클러스터(geocluster)를 만들었고 금융회사에 고가용성 요구를 만족하게 할 툴을 개발했다. 과거에는 프랑스 정부를 위해 오픈 소스 소프트웨어의 문제를 해결하는 일을 했다. 또한 리눅스와 MySQL/MariaDB와 같은 주제로 여러 IT 전문가를 교육했다.

옮긴이의 말

실무에 오래 근무하신 분들이라도 MariaDB에 관해서 물어본다면 잘 알지 못하거나 시원하게 대답을 못 하는 경우가 많다. 하지만 MariaDB라는 이름 때문에 너무 겁먹을 필요는 없다. 기존에 사용하던 MySQL과 사용법이 매우 유사하기 때문이다. 그뿐만 아니라 오라클에서 인수한 뒤 상용버전인 MySQL Enterprise 버전에서 지원하던 기능을 무료로 사용할 수 있고 MySQL보다 더 도전적인 기능이 여럿 포함되어 있다. 원하든 원치 않든 최근 오픈 소스 패키지들이 DBMS를 MariaDB로 사용하면서 앞으로 마주하게 될 일이 많을 것이다. 이 책은 기본적인 MariaDB 사용법이라기보다 성능 최적화를 위한 하드웨어와 기능 사용에 집중하고 있다. 따라서 MySQL 또는 MariaDB의 사용에 어느 정도 익숙한 분들에게 추천한다.

옮긴이 소개

김성일

전자공학을 전공했지만, 소프트웨어에 대한 호기심이 많다. 대학시절 프리랜서로 공공기관 및 기업 SI 프리랜서를 하며 실무형으로 경험을 쌓았다. 디자인에도 관심이 많아 웹디자이너 생활도 했으며 중소기업청 예비기술 창업 중점과제에 선정되어 ‘모바일 광고 플랫폼’ 스타트업 대표로서 활동했다. 현재는 삼성SDS 연구소에서 신사업 솔루션 개발에 박차를 가하고 있다. 모든 것은 하나로 통한다는 신념으로 다양한 경험하기를 좋아하며, 언젠가 올 그 날을 위해 항상 준비하고 공부하는 중이다. 에이콘출판사에서 출간한 『반응형 안드로이드 앱 UI 개발』(2014)을 번역했다.

목차

목차
  • 1장. 퍼포먼스 소개
  • MariaDB 역사
  • 적당한 하드웨어 선택
    • 디스크
      • SATA 자기 드라이브
      • SAS 자기 드라이브
      • 하이브리드 드라이브
      • SSD
    • 레이드와 가속 카드
    • 레이드 카드와 레벨
    • 퓨전아이오 다이렉트 가속 카드
    • 디스크 배열
    • CPU
  • 설계 종류와 성능
  • 바이오스 전력 관리 최적화
    • C-State
    • P-State
    • 제조사에 따른 옵션 이름
    • 전력 관리 최적화
      • cpufreq
      • cpuidle
    • 디스크와 파일시스템 최적화
      • 커널 디스크의 I/O 스케줄러
      • 파티션 정렬
      • SSD 최적화
      • 파일시스템 옵션
      • 스왑
    • cgroups으로 장치 지정하기
      • 직접 적용
      • cgconfig 데몬을 이용한 자동설정 방법
    • NUMA를 이용한 하드웨어 최적화
  • MySQL에서 MariaDB로 이전
  • MariaDB 엔진 소개
  • 요약

  • 2장. 성능 분석
  • 슬로우 쿼리
  • 익스플레인 명령
  • 슬로우 쿼리 로그
  • 쇼 익스플레인 명령
  • 프로파일링
  • 퍼포먼스 스키마
  • 사용자 상태정보
  • 시스벤치
  • 페르코나 툴킷
    • pt-query-digest
    • pt-stalk
    • pt-summary
    • pt-mysql-summary
    • pt-duplicate-key-checker
    • pt-index-usage
  • Process list의 진화
  • mytop
  • innotop
  • mysqlsla
  • 요약

  • 3장. 성능 최적화
  • 상태정보 재설정
  • 글로벌 상태정보
  • DNS 연결
    • DNS 캐시 서버
  • 최대 연결
  • 빈로그 캐시
    • 트랜잭션 캐시를 위한 빈로그
    • 비트랜잭션을 위한 빈로그
  • 임시 테이블
  • 오픈 테이블
  • 쿼리 캐시
    • 쿼리 캐시의 이해
    • 쿼리 캐시 수정
  • 저장 엔진 최적화
    • 데이터베이스 요약
    • InnoDB/XtraDB
      • 풀 크기와 상태정보
      • 리두 로그
      • 트랜잭션 커밋과 로그
      • 버퍼 풀 인스턴스
      • 플러시 메소드
    • TokuDB
      • 설치
      • 플러시 메소드
      • 캐시 크기
      • 트랜잭션 커밋과 로그
      • 임시 디렉터리
      • 압축
    • MyISAM
      • 키 버퍼
  • 인덱스
    • 엔진
    • 종류
  • mysqltuner
  • 요약

  • 4장. MariaDB 복제
  • 복제의 동작 방식
    • 마스터 노드 설정
    • 마스터 노드 준비
    • 슬레이브 노드 설정
    • 슬레이브 생성
      • mysqldump
      • Xtrabackup
    • 슬레이브 상태 확인
  • GTID 복제
    • GTID란 무엇인가
    • 마스터 노드 설정
    • 마스터 노드 준비
    • GTID 슬레이브 노드 설정
    • 슬레이브 생성
    • 슬레이브 시작
    • 슬레이브 상태 확인
  • 전통적인 복제에서 GTID 복제로 이전
  • 병렬 복제
  • 읽기 트랜잭션의 로드 밸런싱
    • HAProxy 설치
    • HAProxy 설정
    • 상태 확인
    • 설정 테스트
  • 예제상황과 문제 해결
    • SQL 에러
    • 빈로그 분석
    • GTID: 슬레이브를 마스터로 교체하고 복구하기
  • 요약

  • 5장. WAN 슬레이브 구조
  • 캐스케이드 슬레이브
    • 중간 슬레이브를 위한 복제 성능 향상
  • 복제의 제한
  • 여러 대륙에 걸친 슬레이브 설계
  • SSL 복제
    • 인증서 생성
      • 자신만의 CA 만들기
      • 서버 증명서 생성
      • 클라이언트 증명서 생성
      • Checking your certificates
    • Configuring MariaDB for SSL
      • Master SSL
      • Client SSL
  • Compression options
  • 요약

  • 6장. 이중 마스터 복제 생성
  • 이중 마스터 복제와 위험요소
  • 이중 마스터 설치와 설정
  • 자동 관리
    • 하프록시
      • 유지보수 모드에 관한 학습
      • Keepalived
    • 페이스메이커 또는 페르코나 복제 매니저
    • DRBD
  • 이중 마스터 복제를 수리하는 방법
  • 요약

  • 7장. MariaDB 다중 마스터 슬레이브
  • 다중 마스터 슬레이브 복제
    • 다중 소스 복제 설치
    • 그밖의 옵션
  • 요약

  • 8장. 갈레라 클러스터: 다중 마스터 복제
  • 갈레라 클러스터 동작 원리
  • 갈레라 클러스터의 제한사항
  • 설치와 설정의 기본사항
    • 설치
    • 설정 파일
      • MariaDB 설정
      • 갈레라 설정
    • 첫 번째 부팅
  • 사용 방법과 그 이해
    • 전송 방법
      • mysqldump 사용
      • Xtrabackup 사용
      • rsync 사용
    • 도너 노드로 만들기
    • 완전한 정전 후 시작하기
    • 컨센서스 클러스터링과 유지보수
    • Garb: 쿼럼 방식
    • 성능 튜닝
      • 병렬 슬레이브 스레드
      • Gcache 크기
  • 이중 설계 만들기
    • 읽기와 쓰기 노드
    • 로드 밸런스된 설계
    • WAN 복제
    • 재난복구
  • 테스트 및 이슈
    • 복제의 일시 정지
    • 갈레라 고장 내기
    • 스플릿 브레인
  • 요약

  • 9장. 스파이더: 데이터 샤딩
  • 스파이더 설정
  • 첫 번째 샤드 생성
  • 샤딩 복제
    • 복제된 샤드 생성
    • 스파이더 HA 모니터링
    • 서버 오류 후 데이터 복구
  • 성능 튜닝
    • 스파이더 파라미터
      • bgs 모드
      • 연결 재활용 모드
      • 상태정보 테이블
      • 원격 SQL 로그
    • 샤드의 개수
  • 요약

  • 10장. 모니터링
  • 싱글 인스턴스
  • 복제
  • 갈레라 클러스터
  • 그밖의 모니터링 솔루션
    • 그래프
    • 로그
  • 요약

  • 11장. 백업
  • mysqldump
    • 압축
  • mysqlhotcopy
  • LVM
    • 스냅샷
      • 스냅샷 삭제
      • 롤백
    • 백업
  • Xtrabackup
    • 풀 백업
    • 증분 백업
    • 풀 백업으로부터의 복구
    • 증분 백업으로부터의 복구
  • 갈레라 백업
  • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안