Loading...
MySQL 9.5 Reference Manual 9.5의 17.17.3 InnoDB Standard Monitor and Lock Monitor Output의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Lock Monitor는 추가적인 잠금 정보를 포함한다는 점을 제외하면 Standard Monitor와 동일합니다. 어느 한 monitor든 주기적인 output을 활성화하면 동일한 출력 스트림이 켜지지만, Lock Monitor가 활성화된 경우 스트림에는 추가 정보가 포함됩니다. 예를 들어, Standard Monitor와 Lock Monitor를 모두 활성화하면 하나의 출력 스트림이 켜집니다. Lock Monitor를 비활성화할 때까지 그 스트림에는 추가 잠금 정보가 포함됩니다.
Standard Monitor output은 SHOW ENGINE INNODB STATUS 문을 사용하여 생성될 때 1MB로 제한됩니다. 이 제한은 서버 표준 오류 출력(stderr)으로 기록되는 output에는 적용되지 않습니다.
Standard Monitor output 예시는 다음과 같습니다:
1mysql> SHOW ENGINE INNODB STATUS\G 2*************************** 1. row *************************** 3 Type: InnoDB 4 Name: 5Status: 6===================================== 72018-04-12 15:14:08 0x7f971c063700 INNODB MONITOR OUTPUT 8===================================== 9Per second averages calculated from the last 4 seconds 10----------------- 11BACKGROUND THREAD 12----------------- 13srv_master_thread loops: 15 srv_active, 0 srv_shutdown, 1122 srv_idle 14srv_master_thread log flush and writes: 0 15---------- 16SEMAPHORES 17---------- 18OS WAIT ARRAY INFO: reservation count 24 19OS WAIT ARRAY INFO: signal count 24 20RW-shared spins 4, rounds 8, OS waits 4 21RW-excl spins 2, rounds 60, OS waits 2 22RW-sx spins 0, rounds 0, OS waits 0 23Spin rounds per wait: 2.00 RW-shared, 30.00 RW-excl, 0.00 RW-sx 24------------------------ 25LATEST FOREIGN KEY ERROR 26------------------------ 272018-04-12 14:57:24 0x7f97a9c91700 Transaction: 28TRANSACTION 7717, ACTIVE 0 sec inserting 29mysql tables in use 1, locked 1 304 lock struct(s), heap size 1136, 3 row lock(s), undo log entries 3 31MySQL thread id 8, OS thread handle 140289365317376, query id 14 localhost root update 32INSERT INTO child VALUES (NULL, 1), (NULL, 2), (NULL, 3), (NULL, 4), (NULL, 5), (NULL, 6) 33Foreign key constraint fails for table `test`.`child`: 34, 35 CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`) ON DELETE 36 CASCADE ON UPDATE CASCADE 37Trying to add in child table, in index par_ind tuple: 38DATA TUPLE: 2 fields; 39 0: len 4; hex 80000003; asc ;; 40 1: len 4; hex 80000003; asc ;; 41 42But in parent table `test`.`parent`, in index PRIMARY, 43the closest match we can find is record: 44PHYSICAL RECORD: n_fields 3; compact format; info bits 0 45 0: len 4; hex 80000004; asc ;; 46 1: len 6; hex 000000001e19; asc ;; 47 2: len 7; hex 81000001110137; asc 7;; 48 49------------ 50TRANSACTIONS 51------------ 52Trx id counter 7748 53Purge done for trx's n:o < 7747 undo n:o < 0 state: running but idle 54History list length 19 55LIST OF TRANSACTIONS FOR EACH SESSION: 56---TRANSACTION 421764459790000, not started 570 lock struct(s), heap size 1136, 0 row lock(s) 58---TRANSACTION 7747, ACTIVE 23 sec starting index read 59mysql tables in use 1, locked 1 60LOCK WAIT 2 lock struct(s), heap size 1136, 1 row lock(s) 61MySQL thread id 9, OS thread handle 140286987249408, query id 51 localhost root updating 62DELETE FROM t WHERE i = 1 63------- TRX HAS BEEN WAITING 23 SEC FOR THIS LOCK TO BE GRANTED: 64RECORD LOCKS space id 4 page no 4 n bits 72 index GEN_CLUST_INDEX of table `test`.`t` 65trx id 7747 lock_mode X waiting 66Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0 67 0: len 6; hex 000000000202; asc ;; 68 1: len 6; hex 000000001e41; asc A;; 69 2: len 7; hex 820000008b0110; asc ;; 70 3: len 4; hex 80000001; asc ;; 71 72------------------ 73TABLE LOCK table `test`.`t` trx id 7747 lock mode IX 74RECORD LOCKS space id 4 page no 4 n bits 72 index GEN_CLUST_INDEX of table `test`.`t` 75trx id 7747 lock_mode X waiting 76Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0 77 0: len 6; hex 000000000202; asc ;; 78 1: len 6; hex 000000001e41; asc A;; 79 2: len 7; hex 820000008b0110; asc ;; 80 3: len 4; hex 80000001; asc ;; 81 82-------- 83FILE I/O 84-------- 85I/O thread 0 state: waiting for i/o request (insert buffer thread) 86I/O thread 1 state: waiting for i/o request (log thread) 87I/O thread 2 state: waiting for i/o request (read thread) 88I/O thread 3 state: waiting for i/o request (read thread) 89I/O thread 4 state: waiting for i/o request (read thread) 90I/O thread 5 state: waiting for i/o request (read thread) 91I/O thread 6 state: waiting for i/o request (write thread) 92I/O thread 7 state: waiting for i/o request (write thread) 93I/O thread 8 state: waiting for i/o request (write thread) 94I/O thread 9 state: waiting for i/o request (write thread) 95Pending normal aio reads: [0, 0, 0, 0] , aio writes: [0, 0, 0, 0] , 96 ibuf aio reads:, log i/o's:, sync i/o's: 97Pending flushes (fsync) log: 0; buffer pool: 0 98833 OS file reads, 605 OS file writes, 208 OS fsyncs 990.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s 100------------------------------------- 101INSERT BUFFER AND ADAPTIVE HASH INDEX 102------------------------------------- 103Ibuf: size 1, free list len 0, seg size 2, 0 merges 104merged operations: 105 insert 0, delete mark 0, delete 0 106discarded operations: 107 insert 0, delete mark 0, delete 0 108Hash table size 553253, node heap has 0 buffer(s) 109Hash table size 553253, node heap has 1 buffer(s) 110Hash table size 553253, node heap has 3 buffer(s) 111Hash table size 553253, node heap has 0 buffer(s) 112Hash table size 553253, node heap has 0 buffer(s) 113Hash table size 553253, node heap has 0 buffer(s) 114Hash table size 553253, node heap has 0 buffer(s) 115Hash table size 553253, node heap has 0 buffer(s) 1160.00 hash searches/s, 0.00 non-hash searches/s 117--- 118LOG 119--- 120Log sequence number 19643450 121Log buffer assigned up to 19643450 122Log buffer completed up to 19643450 123Log written up to 19643450 124Log flushed up to 19643450 125Added dirty pages up to 19643450 126Pages flushed up to 19643450 127Last checkpoint at 19643450 128129 log i/o's done, 0.00 log i/o's/second 129---------------------- 130BUFFER POOL AND MEMORY 131---------------------- 132Total large memory allocated 2198863872 133Dictionary memory allocated 409606 134Buffer pool size 131072 135Free buffers 130095 136Database pages 973 137Old database pages 0 138Modified db pages 0 139Pending reads 0 140Pending writes: LRU 0, flush list 0, single page 0 141Pages made young 0, not young 0 1420.00 youngs/s, 0.00 non-youngs/s 143Pages read 810, created 163, written 404 1440.00 reads/s, 0.00 creates/s, 0.00 writes/s 145Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 146Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s 147LRU len: 973, unzip_LRU len: 0 148I/O sum[0]:cur[0], unzip sum[0]:cur[0] 149---------------------- 150INDIVIDUAL BUFFER POOL INFO 151---------------------- 152---BUFFER POOL 0 153Buffer pool size 65536 154Free buffers 65043 155Database pages 491 156Old database pages 0 157Modified db pages 0 158Pending reads 0 159Pending writes: LRU 0, flush list 0, single page 0 160Pages made young 0, not young 0 1610.00 youngs/s, 0.00 non-youngs/s 162Pages read 411, created 80, written 210 1630.00 reads/s, 0.00 creates/s, 0.00 writes/s 164Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000 165Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s 166LRU len: 491, unzip_LRU len: 0 167I/O sum[0]:cur[0], unzip sum[0]:cur[0] 168---BUFFER POOL 1 169Buffer pool size 65536 170Free buffers 65052 171Database pages 482 172Old database pages 0 173Modified db pages 0 174Pending reads 0 175Pending writes: LRU 0, flush list 0, single page 0 176Pages made young 0, not young 0 1770.00 youngs/s, 0.00 non-youngs/s 178Pages read 399, created 83, written 194 1790.00 reads/s, 0.00 creates/s, 0.00 writes/s 180No buffer pool page gets since the last printout 181Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s 182LRU len: 482, unzip_LRU len: 0 183I/O sum[0]:cur[0], unzip sum[0]:cur[0] 184-------------- 185ROW OPERATIONS 186-------------- 1870 queries inside InnoDB, 0 queries in queue 1880 read views open inside InnoDB 189Process ID=5772, Main thread ID=140286437054208 , state=sleeping 190Number of rows inserted 57, updated 354, deleted 4, read 4421 1910.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s 192---------------------------- 193END OF INNODB MONITOR OUTPUT 194============================
Standard Monitor에서 보고되는 각 metric에 대한 설명은 Metrics chapter와 Oracle Enterprise Manager for MySQL Database User's Guide를 참고하십시오.
Status이 section은 타임스탬프, monitor 이름, 그리고 초당 평균값이 기반하는 초(second) 수를 보여줍니다. 초 수는 현재 시각과 마지막으로 InnoDB Monitor output이 출력된 시각 사이의 경과 시간을 의미합니다.
BACKGROUND THREADsrv_master_thread line은 메인 백그라운드 스레드가 수행한 작업을 보여줍니다.
SEMAPHORES이 section은 세마포어를 기다리는 스레드와, 스레드가 뮤텍스나 rw-잠금 세마포어에서 스핀 또는 대기가 필요했던 횟수에 대한 통계를 보고합니다. 세마포어를 기다리는 스레드 수가 많은 것은 디스크 I/O 또는 InnoDB 내부의 경합 문제로 인한 것일 수 있습니다. 경합은 쿼리의 높은 병렬성이나 운영 체제 스레드 스케줄링 문제로 인해 발생할 수 있습니다. 이러한 상황에서는 innodb_thread_concurrency 시스템 변수를 기본값보다 작게 설정하는 것이 도움이 될 수 있습니다. Spin rounds per wait line은 뮤텍스에 대한 OS 대기당 스핀락 라운드 수를 보여줍니다.
뮤텍스 metric은 SHOW ENGINE INNODB MUTEX에 의해 보고됩니다.
LATEST FOREIGN KEY ERROR이 section은 가장 최근의 외래 키 제약 조건 오류에 대한 정보를 제공합니다. 그러한 오류가 발생하지 않은 경우에는 이 section이 존재하지 않습니다. 내용에는 실패한 문뿐 아니라 실패한 제약 조건에 대한 정보와, 참조하는 테이블과 참조되는 테이블에 대한 정보가 포함됩니다.
LATEST DETECTED DEADLOCK이 section은 가장 최근에 감지된 교착 상태에 대한 정보를 제공합니다. 교착 상태가 발생하지 않은 경우에는 이 section이 존재하지 않습니다. 내용에는 어떤 트랜잭션들이 관련되었는지, 각 트랜잭션이 실행하려 했던 문, 각 트랜잭션이 보유하고 있고 필요로 하는 잠금, 그리고 교착 상태를 해소하기 위해 InnoDB가 롤백하기로 결정한 트랜잭션이 무엇인지가 포함됩니다. 이 section에서 보고되는 잠금 모드에 대해서는 Section 17.7.1, “InnoDB Locking”을 참고하십시오.
TRANSACTIONS이 section이 잠금 대기를 보고한다면, 애플리케이션에 잠금 경합이 있을 수 있습니다. output은 또한 트랜잭션 교착 상태의 원인을 추적하는 데 도움이 될 수 있습니다.
FILE I/O이 section은 다양한 종류의 I/O를 수행하기 위해 InnoDB가 사용하는 스레드에 대한 정보를 제공합니다. 처음 몇 개의 스레드는 일반적인 InnoDB 처리에 전담되어 있습니다. 내용에는 대기 중인 I/O 작업에 대한 정보와 I/O 성능에 대한 통계도 표시됩니다.
이들 스레드의 수는 innodb_read_io_threads 및 innodb_write_io_threads 파라미터로 제어됩니다. Section 17.14, “InnoDB Startup Options and System Variables”를 참조하십시오.
INSERT BUFFER AND ADAPTIVE HASH INDEX이 section은 InnoDB insert buffer( change buffer라고도 함)와 adaptive hash index의 상태를 보여줍니다.
관련 정보는 Section 17.5.2, “Change Buffer” 및 Section 17.5.3, “Adaptive Hash Index”를 참조하십시오.
LOG이 section은 InnoDB 로그에 대한 정보를 표시합니다. 내용에는 현재 로그 시퀀스 번호, 로그가 디스크에 플러시된 정도, 그리고 InnoDB가 마지막으로 체크포인트를 수행한 위치가 포함됩니다. ( Section 17.11.3, “InnoDB Checkpoints”를 참조하십시오.) 이 section은 또한 대기 중인 쓰기와 쓰기 성능 통계에 대한 정보를 표시합니다.
BUFFER POOL AND MEMORY이 section은 읽고 쓰여진 페이지에 대한 통계를 제공합니다. 이러한 숫자로부터, 쿼리가 현재 수행하고 있는 데이터 파일 I/O 작업의 수를 계산할 수 있습니다.
버퍼 풀 통계에 대한 설명은 Monitoring the Buffer Pool Using the InnoDB Standard Monitor를 참조하십시오. 버퍼 풀 동작에 대한 추가 정보는 Section 17.5.1, “Buffer Pool”을 참조하십시오.
ROW OPERATIONS이 section은 메인 스레드가 무엇을 하고 있는지, 그리고 각 유형의 행 연산에 대해 그 개수와 성능 비율을 보여줍니다.
17.17.2 Enabling InnoDB Monitors
17.18 InnoDB Backup and Recovery