대부분의 MySQL 성능 지표는 다음 두 가지 방법으로 얻을 수 있습니다.
mysqladmin 확장 상태 명령을 사용하여 얻은 MySQL 성능 지표는 기본적으로 누적 값으로 표시됩니다. 현재 상태를 알고 싶다면 차이를 계산해야 합니다; --relative(-r) 매개변수를 사용하면 각 지표의 차이를 확인할 수 있으며 --sleep(-i) 매개변수를 사용하면 새로 고침 빈도를 지정할 수 있습니다.
실행 중인 MySQL 서버의 다양한 상태 값, 누적 값을 나열할 수 있습니다.
Mysqladmin 확장 상태 명령과 전역 상태 표시는 많은 표시 항목을 가져옵니다. 실제 적용에서는 다음 성과 지표에 중점을 둡니다.
tps: 초당 트랜잭션 수, 초당 트랜잭션 수
qps: 초당 쿼리 수
tps/qps를 계산하는 방법에는 일반적으로 두 가지가 있습니다.
방법 1: com_commit 및 com_rollback을 기준으로 tps를 계산하고, 질문을 기준으로 qps를 계산합니다.
TPS = Com_commit/s + Com_rollback/s
그 중에서도
Com_commit /s= mysqladmin Extended-status --relative --sleep=1|grep -w Com_commit
Com_rollback/s = mysqladmin Extended-status --relative --sleep=1|grep -w Com_rollback
QPS는 초당 MySQL 서버에서 실행되는 총 쿼리 양을 의미하며, 이는 대략 초당 질문(고객 쿼리 수) 상태 값의 변화로 표시되므로 다음과 같습니다.
QPS = mysqladmin Extended-status --relative --sleep=1|grep -w 질문
위 방법에 따라 다음과 같은 MySQL 선택, 삽입, 업데이트, 삭제 횟수 등을 얻을 수도 있습니다.
Com_select/s = mysqladmin Extended-status --relative --sleep=1|grep -w Com_select
Com_select/s: 초당 평균 select 문 실행 횟수
Com_insert/s: 초당 평균 삽입 문 실행 횟수
Com_update/s: 초당 평균 업데이트 문 실행 횟수
Com_delete/s: 초당 평균 삭제 문 실행 횟수
방법 2: com_%를 기준으로 tps, qps 계산
tps= Com_insert/s + Com_update/s + Com_delete/s
qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s
threads_running: 현재 활성화된 스레드 수
threads_connected: 현재 연결된 스레드 수
Bytes_received/s: 초당 모든 클라이언트로부터 수신된 평균 바이트 수, 단위 KB
Bytes_sent/s: 초당 모든 클라이언트에 전송된 평균 바이트 수, 단위 KB
innodb_data_reads: innodb가 초당 파일을 읽는 평균 횟수
innodb_data_writes: innodb가 초당 파일에 쓰는 평균 횟수
innodb_data_fsyncs: innodb가 초당 수행하는 fsync() 작업의 평균 횟수
innodb_data_read: innodb가 초당 읽는 평균 데이터 양(KB)
innodb_data_write: innodb가 초당 쓴 평균 데이터 양(KB)
innodb_buffer_pool_reads: 초당 물리적 디스크에서 읽은 평균 페이지 수
innodb_buffer_pool_read_requests: innodb 버퍼 풀의 초당 평균 읽기 수(논리적 읽기 요청 수)
innodb_buffer_pool_write_requests: 초당 innodb 버퍼 풀에 대한 평균 쓰기 수
innodb_buffer_pool_pages_dirty: innodb 캐시 풀의 초당 평균 더티 페이지 수
innodb_buffer_pool_pages_flushed: innodb 캐시 풀의 초당 평균 플러시 페이지 요청 수
innodb 버퍼 풀 읽기 적중률
innodb_buffer_read_hit_ratio = (1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100
Innodb 버퍼 풀 활용
Innodb_buffer_usage = (1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100
innodb_os_log_fsyncs: 초당 로그 파일에 쓰는 fsync()의 평균 횟수
innodb_os_log_write: 초당 로그 파일에 기록된 평균 바이트 수
innodb_log_writes: 초당 로그 파일에 대한 평균 물리적 쓰기 횟수
innodb_log_write_requests: 초당 평균 로그 쓰기 요청 수
innodb_rows_deleted: 초당 innodb 테이블에서 삭제된 평균 행 수
innodb_rows_inserted: 초당 innodb 테이블에서 삽입된 평균 행 수
innodb_rows_read: 초당 innodb 테이블에서 읽은 평균 행 수
innodb_rows_updated: 초당 innodb 테이블에서 업데이트된 평균 행 수
innodb_row_lock_waits: 행이 잠금을 기다려야 하는 횟수
innodb_row_lock_time: 행 잠금에 소요된 총 시간(밀리초)
innodb_row_lock_time_avg: 평균 행 잠금 시간(밀리초 단위)
key_read_requests: MyISAM의 초당 버퍼 풀 읽기 평균 횟수
Key_write_requests: 초당 버퍼 풀의 MyISAM 쓰기 평균 횟수
key_reads: MyISAM이 초당 하드 디스크에서 읽는 평균 횟수
key_writes: MyISAM이 초당 하드 디스크에 쓰는 평균 횟수
MyISAM 초당 평균 키 버퍼 사용률
Key_usage_ratio =Key_blocks_used/(Key_blocks_used+Key_blocks_unused)*100
MyISAM 초당 평균 키 버퍼 읽기 적중률
Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100
MyISAM 초당 평균 키 버퍼 쓰기 적중률
Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100
Created_tmp_disk_tables: 서버가 명령문을 실행할 때 하드디스크에 자동으로 생성되는 임시 테이블 개수
Created_tmp_tables: 서버가 명령문을 실행할 때 자동으로 생성되는 메모리 내 임시 테이블 수
Created_tmp_disk_tables/Created_tmp_tables의 비율은 10%를 넘지 않는 것이 가장 좋습니다. Created_tmp_tables의 값이 상대적으로 크면 정렬 문장이 너무 많거나 연결 문장이 충분히 최적화되지 않은 것일 수 있습니다
slow_queries: 실행 시간이 long_query_time 초를 초과하는 쿼리 수(중요)
sort_rows: 정렬된 행 수
open_files: 열린 파일 수
open_tables: 현재 열려 있는 테이블 수
select_scan: 첫 번째 테이블의 전체 스캔에 대한 조인 수
그 외에도 mysqladmin 확장 상태를 통해 직접 얻을 수 없거나 글로벌 상태를 표시할 수 없는 성능 지표도 있지만 매우 중요합니다.
Percona는 응답 시간을 측정하는 tcprstat 도구를 제공합니다. 이 기능은 query_response_time_stats=1 매개변수를 설정하여 활성화할 수 있습니다.
응답 시간을 확인하는 방법에는 두 가지가 있습니다:
(1) SHOW QUERY_RESPONSE_TIME 명령을 통해 응답 시간 통계를 봅니다.
(2) INFORMATION_SCHEMA의 QUERY_RESPONSE_TIME 테이블을 통해 봅니다.http://www.orczhou.com/index.php/2011/09/thanks-percona-response-time-distribution/comment-page-1/(참고 기사)
위 내용은 MySQL 성능 지표 및 계산 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!