2009년 11월 29일 일요일

MySQL - 모니터링3

서버의 통계정보를 확인하기(SHOW STATUS)

MySQL서버내의 통계정보를 확인하려면 다음과 같이 한다.

shell$ mysqadmin extened-status

mysql>SHOW STATUS;

mysql>SELECT * FROM information_schema.GLOBAL_STATUS;

mysql>SELECT * FROM information_schema.SESSION_STATUS;

information_schema를 SELECT하는 경우는 Variable_name은 전부 대문자로 표현된다.

- Variable_name 내용
  • Aborted_clients: 클라이언트가 정상적인 방법으로 통신을 끊지않은 수
  • Aborted_connects: MySQL서버에 접속에 실패한 수
  • Binlog_cache_disk_use: mysqld는 트랜잭션개시할 때에 binlog_cache_size 메모리를 확보하고 그곳에 트랜잭션 문을 일단 써놓는다.(COMMIT, ROLLBACK실행전) 만약 캐쉬에 실행문을 전부 기록하지 못할 경우는 문장은 디스크에 쓰여진다. Binlog_cache_disk_use는 이 디스크에 문장을 보존하게 된 트랜잭션 수. binlog_cache_size의 설정이 충분히 큰 경우는 이 수가 적어지게 된다.
  • Binlog_cache_use: mysqld는 트랜잭션개시할 때에 binlog_cache_size 메모리를 확보하고 그곳에 트랜잭션 문을 일단 써놓는다.(COMMIT, ROLLBACK실행전) Binlog_cache_use는 이 캐쉬를 사용한 트랜잭션 수
  • Bytes_received: 모든 클라이언트에서 받은 바이트수
  • Bytes_sent: 모든 클라이언트에 보낸 바이트수
  • Com_xxx: 각각 xxx문이 얼마나 실행되었나를 나타낸다. Com_stmt_xxx는 Prepared Statement관련 문이 있다는 것을 나타낸다. Com_stmt_xxx는 예를 들어 Prepared statement인수 에러로 실행되지 못했던 경우에도 계산된다. 즉 Prepared Statement의 리퀘스트 수라고 말할 수 있다.
  • Compression: 클라이언트 서버사이에 통신을 zlib(gzip)압축을 하고 있으면 ON
  • Connections: MySQL서버에 접속을 시도한 수. 성공, 실패하고는 관계없음.
  • Created_tmp_disk_tables: 쿼리 실행중에 디스크에 작성된 임시 테이블 수. tmp_table_size보다 큰 영역이 필요한 경우에 디스크에 작성된다. 임시테이블을 메모리에서 전부 처리하고 싶다면 tmp_table_size을 늘린다.
  • Created_tmp_files:mysqld가 작성한 임시 파일 수
  • Created_tmp_tables: 쿼리 실행중에 메모리내에 작성된 임시 테이블 수. 메모리 상에 작성된 임시 테이블의 최대 사이즈는 tmp_table_size로 결정된다.
  • Delayed_errors: INSERT DELAYED로 쓰여진 레코드중에 에러가 난 것들의 수(중복 키 에러 등 )
  • Delayed_insert_threads: 사용된 INSERT DELAYED 핸들러 스레드수
  • Delayed_writes: INSERT DELAYED로 쓰여진 레코드 수
  • Flush_commands: FLUSH문의 실행횟수
  • Handler_commit: 내부 커밋 실행횟수
  • Handler_delete: 테이블에서 삭제된 레코드 수
  • Handler_discover: 테이블에 대해서 NDB클러스터에 질의하는 것을 discovery라고 부른다. 얼마나 NDB클러스터에 질의해서 테이블이 찾아졌는지를 나타냄.
  • Handler_prepare: two phase commit의 prepare 구문의 횟수
  • Handler_read_first: 테이블의 최초의 행이 읽어들여진 횟수
  • Handler_read_key
  • Handler_read_next
  • Handler_read_prev
  • Handler_read_rnd
  • Handler_read_rnd_next
  • Handler_rollback: 롤백을 요구한 수
  • Handler_savepoint:SAVEPOINT 요청 수
  • Handler_savepoint_rollback
  • Handler_update
  • Handler_write
  • Innodb_buffer_pool_pages_data:데이터를 포함한 페이지 (dirty, clean) 수
  • Innodb_buffer_pool_pages_dirty
  • Innodb_buffer_pool_pages_flushed
  • Innodb_buffer_pool_pages_free
  • Innodb_buffer_pool_pages_latched: Innodb버퍼풀 안에 latched페이지 수. 현재 읽고 쓰여지고 있는 페이지는 플러쉬나 삭제가 되지않는데 이 것을 말한다.
  • Innodb_buffer_pool_pages_misc
  • Innodb_buffer_pool_pages_total
  • Innodb_buffer_pool_read_ahead_rnd
  • Innodb_buffer_pool_read_ahead_seq
  • Innodb_buffer_pool_read_requests
  • Innodb_buffer_pool_reads
  • Innodb_buffer_pool_wait_free
  • Innodb_buffer_pool_write_requests
  • Innodb_data_fsyncs
  • Innodb_data_pending_fsyncs
  • Innodb_data_pending_reads
  • Innodb_data_pending_writes
  • Innodb_data_read: 지금까지 데이터를 읽어들인 바이트의 합계
  • Innodb_data_reads: 데이터 취득 횟수
  • Innodb_data_writes: 데이터 작성 횟수
  • Innodb_data_written:지금까지 데이터를 쓴 바이트의 합계
[계속]