mysql48 InnoDB Redo Log ▶Redo Log? 리두 로그는 crash recovery 중 불완전한 트랜잭션에 의해 변경된 데이터를 수정하기 위해 사용되는디스크 기반 데이터 구조입니다. default로 리두 로그는 ib_logfile0,ib_logfile1로 이름된 두개의 파일이 물리적으로 존재합니다. $ ls -alh ib_logfile* -rw-r-----. 1 mysql mysql 48M Jan 12 02:49 ib_logfile0 -rw-r-----. 1 mysql mysql 48M Dec 14 02:19 ib_logfile1 MySQL은 순환방식으로 리두 로그 파일을 씁니다. 리두 로그는 계속 증가하는 LSN값으로 표시됩니다.(순환로그이기 때문에 다시 순환될때 데이터가 덮어쓰여져 기존에 데이터가 없어지게 됩니다.) - Re.. 2021. 1. 15. InnoDB Doublewrite Buffer ▶ doublewrite buffer란? InnoDB의 데이터 파일에 쓰기 전에 버퍼 풀로부터 flush된 페이지를 쓰는 저장영역입니다. 만약, 페이지 쓰기 도중 갑작스런 mysqld 프로세스의 정지나 OS 이슈 등일때 Crash Recovery 를 시도하고 InnoDB는 doublewrite buffer로부터 페이지의 복사본을 찾아 복구를 수행할 수 있습니다. 비록 데이터는 doublewrite buffer에 두번 쓰여지지만, I/O 오버헤드나 I/O작업이 두배나 필요하지는 않습니다. 데이터는 doublewrite buffer에 OS에서 단일 fsync()라고 불리는 기능으로 큰 덩어리(large chunk) 순서로 쓰여집니다. (innodb_flush_method가 O_DIRECT_NO_FSYNC로 .. 2021. 1. 14. InnoDB IN-MEMORY Structures Mysql의 InnoDB는 In-Memory 구조와 On-Disk 구조로 이루어져 있습니다. In-Memory 구조 ▶ Buffer Pool InnoDB가 액세스할 때 테이블 과 인덱스 데이터를 캐시하는 메인 메모리영역입니다. 해당 영역은 메모리로부터 데이터를 직접 처리할 수 있게하여 처리속도를 향상시킵니다. dedicated server의 경우, 물리 메모리의 최대 80%까지 버퍼풀이 할당됩니다. 효과적으로 읽기 작업을 하기 위해서 버퍼 풀은 여러 행을 보유할 수 있는 페이지들로 나눠집니다. 효과적으로 캐시 관리를 하기위해 버퍼 풀은 링크된 페이지들의 목록으로 구현됩니다. LRU알고리즘으로 관리되어 자주 사용하지 않는 데이터는 age out(삭제) 됩니다. - LRU 알고리즘 버퍼 풀은 LRU(leat.. 2021. 1. 12. mysqlslap mysqlslap는 Mysql 서버에 간단히 부하를 줄 수 있는 유틸리티입니다. 아래와 같은 명령어로 사용가능합니다. mysqlslap [option] 옵션 중 --create or --query는 SQL문법을 포함한 스트링 문자열이거나 파일입니다. 만약 특정 파일일경우 그 안에는 sql문법이 라인으로 되어 있어야합니다. --delimeter 옵션을 사용하려면 특정 문자를 지정해서 구분자를 사용해줘야 합니다. 파일안에는 주석없이 순수 내용만 있어야 합니다. 3가지 스텝으로 진행됩니다. 1.스키마,테이블 그리고 선택사항으로 프로시저나 테스트에 필요한 데이터를 만듭니다. 이때 하나의 클라이언트를 사용합니다. 2.부하테스트를 진행합니다. 이때 많은 클라이언트가 접속을 합니다. 3.정리단계에서 하나의 접속만 남.. 2021. 1. 6. 이전 1 ··· 6 7 8 9 10 11 12 다음