영어프랑스어스페인어

Ad


온웍스 파비콘

innotop - 클라우드에서의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 innotop을 실행하세요.

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 innotop 명령입니다.

프로그램:

이름


innotop - MySQL 및 InnoDB 트랜잭션/상태 모니터.

개요


서버를 정상적으로 모니터링하려면:

Innotop

파일에서 InnoDB 상태 정보를 모니터링하려면 다음을 수행하세요.

innotop /var/log/mysql/mysqld.err

파이프 및 필터 구성에서 innotop을 비대화식으로 실행하려면 다음을 수행하십시오.

innotop --count 5 -d 1 -n

특정 사용자 이름과 비밀번호를 사용하여 다른 시스템의 데이터베이스를 모니터링하려면 다음을 수행하십시오.

innotop -u -피 -시간

기술


innotop은 MySQL 서버를 모니터링합니다. 각 모드는 게임의 다양한 측면을 보여줍니다.
서버에서 일어나고 있습니다. 예를 들어, 복제를 모니터링하는 모드가 있습니다.
쿼리 하나, 트랜잭션 하나. innotop은 주기적으로 데이터를 새로 고치므로
보기를 업데이트 중입니다.

innotop에는 고급 사용자를 위한 많은 기능이 있지만 가상으로 시작하고 실행할 수 있습니다.
구성이 없습니다. 방금 시작한 경우 "빠른 시작"을 참조하세요. 누르다 '?' 언제든지
상황에 맞는 도움말을 위해 innotop을 실행하는 동안의 시간입니다.

빠른 시작


innotop을 시작하려면 터미널이나 명령 프롬프트를 엽니다. innotop을 설치했다면
시스템에서는 "innotop"을 입력하고 Enter를 누를 수 있습니다. 그렇지 않으면 당신은
innotop의 디렉토리로 변경하고 "perl innotop"을 입력해야 합니다.

옵션이 지정되지 않으면 innotop은 localhost의 MySQL 서버에 연결을 시도합니다.
다른 연결 매개변수에는 mysql_read_default_group=client를 사용합니다. 필요한 경우
다른 사용자 이름과 비밀번호를 지정하려면 -u 및 -p 옵션을 각각 사용하십시오. 에게
다른 호스트에서 MySQL 데이터베이스를 모니터링하려면 -h 옵션을 사용하세요.

연결하고 나면 innotop에 다음과 같은 내용이 표시됩니다.

[RO] 쿼리 목록(? 도움말) localhost, 01:11:19, 449.44 QPS, 14/7/163 con/run

QPS 로드 시 CXN 느림 QCacheHit KCacheHit BpsIn BpsOut
localhost 합계 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k

CXN Cmd ID 사용자 호스트 DB 시간 쿼리
localhost Query 766446598 test 10.0.0.1 foo 00:02 INSERT INTO 테이블(

(이 샘플은 오른쪽이 잘려서 'man'을 실행할 때 터미널에 맞도록 되어 있습니다.
이노탑')

서버가 사용량이 많으면 더 많은 출력이 표시됩니다. 화면의 첫 번째 줄을 주목하세요.
이는 읽기 전용이 true([RO])로 설정되어 있는지, 현재 모드가 무엇인지, 어떤 서버인지를 알려줍니다.
당신은 연결되어 있습니다. 키 입력을 사용하여 다른 모드로 변경할 수 있습니다. 전환하려면 'T'를 누르세요.
예를 들어 InnoDB 트랜잭션 목록에.

누르세요 '?' 키를 누르면 현재 모드에서 어떤 키가 활성화되어 있는지 확인할 수 있습니다. 아무거나 누르시면 됩니다
이러한 키와 innotop은 요청된 작업을 수행하거나 추가 입력을 요청하는 메시지를 표시합니다.
시스템이 Term::ReadLine을 지원하는 경우 TAB 및 기타 키를 사용하여 자동 완성할 수 있습니다.
입력을 편집합니다.

innotop을 종료하려면 'q' 키를 누르세요.

옵션


innotop은 대부분 구성 파일을 통해 구성되지만 일부 구성은
옵션은 명령줄에서 올 수 있습니다. InnoDB를 모니터링할 파일을 지정할 수도 있습니다.
상태 출력; 자세한 내용은 "파일 모니터링"을 참조하세요.

옵션 이름 앞에 --no를 붙여서 일부 옵션을 무효화할 수 있습니다. 예를 들어 --noinc
(또는 --no-inc)는 "--inc"를 무효화합니다.

--색상
터미널 색상 지정을 활성화하거나 비활성화합니다. "color" 구성 파일 설정에 해당합니다.

--구성
읽을 구성 파일을 지정합니다. 이 옵션은 끈적이지 않습니다.
구성 파일 자체에는 유지되지 않습니다.

--세다
종료하기 전에 지정된 횟수(틱)만 새로 고칩니다. 각 새로 고침은
"간격"초 동안 일시 중지한 후 MySQL 연결에서 데이터를 요청하고
터미널에 인쇄하세요.

--지연
틱(새로 고침) 사이에 일시 중지할 시간을 지정합니다. 에 해당
구성 옵션 "간격".

--도움
명령줄 사용 요약을 인쇄하고 종료합니다.

--주인
연결할 호스트입니다.

--inc
innotop이 절대 숫자를 표시해야 하는지 아니면 상대 숫자(오프셋)를 표시해야 하는지 지정합니다.
이전 값에서). 구성 옵션 "status_inc"에 해당합니다.

--방법
innotop이 시작되어야 하는 모드를 지정합니다. 구성에 해당합니다.
옵션 "모드".

--nonint
비대화형 작업을 활성화합니다. 자세한 내용은 "비대화형 작업"을 참조하세요.

--비밀번호
연결에 사용할 비밀번호입니다.

--포트
연결에 사용할 포트입니다.

--skipcentral
중앙 구성 파일을 읽지 마십시오.

--사용자
연결에 사용할 사용자입니다.

--번역
버전 정보를 출력하고 종료합니다.

--쓰다
구성 옵션 "readonly"를 0으로 설정하여 innotop이 실행 중인 항목을 작성하도록 합니다.
구성 ~/.innotop/innotop.conf 종료 시 구성 파일이 로드되지 않은 경우
시작시.

단축키


innotop은 대화형이며 키를 눌러 제어할 수 있습니다.

· 대문자 키는 모드 간을 전환합니다.

· 소문자 키는 현재 모드 내에서 일부 작업을 시작합니다.

· 다른 키는 구성 변경이나 innotop 라이센스 표시와 같은 특별한 작업을 수행합니다.

누르다 '?' 언제든지 현재 활성 키와 그 기능을 확인할 수 있습니다.

모드


각 innotop의 모드는 서버에서 특정 유형의 데이터를 검색하고 표시합니다.
당신은 모니터링하고 있습니다. 대문자 키를 사용하여 모드 간을 전환합니다. 다음은
각 모드에 대한 간략한 설명(알파벳순) 모드로 전환하려면
다음 목록의 제목 앞에 키가 나열됩니다.

B: InnoDB 버퍼
이 모드는 InnoDB 버퍼 풀, 페이지 통계, 삽입에 대한 정보를 표시합니다.
버퍼 및 적응형 해시 인덱스. 데이터는 SHOW INNODB STATUS에서 가져옵니다.

이 모드에는 "buffer_pool", "page_statistics", "insert_buffers" 및
기본적으로 "adaptive_hash_index" 테이블.

C: 명령 요약
이 모드는 mytop의 명령 요약 모드와 유사합니다. "cmd_summary"가 표시됩니다.
테이블은 다음과 같습니다.

명령 요약(? 도움말) localhost, 25+07:16:43, 2.45 QPS, 3 thd, 5.0.40
_____________________ 명령 요약 _____________________
이름 값 퍼센트 마지막 증분 퍼센트
Select_scan 3244858 69.89% 2 100.00%
선택_범위 1354177 29.17% 0 0.00%
Select_full_join 39479 0.85% 0 0.00%
Select_full_range_join 4097 0.09% 0 0.00%
선택_범위_검사 0 0.00% 0 0.00%

명령 요약 테이블은 "STATUS_VARIABLES"에서 변수를 추출하여 구성됩니다.
변수는 숫자여야 하며 "cmd_filter"에 지정된 접두사와 일치해야 합니다.
구성 변수. 그런 다음 변수는 값을 기준으로 내림차순으로 정렬됩니다.
위에 표시된 것처럼 마지막 변수와 비교됩니다. 백분율 열은 백분율입니다.
표에 있는 모든 변수의 총계를 계산하여 변수의 상대적 가중치를 확인할 수 있습니다.
변수.

이 예에서는 접두사가 "Select_"인 경우 표시되는 내용을 보여줍니다. 기본 접두사는 다음과 같습니다.
"컴_". 's' 키를 사용하여 접두사를 선택할 수 있습니다.

이는 메모리와 nice를 사용하여 SHOW VARIABLES LIKE "prefix%"를 실행하는 것과 같습니다.
서식 지정.

값은 모든 서버에서 집계됩니다. 퍼센트 열이 올바르지 않습니다.
여러 서버에 걸쳐 집계됩니다. 이는 그룹화의 알려진 제한사항입니다.
향후 수정될 수 있는 알고리즘입니다.

D: InnoDB 교착 상태
이 모드는 마지막 InnoDB 교착 상태와 관련된 트랜잭션을 보여줍니다. 두 번째 테이블
각 트랜잭션이 보유하고 대기한 잠금을 보여줍니다. 순환으로 인해 교착상태가 발생함
대기 그래프에서는 두 개의 잠금이 유지되어야 하고 하나는 기다려야 합니다.
교착 상태 정보가 잘립니다.

InnoDB는 SHOW INNODB의 다른 정보 앞에 교착 상태 정보를 넣습니다.
상태 출력. 잠금이 많으면 교착 상태 정보가 매우 커질 수 있습니다.
SHOW INNODB STATUS 출력 크기에 제한이 있습니다. 큰
교착 상태는 전체 출력을 채우거나 심지어 잘려서 사용자가 볼 수 없게 할 수도 있습니다.
다른 정보는 전혀 없습니다. innotop을 다른 모드(예: T)에서 실행 중인 경우
모드에서 갑자기 아무것도 표시되지 않으면 다음 사항을 확인하고 싶을 수도 있습니다.
교착 상태로 인해 필요한 데이터가 사라졌습니다.

그렇다면 작은 교착 상태를 만들어 큰 교착 상태를 대체할 수 있습니다. 'w' 키를 사용하세요
작은 것으로 큰 교착 상태를 '지우기'. 당신이 없으면 이것은 작동하지 않습니다
연결에 대한 교착 상태 테이블을 정의했습니다("서버 연결" 참조).

대규모 교착 상태가 발생해야 하는 시기를 자동으로 감지하도록 innotop을 구성할 수도 있습니다.
작은 것으로 교체하십시오("auto_wipe_dl" 참조).

이 모드는 기본적으로 "deadlock_transactions" 및 "deadlock_locks" 테이블을 표시합니다.

F: InnoDB 외래 키 오류
이 모드는 마지막 InnoDB 외래 키 오류 정보를 보여줍니다.
이런 일이 발생했는지, 언제, 누가, 어떤 쿼리로 인해 발생했는지 등이 포함됩니다.

InnoDB에는 매우 다양한 외래 키 오류 메시지가 있으며 그 중 대부분은 단지
분석하기 어렵다. innotop이 항상 최선을 다하는 것은 아니지만 코드가 너무 많습니다.
innotop이 결코 분석할 수 없을 것 같은 지저분하고 분석할 수 없는 출력을 분석하는 데 전념합니다.
이 점에서는 완벽합니다. innotop이 당신이 봐야 할 것을 보여주지 않는다면, 그냥 보세요
상태 텍스트에서 직접.

이 모드는 기본적으로 "fk_error" 테이블을 표시합니다.

I: InnoDB I/O 정보
이 모드는 I/O 스레드, 보류 중인 I/O, 파일을 포함한 InnoDB의 I/O 통계를 보여줍니다.
I/O 기타 및 로그 통계입니다. "io_threads", "pending_io"가 표시됩니다.
기본적으로 "file_io_misc" 및 "log_statistics" 테이블입니다.

L: 자물쇠
이 모드는 현재 잠금에 대한 정보를 표시합니다. 현재는 InnoDB 잠금만 가능합니다.
지원되며 기본적으로 트랜잭션이 대기 중인 잠금만 표시됩니다.
이 정보는 InnoDB 상태 텍스트의 TRANSACTIONS 섹션에서 제공됩니다. 만약에
서버 사용량이 매우 많고 잠금 대기가 자주 발생할 수 있습니다. 할 수 있도록 도와줍니다.
어떤 테이블과 인덱스가 잠금의 "핫스팟"인지 확인하세요. 서버가 실행 중인 경우
글쎄, 이 모드에는 아무 것도 표시되지 않습니다.

트랜잭션이 수행되는 잠금뿐만 아니라 모니터링하도록 MySQL 및 innotop을 구성할 수 있습니다.
기다리고 있지만 현재 개최중인 것도 마찬가지입니다. InnoDB Lock을 사용하면 이 작업을 수행할 수 있습니다.
모니터(http://dev.mysql.com/doc/en/innodb-monitor.html>). 문서화되어 있지 않습니다.
MySQL 매뉴얼이지만 다음 명령문으로 잠금 모니터를 생성하는 것도 가능합니다.
innotop이 사용하는 SHOW INNODB STATUS의 출력에 영향을 미칩니다.

CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;

이로 인해 InnoDB는 다음과 같이 약 16초마다 MySQL 파일에 출력을 인쇄합니다.
매뉴얼에 명시되어 있지만 일반적인 SHOW INNODB STATUS 출력에도 포함됩니다.
innotop이 구문 분석하고 표시할 수 있는 잠금 정보(문서화되지 않은
기능).

이는 불가능해 보이는 일을 제한된 범위 내에서 수행할 수 있음을 의미합니다(InnoDB
출력에서 일부 정보가 잘림) 어떤 트랜잭션이 해당 정보를 보유하고 있는지 확인할 수 있습니다.
다른 것이 기다리고 있습니다. InnoDB 잠금을 활성화 및 비활성화할 수도 있습니다.
이 모드에서는 키 매핑으로 모니터링합니다.

이 모드는 기본적으로 "innodb_locks" 테이블을 표시합니다. 다음은 화면 샘플입니다.
한 연결이 잠금을 기다리고 있을 때 다른 연결이 유지됩니다.

__________________________________ InnoDB 잠금 __________________________
CXN ID 유형 대기 대기 활성 모드 DB 테이블 인덱스
localhost 12 RECORD 1 00:10 00:10 X 테스트 t1 기본
localhost 12 표 0 00:10 00:10 IX 테스트 t1
localhost 12 RECORD 1 00:10 00:10 X 테스트 t1 기본
localhost 11 표 0 00:00 00:25 IX 테스트 t1
localhost 11 RECORD 0 00:00 00:25 X 테스트 t1 기본

첫 번째 연결인 ID 12가 PRIMARY 키에 대한 잠금을 기다리고 있는 것을 볼 수 있습니다.
test.t1이며 10초 동안 기다리고 있습니다. 두 번째 연결이 기다리고 있지 않습니다.
대기 열은 0이지만 동일한 인덱스에 대한 잠금을 보유하고 있기 때문입니다. 그게 말해주는데
연결 11이 연결 12를 차단하고 있습니다.

M: 마스터/슬레이브 복제 상태
이 모드는 SHOW SLAVE STATUS 및 SHOW MASTER STATUS의 출력을 세 가지로 표시합니다.
테이블. 처음 두 개는 슬레이브의 상태를 SQL과 I/O 스레드 상태로 나누고,
마지막은 마스터 상태를 보여줍니다. 슬레이브가 아닌 서버를 제거하기 위해 필터가 적용됩니다.
마스터 테이블의 슬레이브 테이블과 비마스터 서버.

이 모드는 "slave_sql_status", "slave_io_status" 및 "master_status"를 표시합니다.
기본적으로 테이블.

O: 오픈 테이블
이 섹션은 MySQL의 SHOW OPEN TABLES 명령에서 나옵니다. 기본적으로 필터링됩니다.
하나 이상의 쿼리에서 사용 중인 테이블을 표시하여 빠르게 확인할 수 있습니다.
어떤 테이블이 '핫'한지. 이를 사용하여 어떤 테이블이 잠겨 있는지 추측할 수 있습니다.
암시 적으로.

이 모드는 기본적으로 "open_tables" 모드를 표시합니다.

Q: 쿼리 목록
이 모드는 다음과 유사하게 SHOW FULL PROCESSLIST의 출력을 표시합니다. 마이톱님의 쿼리 목록
방법. 이 모드는 지원 InnoDB 관련 정보를 보여줍니다. 이것은 아마도 다음 중 하나일 것입니다.
일반적인 사용에 가장 유용한 모드입니다.

귀하의 일반적인 상태 정보를 보여주는 정보 헤더가 있습니다.
섬기는 사람. 'h' 키로 켜고 끌 수 있습니다. 기본적으로 innotop은 숨깁니다.
비활성 프로세스와 자체 프로세스. 'i'를 사용하여 이 기능을 켜고 끌 수 있습니다.
그리고 'a' 키.

'e' 키를 사용하여 이 모드에서 쿼리를 설명할 수 있습니다. 그러면 쿼리의
전체 텍스트, EXPLAIN 결과, 최신 MySQL 버전에서는 최적화된
EXPLAIN EXTENDED의 결과 쿼리입니다. innotop은 또한 특정 쿼리를 다시 작성하려고 시도합니다.
EXPLAIN이 가능하도록 만듭니다. 예를 들어 INSERT/SELECT 문은 다시 쓸 수 있습니다.

이 모드는 기본적으로 "q_header" 및 "processlist" 테이블을 표시합니다.

R: InnoDB 행 연산 및 세마포어
이 모드에서는 InnoDB 행 작업, 행 작업 기타, 세마포어 및
대기 배열의 정보. "row_options"가 표시됩니다.
기본적으로 "row_Operation_misc", "semaphores" 및 "wait_array" 테이블입니다.

S: 변수 및 상태
이 모드는 초당 쿼리와 같은 통계를 계산하고 이를 인쇄합니다.
여러 가지 스타일. 절대값 또는 증분값을 표시할 수 있습니다.
진드기.

키를 눌러 보기 간에 전환할 수 있습니다. 's' 키는 한 줄을 인쇄합니다.
화면이 업데이트될 때마다 vmstat. 'g' 키는 보기를 다음으로 변경합니다.
같은 숫자의 그래프, 일종의 . 'v' 키는 보기를 다음으로 변경합니다.
왼쪽에 변수 이름이 포함된 피벗 테이블(연속적인 업데이트가 스크롤됨)
화면은 왼쪽에서 오른쪽으로. 화면에 표시할 업데이트 수를 선택할 수 있습니다.
"num_status_sets" 구성 변수를 사용합니다.

헤더는 대화형 작업에서 화면에 맞게 축약될 수 있습니다. 당신이 선택
사전 정의된 세트에서 선택하는 'c' 키를 사용하여 표시할 변수 또는
자신만의 세트를 만들 수 있습니다. 'e' 키를 사용하여 현재 세트를 편집할 수 있습니다.

이 모드는 실제로 다른 모드와 같은 테이블을 표시하지 않습니다. 대신에
테이블 정의를 사용하여 데이터를 추출하고 형식을 지정한 다음 결과를 다음과 같이 변환합니다.
그것을 출력하기 전에 특별한 방법. "var_status" 테이블 정의를 사용합니다.
이.

T: InnoDB 트랜잭션
이 모드는 InnoDB 모니터 출력의 트랜잭션을 표시합니다. 상단-같은 형식.
이 모드가 제가 innotop을 쓴 이유입니다.

'k' 및 'x' 키를 사용하여 쿼리나 프로세스를 종료할 수 있으며 다음을 사용하여 쿼리를 설명할 수 있습니다.
'e' 또는 'f' 키. InnoDB는 트랜잭션의 전체 쿼리를 인쇄하지 않으므로
쿼리가 잘리면 설명이 제대로 작동하지 않을 수 있습니다.

정보 헤더는 'h' 키를 사용하여 켜고 끌 수 있습니다. 기본적으로,
innotop은 비활성 트랜잭션과 자체 트랜잭션을 숨깁니다. 이 기능을 켜면 됩니다.
그리고 'i'와 'a' 키를 누르면 됩니다.

이 모드는 기본적으로 "t_header" 및 "innodb_transactions" 테이블을 표시합니다.

이노탑 지위


innotop이 표시하는 첫 번째 줄은 일종의 "상태 표시줄"입니다. 무엇이 포함되어 있는지에 따라 다릅니다.
현재 모드 및 모니터링 중인 서버. 처음 몇 단어는 항상
[RO] (readonly가 1로 설정된 경우) T 모드의 경우 "InnoDB Txns"와 같은 innotop 모드,
'?'를 누르라는 알림이 표시됩니다. 언제든지 도움을 받을 수 있습니다.

ONE 섬기는 사람
가장 간단한 경우는 단일 서버를 모니터링하는 경우입니다. 이 경우 이름은
연결은 상태 줄의 다음입니다. 이 이름은 만들 때 지정한 이름입니다.
연결 - MySQL 서버의 호스트 이름일 가능성이 높습니다. 그 다음에는 서버의
가동 시간.

T 또는 B와 같은 InnoDB 모드에 있는 경우 다음 단어는 "InnoDB"이고 그 뒤에는
화면을 렌더링하는 데 사용되는 SHOW INNODB STATUS 출력에 대한 정보입니다. 첫 번째 단어
InnoDB가 계산하는 데 사용하는 마지막 SHOW INNODB STATUS 이후의 초 수입니다.
일부 초당 통계. 다음은 InnoDB가 실행 중인지 여부를 나타내는 웃는 얼굴입니다.
출력이 잘립니다. 웃는 얼굴이 :-)이면 모든 것이 정상입니다. 잘림이 없습니다. ㅏ
:^| 트랜잭션 목록이 너무 길어서 InnoDB가 트랜잭션 목록 중 일부만 인쇄했음을 의미합니다.
업무. 마지막으로, 찡그린 얼굴 :-(은 출력이 불완전하다는 것을 의미합니다.
너무 많은 잠금 정보를 인쇄하는 교착 상태입니다("D: InnoDB 교착 상태" 참조).

다음 두 단어는 서버의 QPS(초당 쿼리)와 스레드 수를 나타냅니다.
(연결)이 존재합니다. 마지막으로 서버의 버전 번호가 맨 마지막에 표시됩니다.

배수 SERVERS
여러 서버를 모니터링하는 경우("서버 연결" 참조) 상태 줄은
개별 서버에 대한 세부 정보는 표시되지 않습니다. 대신에 이름이 표시됩니다.
활성 연결. 다시 말하지만 이는 사용자가 지정한 연결 이름입니다.
서버의 호스트 이름일 가능성이 높습니다. 오류가 있는 연결에는 접두사가 붙습니다.
느낌표.

서버 그룹("서버 그룹" 참조)을 모니터링하는 경우 상태 줄에 다음이 표시됩니다.
그룹의 이름. 그룹의 연결에 오류가 있는 경우 그룹 이름은 다음과 같습니다.
오류가 없는 연결의 비율이 뒤따릅니다.

innotop의 오류 처리에 대한 자세한 내용은 "ERROR HANDLING"을 참조하세요.

모니터링 A FILE
명령줄에 파일 이름을 지정하면 innotop은 다음 위치의 어떤 서버에도 연결하지 않습니다.
모두. InnoDB 상태 출력을 위해 지정된 파일을 관찰하고 이를 데이터로 사용합니다.
원천. 항상 '파일'이라는 단일 연결이 표시됩니다. 그리고 그럴 수 없기 때문에
서버에 연결하더라도 모니터링 중인 서버가 얼마나 오랫동안 작동했는지 확인할 수 없습니다.
따라서 innotop이 실행되기 시작한 이후의 시간으로 서버의 가동 시간을 계산합니다.

섬기는 사람 행정


innotop은 기본적으로 서버를 관찰하고 분석할 수 있는 모니터이지만,
또한 서버에 명령을 보냅니다. 가장 자주 유용한 명령은 쿼리를 종료하는 것입니다.
슬레이브를 중지하거나 시작합니다.

연결을 끊을 수 있으며, 최신 버전의 MySQL에서는 쿼리를 끊을 수 있지만
연결, "Q: 쿼리 목록" 및 "T: InnoDB 트랜잭션" 모드에서. 'k'를 눌러 발행하세요.
KILL 명령 또는 'x'를 사용하여 KILL QUERY 명령을 실행합니다. innotop이 다음을 묻는 메시지를 표시합니다.
종료할 서버 및/또는 연결 ID(단 하나뿐인 경우 innotop은 메시지를 표시하지 않습니다)
모든 입력에 대해 가능한 선택). innotop은 가장 오래 실행되는 쿼리를 미리 선택합니다.
가장 오래된 연결. 'y'로 명령을 확인하세요.

"M: Master 모드"의 "Slave Replication Status""에서 슬레이브를 시작하고 중지할 수 있습니다.
각각 'a' 및 'o' 키입니다. 이 명령을 한 번에 여러 슬레이브에 보낼 수 있습니다.
innotop은 START SLAVE 또는 STOP SLAVE의 기본 명령을 채워주지만 다음을 수행할 수 있습니다.
실제로 명령을 편집하고 SET GLOBAL과 같이 원하는 것을 보내십시오.
슬레이브가 시작될 때 하나의 binlog 이벤트를 건너뛰도록 하려면 SQL_SLAVE_SKIP_COUNTER=1입니다.

또한 innotop에 슬레이브가 사용하는 가장 빠른 binlog를 계산하고 발행하도록 요청할 수도 있습니다.
마스터에서 마스터 로그를 제거합니다. 이를 위해 'b' 키를 사용하십시오. innotop이 다음을 묻는 메시지를 표시합니다.
마스터에서 명령을 실행한 다음 해당 마스터의 연결 이름을 묻는 메시지를 표시합니다.
노예(innotop이 이를 확실하게 자체적으로 결정할 수 있는 방법은 없습니다). innotop이 찾아드립니다
이러한 슬레이브 연결에서 사용되는 최소 binlog를 인수로 제안합니다.
마스터 로그를 제거합니다.

섬기는 사람 CONNECTIONS


'@'을 사용하여 서버 연결을 생성하면 innotop은 다음과 같이 일련의 입력을 요청합니다.
다음과 같습니다 :

DSN DSN은 DBI 모듈에 전달되는 초기 인수인 데이터 소스 이름입니다.
서버에 연결하기 위해. 일반적으로 다음과 같은 형태입니다.

DBI:mysql:;mysql_read_default_group=mysql;호스트=HOSTNAME

이 DSN은 DBD::mysql 드라이버에 전달되므로 드라이버의
"http:의 경우"/search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm""에 있는 문서
DSN에서 드라이버를 전달할 수 있는 모든 옵션에 대한 정확한 세부 정보입니다. 당신은 읽을 수있다
DBI에 대한 자세한 내용은http://dbi.perl.org/docs/>, 특히
<http://search.cpan.org/~timb/DBI/DBI.pm>.

mysql_read_default_group=mysql 옵션을 사용하면 DBD 드라이버가 MySQL 옵션을 읽을 수 있습니다.
다음과 같은 파일 ~/.my.cnf UNIX 계열 시스템에서. 이를 사용하면 특정 항목을 지정하지 않아도 됩니다.
연결을 위한 사용자 이름 또는 비밀번호입니다.

InnoDB 교착 상태 테이블
이 선택적 항목은 의도적으로 테이블을 생성하는 데 사용할 수 있는 테이블 이름을 innotop에 알려줍니다.
작은 교착 상태("D: InnoDB 교착 상태" 참조). 이 옵션을 지정하면
테이블이 존재하지 않고 innotop이 테이블을 생성하고 삭제할 수 있는지 확인하기 위해
InnoDB 스토리지 엔진을 사용합니다. 다음과 같은 경우 안전하게 생략하거나 기본값을 수락할 수 있습니다.
이것을 사용할 생각은 없습니다.

ID / Username
innotop은 사용자 이름을 지정할 것인지 묻습니다. 'y'라고 하면 그럴 거예요.
사용자 이름을 묻는 메시지를 표시합니다. 다음을 지정하는 MySQL 옵션 파일이 있는 경우
사용자 이름의 경우 사용자 이름을 지정할 필요가 없습니다.

사용자 이름의 기본값은 innotop을 실행 중인 시스템의 로그인 이름입니다.

비밀번호
innotop은 비밀번호를 지정할 것인지 묻습니다. 사용자 이름과 마찬가지로
비밀번호는 선택사항이지만 저장할지 묻는 추가 프롬프트가 있습니다.
innotop 구성 파일의 비밀번호. 해당 폴더에 저장하지 않으면
구성 파일을 사용하면 innotop이 시작될 때마다 비밀번호를 묻는 메시지를 표시합니다.
innotop 구성 파일의 비밀번호는 암호화되지 않고 일반 텍스트로 저장됩니다.
어쨌든.

이러한 질문에 대한 답변을 마치면 서버에 연결되어야 합니다. 하지만
innotop은 단일 서버 모니터링에만 국한되지 않습니다. 많은 서버를 정의할 수 있습니다
'@' 키를 눌러 연결을 전환하고 연결을 전환하세요. "간 전환"을 참조하세요.
사이".

섬기는 사람 여러 떼


여러 개의 MySQL 인스턴스가 있는 경우 'all'과 같은 이름이 지정된 그룹에 넣을 수 있습니다.
innotop이 모두 함께 모니터링할 수 있는 '마스터', '슬레이브'입니다.

'#' 키로 모니터링할 그룹을 선택할 수 있으며, TAB 키를 누르면 모니터링할 그룹을 선택할 수 있습니다.
다음 그룹으로 전환하세요. 현재 그룹을 모니터링하고 있지 않은 경우 Tab 키를 누르세요.
첫 번째 그룹을 선택합니다.

그룹을 생성하려면 '#' 키를 누르고 새 그룹의 이름을 입력한 다음
그룹에 포함시키려는 연결의 이름입니다.

스위칭 중에서 CONNECTIONS


innotop을 사용하면 모니터링 중인 서버를 빠르게 전환할 수 있습니다. 가장 기본적인 방법은
'@' 키를 누르고 사용하려는 연결 이름을 입력합니다. 이것
설정은 모드별로 이루어지므로 각 모드에서 서로 다른 연결을 모니터링할 수 있으며 innotop
선택한 연결을 기억합니다.

'n' 키를 사용하면 알파벳 순서로 '다음' 연결로 빠르게 전환할 수 있습니다.
서버 그룹("서버 그룹" 참조)을 모니터링하는 경우 첫 번째 그룹으로 전환됩니다.
연결.

또한 많은 연결 이름을 입력할 수 있으며 innotop은 해당 연결 이름에서 데이터를 가져와 표시합니다.
모두. 연결 이름을 공백으로 구분하세요(예: "server1 server2").
다시 말하지만, 존재하지 않는 연결 이름을 입력하면 innotop이 메시지를 표시합니다.
연결 정보를 확인하고 연결을 만듭니다.

한 번에 여러 연결을 모니터링하는 또 다른 방법은 서버 그룹을 사용하는 것입니다. 당신이 사용할 수있는
TAB 키를 누르면 알파벳 순서로 '다음' 그룹으로 전환됩니다. 그렇지 않은 경우에는
그룹을 모니터링하면 TAB이 첫 번째 그룹으로 전환됩니다.

innotop은 연결에서 병렬로 데이터를 가져오지 않으므로 대규모 데이터를 모니터링하는 경우
그룹 또는 많은 연결의 경우 틱 사이의 지연이 증가할 수 있습니다.

둘 이상의 연결을 모니터링하면 innotop의 상태 표시줄이 변경됩니다. "이노탑"을 참조하세요.
상태".

ERROR 손질


오류 처리는 단일 연결을 모니터링할 때 그다지 중요하지 않지만 매우 중요합니다.
활성 연결이 많을 때. 서버가 충돌하거나 연결이 끊어지면 안 됩니다.
이노톱 충돌. 결과적으로 오류가 발생하더라도 innotop은 계속 실행됩니다. 그것
오류가 발생한 연결의 정보는 표시되지 않습니다. 때문에
innotop의 행동이 당신을 혼란스럽게 할 수도 있습니다. 버그가 아닌 기능입니다!

innotop은 오류가 있는 연결을 계속 쿼리하지 않습니다. 속도가 느려질 수 있기 때문입니다.
특히 오류가 연결에 문제가 있는 경우 innotop을 사용하기 어렵게 만듭니다.
긴 시간 초과가 발생합니다. 대신 innotop은 가끔 연결을 다시 시도하여 다음과 같은지 확인합니다.
오류가 여전히 존재합니다. 그렇다면 미래의 어느 시점까지 기다릴 것입니다. 기다림
시간은 피보나치 수열처럼 틱 단위로 증가하므로 시간이 지날수록 시도 횟수가 줄어듭니다.
통과합니다.

실행된 SQL 명령으로 인해 특정 모드에서만 오류가 발생할 수 있으므로
innotop은 어떤 모드에서 오류가 발생했는지 추적합니다. 다음으로 전환하면
다른 모드에서는 innotop이 기다리는 대신 연결을 다시 시도합니다.

기본적으로 innotop은 첫 번째 테이블 하단에 빨간색 텍스트로 문제를 표시합니다.
화면에. "show_cxn_errors_in_tbl"을 사용하여 이 동작을 비활성화할 수 있습니다.
기본적으로 활성화되어 있는 구성 옵션입니다. "디버그" 옵션이 활성화된 경우,
innotop은 첫 번째 테이블뿐만 아니라 모든 테이블의 아래쪽에 오류를 표시합니다. 그리고 만약에
"show_cxn_errors"가 활성화되면 innotop은 오류 텍스트를 STDOUT에도 인쇄합니다. 오류
메시지는 모드 및 모드에 따라 오류를 일으킨 모드에서만 표시될 수 있습니다.
innotop이 해당 연결 쿼리를 피하고 있는지 여부.

비대화형 운영


비대화형 모드에서 innotop을 실행할 수 있습니다. 이 경우 완전히 제어됩니다.
구성 파일 및 명령줄 옵션. 비대화형에서 innotop을 시작하려면
모드에서는 L"<--nonint"> 명령줄 옵션을 제공합니다. 이는 innotop의 동작을 변경합니다.
다음과 같은 방법 :

· 특정 Perl 모듈은 로드되지 않습니다. Term::Readline은 innotop 이후로 로드되지 않습니다.
대화형으로 메시지를 표시하지 않습니다. Term::ANSIColor 및 Win32::Console::ANSI 모듈은 다음과 같습니다.
로드되지 않았습니다. Term::ReadKey는 여전히 사용됩니다. 왜냐하면 innotop이 다음을 묻는 메시지를 표시해야 할 수도 있기 때문입니다.
시작할 때 연결 비밀번호.

· innotop은 각 틱 후에 화면을 지우지 않습니다.

· innotop은 구성 파일에 대한 변경 사항을 유지하지 않습니다.

· "--count"가 지정되고 innotop이 증분 모드인 경우("status_inc" 및
"--inc"), innotop은 실제로 지정된 것보다 한 번 더 새로 고쳐서 인쇄할 수 있습니다.
증분 통계. 이는 첫 번째 틱 동안 출력을 억제하므로 innotop은
매달린 것처럼 보입니다.

· innotop은 각 모드의 첫 번째 테이블만 표시합니다. 이렇게 하면 출력이 가능합니다.
awk 및 sed와 같은 다른 명령줄 유틸리티로 쉽게 처리됩니다. 바꾸다
각 모드에서 표시되는 테이블은 "테이블"을 참조하세요. "Q: Query List" 모드는 다음과 같습니다.
중요한 점은 innotop이 "q_header" 테이블을 자동으로 비활성화한다는 것입니다. 이를 통해 다음을 보장할 수 있습니다.
q_header를 표시하도록 innotop을 구성한 경우에도 "processlist" 테이블을 참조하세요.
대화형 작업 중 테이블. 마찬가지로 "T: InnoDB Transactions" 모드에서는
"t_header" 테이블은 표시되지 않으므로 "innodb_transactions" 테이블만 표시됩니다.

· 모든 출력은 공백으로 열 정렬되는 대신 탭으로 구분됩니다.
innotop은 한 화면만 인쇄하는 대신 각 테이블의 전체 내용을 인쇄합니다.
한번에.

· innotop은 매 틱 대신 열 헤더를 한 번만 인쇄합니다("hide_hdr" 참조).
innotop은 테이블 캡션을 인쇄하지 않습니다("display_table_captions" 참조). innotop이 보장합니다
출력에 빈 줄이 없습니다.

· innotop은 일반적으로 일부를 단축하는 "단축" 변환을 따르지 않습니다.
숫자를 사람이 읽을 수 있는 형식으로 변환합니다.

· innotop은 상태 줄을 인쇄하지 않습니다("INNOTOP STATUS" 참조).

구성 중


innotop에 관한 거의 모든 것이 구성 가능합니다. 대부분의 것들은 다음과 같이 변경될 수 있습니다.
기본 제공 명령이지만 구성 파일을 편집할 수도 있습니다.

innotop을 실행하는 동안 '$' 키를 눌러 구성 편집 대화 상자를 불러옵니다.
편집하려는 데이터 유형을 선택하려면 다른 키를 누르세요.

S: 진술 수면 시간
지정된 시간 동안 innotop을 일시 중지하는 SQL 문 절전 지연을 편집합니다.
명령문을 실행한 후의 시간입니다. 각각의 정의는 "SQL STATEMENTS"를 참조하십시오.
진술과 그것이 하는 일. 기본적으로 innotop은 어떤 명령문 후에도 지연되지 않습니다.

모니터링으로 인해 발생하는 부작용을 사용자 정의할 수 있도록 이 기능이 포함되어 있습니다.
귀하의 서버. 어떤 효과도 볼 수 없지만 일부 innotop 사용자는 다음과 같은 사실을 발견했습니다.
InnoDB가 활성화된 상태에서 부하가 매우 높은 특정 MySQL 버전은 평소보다 오래 걸립니다.
SHOW GLOBAL STATUS를 실행합니다. innotop이 즉시 SHOW FULL PROCESSLIST를 호출하는 경우
이후 프로세스 목록에는 컴퓨터가 실제로 평균한 것보다 더 많은 쿼리가 포함됩니다.
어떤 순간에도. SHOW GLOBAL 호출 후 잠시 일시 중지되도록 innotop 구성
STATUS는 이 효과를 완화합니다.

절전 시간은 구성 파일의 "stmt_sleep_times" 섹션에 저장됩니다.
하드웨어 제한에 따라 분수 초 절전 모드가 지원됩니다.

c: 열 편집
표시된 테이블 중 하나에서 테이블 편집기를 시작합니다. "테이블 편집기"를 참조하십시오. 안
구성 대화 상자에 들어가지 않고 테이블 편집기를 시작하는 다른 방법은 다음과 같습니다.
'^' 키를 사용합니다.

g: 일반 구성
전역 및 모드별 구성을 편집하기 위해 구성 편집기를 시작합니다.
변수("MODES" 참조). innotop은 다음 중에서 변수를 선택하라는 메시지를 표시합니다.
현재 모드에 따라 전역 및 모드별 모드.

k: 행 색칠 규칙
표시된 테이블 중 하나에서 행 색상 지정 규칙 편집기를 시작합니다. "색상"을 참조하세요.
자세한 내용은.

p: 플러그인 관리
플러그인 구성 편집기를 시작합니다. 자세한 내용은 "플러그인"을 참조하세요.

s: 서버 그룹
서버 그룹을 생성하고 편집할 수 있습니다. "서버 그룹"을 참조하십시오.

t: 표시된 테이블 선택
이 모드에서 표시할 테이블을 선택할 수 있습니다. "모드"와 "테이블"을 참조하세요.

구성 FILE


innotop의 기본 구성 파일 위치는 $HOME/.innotop이고
/etc/innotop/innotop.conf, 해당 순서대로 검색됩니다. 첫 번째 경우
구성 파일이 존재하면 두 번째 파일은 처리되지 않습니다. 이는 다음으로 재정의될 수 있습니다.
"--config" 명령줄 옵션. 손으로 안전하게 편집할 수 있지만 innotop은 읽습니다.
구성 파일이 시작될 때 구성 파일을 작성하고, 읽기 전용이 0으로 설정된 경우 다시 작성합니다.
종료할 때. 따라서 readonly가 0으로 설정되면 innotop에서 직접 변경한 모든 내용은
실행 중이 손실됩니다.

innotop은 전체 구성을 구성 파일에 저장하지 않습니다. 그것은 거대한
메모리에만 보유되는 기본 구성 값 세트 및 구성
파일은 이러한 기본값만 재정의합니다. 기본 설정을 사용자 정의하는 경우 innotop
알림을 받은 다음 사용자 정의 내용을 파일에 저장합니다. 이렇게 하면 파일 크기가 작아지고
편집이 더 쉬워지고 업그레이드가 더 쉬워집니다.

구성 파일은 기본적으로 읽기 전용입니다. "--write"를 사용하여 이를 재정의할 수 있습니다. 보다
"읽기 전용".

구성 파일은 INI 파일과 같은 섹션으로 구성됩니다. 각 섹션이 시작됩니다.
[섹션 이름]으로 시작하고 [/섹션 이름]으로 끝납니다. 각 섹션의 항목에는
저장해야 하는 데이터에 따라 구문이 다릅니다. 에 댓글을 달 수 있습니다.
파일; # 문자로 시작하는 모든 줄은 주석입니다. innotop은 읽지 않습니다
주석을 종료할 때 파일에 다시 쓰지 않도록 합니다. 읽은 댓글-
하지만 구성 파일만 여전히 유용합니다.

파일의 첫 번째 줄은 innotop의 버전 번호입니다. 이렇게 하면 innotop이 다음을 알 수 있습니다.
파일 형식은 이전 버전과 호환되지 않으며, 파일을 손상시키지 않고 원활하게 업그레이드할 수 있습니다.
맞춤형 구성.

다음 목록에서는 구성 파일의 각 섹션과 해당 섹션에 포함된 데이터에 대해 설명합니다.
포함한다 :

일반
'일반' 섹션에는 전역 구성 변수와 다음과 같은 변수가 포함되어 있습니다.
모드에 따라 다르지만 다른 섹션에는 속하지 않습니다. 구문은 간단합니다.
키=값 목록. innotop은 파일 편집에 도움이 되도록 각 값 위에 주석을 작성합니다.
손으로.

S_func
S 모드 표시를 제어합니다("S: 변수 및 상태" 참조). g이면 값은 다음과 같습니다.
그래프로 표시; s인 경우 값은 vmstat와 같습니다. p인 경우 값은 피벗 테이블에 있습니다.

S_세트
"S: 변수 및 상태" 모드에 표시할 변수 세트를 지정합니다. 보다
"변수 세트".

auto_wipe_dl
대규모 교착 상태를 발견하면 자동으로 삭제하도록 innotop에 지시합니다.
이 경우 약간의 지연이 발생할 수 있습니다. 다음 틱에서 당신은
일반적으로 큰 교착 상태로 인해 잘린 정보를 볼 수 있습니다.

문자셋
"no_ctrl_char"를 통해 허용할 문자 종류를 지정합니다.
변환. 이렇게 하면 인쇄할 수 없는 문자가 터미널을 혼동하는 것을 방지할 수 있습니다.
이미지와 같은 이진 데이터가 포함된 쿼리를 모니터링할 때.

기본값은 'ascii'이며, 일반 ASCII 이외의 모든 항목을 ASCII로 간주합니다.
제어 문자. 허용되는 다른 값은 'unicode'와 'none'입니다. '없음'
모든 문자를 제어 문자로 간주하므로 축소에 유용할 수 있습니다.
쿼리의 모든 텍스트 필드.

cmd_filter
"C: Command Summary" 모드에서 변수를 필터링하는 접두사입니다.


터미널 색상 지정이 허용되는지 여부입니다.

cxn_timeout
MySQL 버전 4.0.3 이상에서는 이 변수가 연결 설정에 사용됩니다.
시간 초과이므로 MySQL은 한동안 사용하지 않으면 연결을 닫지 않습니다.
이는 연결이 특정 모드에서 모니터링되지 않기 때문에 발생할 수 있습니다.
예.

디버그
이 옵션은 더 자세한 오류를 허용하고 일부에서는 innotop을 더 엄격하게 만듭니다.
장소. 필터 및 기타 사용자 정의 코드를 디버깅하는 데 도움이 될 수 있습니다. 또한
충돌이 발생하면 innotop이 "debugfile"에 많은 정보를 쓰도록 합니다.

디버그 파일
충돌이 발생할 때 innotop이 정보를 쓰는 파일입니다. 보다
"파일".

디스플레이_테이블_캡션
innotop은 대부분의 테이블 위에 테이블 캡션을 표시합니다. 이 변수는 또는
전 세계적으로 모든 테이블에 캡션을 표시합니다. 일부 테이블은 다음과 같이 구성됩니다.
이를 재정의하는 hide_caption 속성입니다.

글로벌
GLOBAL 변수 및 상태를 표시할지 여부입니다. innotop은 다음에서만 이 작업을 시도합니다.
SHOW VARIABLES 및 SHOW STATUS에 대한 GLOBAL 옵션을 지원하는 서버. ~ 안에
일부 MySQL 버전에서는 이를 수행하려면 특정 권한이 필요합니다. 당신이 없다면
그러면 innotop은 변수 및 상태 데이터를 가져올 수 없습니다. 이것
구성 변수를 사용하면 innotop을 실행하고 가져올 수 있는 데이터를 가져올 수 있습니다.
상승된 권한 없이.

GLOBAL이 허용되지 않는 상황을 더 이상 찾을 수도 재현할 수도 없지만,
하나 있었다는 걸 알아요.

그래프_문자
"S: Variables & Status" 모드에서 그래프를 그릴 때 사용할 문자를 정의합니다.

헤더_강조
열 머리글을 강조 표시하는 방법을 정의합니다. 이는 Term::ANSIColor가 다음과 같은 경우에만 작동합니다.
사용 가능. 유효한 값은 '굵게'와 '밑줄'입니다.

hide_hdr
열 헤더를 전체적으로 숨깁니다.

간격
innotop이 데이터를 새로 고치는 간격(틱)입니다. 간격은
틱 사이의 수면 시간으로 구현되므로 실제 간격은 다양합니다.
innotop이 데이터를 가져오고 렌더링하는 데 걸리는 시간에 따라 다릅니다.

이 변수는 XNUMX초 단위까지 허용합니다.

모드
innotop이 시작되어야 하는 모드입니다. 허용되는 인수는 다음과 같습니다.
대화식으로 모드를 선택하는 키 누르기. "모드"를 참조하세요.

num_digits
분수와 퍼센트로 표시할 자릿수입니다. 이 변수의 범위
0에서 9 사이이며 "S: Variables & Status" 모드에서 직접 설정할 수 있습니다.
'+' 및 '-' 키입니다. "set_precision", "shorten", "percent"에 사용됩니다.
변형.

num_status_sets
피벗된 "S: 변수 &"에 표시할 상태 변수 세트 수를 제어합니다.
상태" 모드. 또한 innotop이 유지하는 이전 변수 세트의 수를 제어합니다.
따라서 이 변수가 클수록 innotop이 더 많은 메모리를 사용합니다.

플러그인_디렉터리
플러그인을 찾을 수 있는 위치를 지정합니다. 기본적으로 innotop은 플러그인을 다음 위치에 저장합니다.
innotop 구성 디렉터리의 'plugins' 하위 디렉터리입니다.

읽기 전용
구성 파일이 읽기 전용인지 여부입니다. 이는 대화형으로 설정할 수 없습니다.

show_cxn_errors
STDOUT에 대한 innotop 인쇄 연결 오류가 발생합니다. "오류 처리"를 참조하십시오.

show_cxn_errors_in_tbl
innotop은 연결 오류를 화면의 첫 번째 테이블에 행으로 표시합니다. 보다
"오류 처리".

show_percent
"백분율" 변환에서 반환된 값 뒤에 '%' 문자를 추가합니다.

show_statusbar
디스플레이에 상태 표시줄을 표시할지 여부를 제어합니다. "INNOTOP 상태"를 참조하세요.

Skip_innodb
서버에 InnoDB가 없는 경우 SHOW INNODB STATUS 가져오기를 비활성화합니다.
활성화되어 있고 innotop이 그것을 가져오려고 시도하는 것을 원하지 않습니다. 이것은 또한 유용할 수 있습니다
SHOW INNODB STATUS를 실행하는 데 필요한 SUPER 권한이 없는 경우.

상태_inc
상태 변수에 대한 절대값 또는 증분값을 표시할지 여부입니다. 증분
값은 innotop이 본 마지막 값의 오프셋으로 계산됩니다.
변하기 쉬운. 이는 전역 설정이지만 아마도 모드별로 달라질 수 있습니다.
어떤 점에서. 지금은 약간 일관성이 없는 영광을 누리고 있습니다. 일부 모드는 비용을 지불하지 않습니다
그것에주의를 기울이십시오.

플러그인
이 섹션에는 활성 플러그인의 패키지 이름 목록이 들어 있습니다. 플러그인이 존재하는 경우,
innotop이 활성화합니다. 자세한 내용은 "플러그인"을 참조하세요.

필터
이 섹션에는 사용자 정의 필터가 포함되어 있습니다("FILTERS" 참조). 각 줄은 다음과 같은 형식으로 되어 있습니다.
filter_name=text='필터 텍스트' tbls='테이블 목록'.

필터 텍스트는 서브루틴 코드의 텍스트입니다. 테이블 목록은
필터를 적용할 수 있는 테이블입니다. 기본적으로 사용자 정의 필터는 다음에 적용됩니다.
생성된 테이블이지만 편집하여 수동으로 재정의할 수 있습니다.
구성 파일의 정의.

활성 필터
이 섹션에는 각 테이블에서 활성화된 필터가 저장됩니다. 각 라인은
table_name=filter_list 형식을 지정합니다.

tbl_meta
이 섹션에는 사용자 정의 또는 사용자 정의 열이 저장됩니다("COLUMNS" 참조). 각
행은 col_name=properties 형식입니다. 여기서 속성은
이름=따옴표 붙은 값 목록.

연결
이 섹션에는 정의한 서버 연결이 포함됩니다. 각 라인은
형식 이름=속성. 여기서 속성은 이름=값 목록입니다. 속성
자명하며 특별하게 취급되는 유일한 것은 'pass'입니다.
'savepass'가 설정된 경우에만 존재합니다. 구성 파일의 이 섹션은 다음과 같습니다.
DSN, 사용자 이름 또는 비밀번호 명령줄 옵션이 사용되는 경우 건너뜁니다. "서버"를 참조하세요.
사이".

active_connections
이 섹션에는 각 모드에서 활성화된 연결 목록이 포함되어 있습니다. 각 라인은
mode_name=connection_list 형식입니다.

서버 그룹
이 섹션에는 서버 그룹이 포함되어 있습니다. 각 줄은 name=connection_list 형식입니다.
"서버 그룹"을 참조하세요.

active_server_groups
이 섹션에는 각 모드에서 어떤 서버 그룹이 활성화되어 있는지 목록이 들어 있습니다. 각 라인은
mode_name=server_group 형식입니다.

최대_값_본
이 섹션에는 변수에 대해 표시되는 최대값이 포함됩니다. 이는 크기를 조정하는 데 사용됩니다.
"S: 변수 및 상태" 모드의 그래프. 각 줄은 이름=값 형식입니다.

활성_열
이 섹션에는 테이블 열 목록이 포함됩니다. 각 줄은 다음과 같은 형식으로 되어 있습니다.
tbl_name=column_list. "열"을 참조하세요.

sort_cols
이 섹션에는 정렬 정의가 포함됩니다. 각 줄은 다음과 같은 형식으로 되어 있습니다.
tbl_name=column_list. 열 앞에 '-'가 붙으면 해당 열은 내림차순으로 정렬됩니다.
"정렬"을 참조하세요.

visible_tables
이 섹션에서는 각 모드에서 표시되는 테이블을 정의합니다. 각 라인은
mode_name=table_list 형식입니다. "표"를 참조하세요.

변종
이 섹션에서는 "S: 상태 및 변수" 모드에서 사용할 변수 세트를 정의합니다. 각 라인
name=variable_list 형식입니다. "변수 세트"를 참조하십시오.

색상
이 섹션에서는 색상화 규칙을 정의합니다. 각 줄은 다음과 같은 형식으로 되어 있습니다.
tbl_name=property_list. "색상"을 참조하세요.

stmt_sleep_times
이 섹션에는 명령문 절전 시간이 포함되어 있습니다. 각 줄은 다음과 같은 형식으로 되어 있습니다.
문_이름=수면_시간. "S: 명령문 수면 시간"을 참조하십시오.

그룹별로
이 섹션에는 테이블 group_by 표현식에 대한 열 목록이 포함되어 있습니다. 각 라인은
tbl_name=column_list 형식입니다. "그룹화"를 참조하세요.

커스터마이징


innotop을 다양하게 사용자 정의할 수 있습니다. 예를 들어 다음을 수행할 수 있습니다.

· 표시할 테이블과 순서를 선택합니다.

· 해당 테이블에 어떤 열이 있는지 선택하고 새 열을 만듭니다.

· 내장 필터, 사용자 정의 필터 및 빠른 기능을 사용하여 표시되는 행을 필터링합니다.
필터.

· 중요한 데이터를 먼저 배치하거나 관련 행을 그룹화하여 행을 정렬합니다.

· 색상으로 행을 강조 표시합니다.

· 열의 정렬, 너비, 서식을 사용자 정의하고 변환을 적용합니다.
값의 일부를 추출하거나 원하는 대로 값의 형식을 지정하기 위해 열로 이동(예:
예를 들어 큰 숫자를 친숙한 단위로 줄입니다.)

· 필요에 따라 데이터를 추출하고 결합하는 자신만의 표현을 디자인합니다. 이것은 당신에게 제공됩니다
무제한의 유연성.

다음 섹션에서는 이러한 모든 내용과 그 이상에 대해 설명합니다.

테이블
테이블은 여러분이 기대하는 것입니다: 열의 모음입니다. 또한 다른 속성도 가지고 있습니다.
캡션 같은 거죠. 필터, 정렬 규칙 및 색상화 규칙은 테이블과
이후 섹션에서 다룹니다.

내부적으로 테이블 메타데이터는 %tbl_meta라는 데이터 구조로 정의됩니다. 이 해시
여기에는 많은 기본 지침이 포함된 모든 내장 테이블 정의가 포함되어 있습니다.
innotop. 메타데이터에는 캡션, 사용자가 사용자 정의한 열 목록,
열 목록, 표시되는 열 목록, 필터 목록, 색상 규칙, 정렬 열
목록, 정렬 방향 및 테이블의 데이터 소스에 대한 일부 정보. 이것의 대부분은
테이블 편집기를 통해 사용자 정의할 수 있습니다("테이블 편집기" 참조).

'$' 키를 눌러 표시할 테이블을 선택할 수 있습니다. "모드"와 "테이블"을 참조하세요.

테이블 수명주기는 다음과 같습니다.

· 각 테이블은 해시 배열인 데이터 소스로 시작됩니다. 자세한 내용은 아래를 참조하세요.
데이터 소스에 대한 세부정보입니다.

· 데이터 소스의 각 요소는 최종 테이블의 행이 됩니다.

· 데이터 소스의 각 요소에 대해 innotop은 소스에서 값을 추출하고
행을 생성합니다. 이 행은 또 다른 해시이며 이후 단계에서는 $set라고 합니다.
innotop 추출 값은 테이블의 열에 따라 결정됩니다. 각 열에는
표현식에서 컴파일된 추출 서브루틴("표현식" 참조) 결과
row는 키 이름이 열 이름과 동일한 해시입니다.

· innotop은 행을 필터링하여 표시할 필요가 없는 행을 제거합니다. 보다
"필터".

· innotop은 행을 정렬합니다. "정렬"을 참조하세요.

· innotop은 지정된 경우 행을 그룹화합니다. "그룹화"를 참조하세요.

· innotop은 행을 색상화합니다. "색상"을 참조하세요.

· innotop은 각 행의 열 값을 변환합니다. "변환"을 참조하세요.

· innotop은 선택적으로 행을 피벗한 다음("PIVOTING" 참조) 이를 필터링하고 정렬합니다.

· innotop은 행을 테이블 형식으로 지정하고 정렬합니다. 이 단계에서는 innotop이 적용됩니다.
정렬, 최대값 및 최소값을 포함하여 열 값에 대한 추가 형식 지정
너비. innotop은 또한 다음으로 인한 충돌이 없는지 확인하기 위해 최종 오류 검사를 수행합니다.
정의되지 않은 값. innotop은 지정된 경우 캡션을 추가하고 테이블은 다음을 수행할 준비가 됩니다.
인쇄합니다.

위에서 언급한 것처럼 테이블이 피벗되면 수명 주기가 약간 다릅니다. 명확히 하기 위해,
테이블이 피벗되면 프로세스는 추출, 그룹화, 변환, 피벗, 필터, 정렬입니다.
만들다. 피벗되지 않은 경우 프로세스는 추출, 필터링, 정렬, 그룹화, 색상,
변형, 생성. 이 약간 복잡한 프로세스는 SQL에 잘 매핑되지는 않지만
피버팅은 상황을 매우 복잡하게 만듭니다. 대략적으로 말하면 필터링 및 정렬
예상한 대로 최종 결과를 얻기 위해 필요한 만큼 늦게 발생하지만, 최대한 빨리
효율성을 위해 가능합니다.

각 기본 제공 테이블은 아래에 설명되어 있습니다.

Adaptive_hash_index
InnoDB의 적응형 해시 인덱스에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

버퍼 풀
InnoDB의 버퍼 풀에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

cmd_summary
가중치 상태 변수를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

교착 상태
마지막으로 감지된 교착 상태에 의해 보류되고 대기된 잠금을 표시합니다. 데이터
출처: "DEADLOCK_LOCKS".

교착상태_트랜잭션
마지막으로 감지된 교착 상태와 관련된 트랜잭션을 표시합니다. 데이터 소스:
"DEADLOCK_TRANSACTIONS".

설명
EXPLAIN의 출력을 표시합니다. 데이터 소스: "설명".

file_io_misc
InnoDB의 파일 및 I/O 작업에 대한 데이터를 표시합니다. 데이터 소스:
"상태_변수".

fk_error
InnoDB의 마지막 외래키 오류에 대한 다양한 데이터를 표시합니다. 데이터 소스:
"상태_변수".

innodb_locks
InnoDB 잠금을 표시합니다. 데이터 소스: "INNODB_LOCKS".

innodb_transactions
InnoDB의 현재 트랜잭션에 대한 데이터를 표시합니다. 데이터 소스:
"INNODB_TRANSACTIONS".

insert_buffers
InnoDB의 삽입 버퍼에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

io_threads
InnoDB의 I/O 스레드에 대한 데이터를 표시합니다. 데이터 소스: "IO_THREADS".

로그_통계
InnoDB의 로깅 시스템에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

master_status
복제 마스터 상태를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

open_tables
열려 있는 테이블을 표시합니다. 데이터 소스: "OPEN_TABLES".

페이지_통계
InnoDB 페이지 통계를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

보류중인_io
InnoDB 보류 중인 I/O 작업을 표시합니다. 데이터 소스: "STATUS_VARIABLES".

프로세스 목록
현재 MySQL 프로세스(스레드/연결)를 표시합니다. 데이터 소스: "PROCESSLIST".

q_헤더
다양한 상태 값을 표시합니다. 데이터 소스: "STATUS_VARIABLES".

행_작업_기타
InnoDB의 행 작업에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

행_작업
InnoDB의 행 작업에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

세마포어
InnoDB의 세마포어 및 뮤텍스에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

슬레이브_io_상태
슬레이브 I/O 스레드에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

슬레이브_sql_상태
슬레이브 SQL 스레드에 대한 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

t_header
다양한 InnoDB 상태 값을 표시합니다. 데이터 소스: "STATUS_VARIABLES".

var_status
사용자가 구성할 수 있는 데이터를 표시합니다. 데이터 소스: "STATUS_VARIABLES".

wait_array
InnoDB의 OS 대기 배열에 대한 데이터를 표시합니다. 데이터 소스: "OS_WAIT_ARRAY".

COLUMNS
열은 테이블에 속합니다. '^' 키를 눌러 테이블의 열을 선택할 수 있습니다.
"TABLE EDITOR"를 시작하고 열을 선택하고 편집할 수 있습니다. 안에서 'e'를 누르면
테이블 편집기를 사용하면 열의 속성을 편집할 수 있습니다.

· hdr: 열 헤더. 이는 표의 첫 번째 행에 나타납니다.

· 단지: 정당화. '-'는 왼쪽 정렬을 의미하고 ''는 오른쪽 정렬을 의미합니다.
printf 형식 코드를 사용합니다(우연이 아님).

· dec: 소수점에 열을 추가로 정렬할지 여부입니다.

· num: 열이 숫자인지 여부. 이는 값이 정렬되는 방식(어휘적으로 또는
수치적으로).

· 라벨: 사용자에게 도움이 되는 대화 상자에 표시되는 열에 대한 작은 참고 사항입니다.
열을 선택하세요.

· src: innotop이 소스에서 열의 데이터를 추출하는 데 사용하는 표현식(참조:
"데이터 소스"). 표현식에 대한 자세한 내용은 "표현식"을 참조하세요.

· minw: 최소 표시 너비를 지정합니다. 이는 디스플레이를 안정화하는 데 도움이 됩니다.
데이터가 자주 변경되는 경우 읽기가 더 쉬워집니다.

· maxw: minw와 유사합니다.

· trans: 열 변환 목록입니다. "변환"을 참조하세요.

· agg: 집계 함수. "그룹화"를 참조하세요. 기본값은 "첫 번째"입니다.

· aggonly: 테이블에서 그룹화가 활성화된 경우에만 열을 표시할지 여부를 제어합니다.
("그룹화" 참조). 기본적으로 이는 비활성화되어 있습니다. 이는 열이 항상
그룹화 활성화 여부에 관계없이 기본적으로 표시됩니다. 컬럼의 Agonly가 설정된 경우
true인 경우 테이블에서 그룹화를 전환하면 열이 표시됩니다. 여러 열
"processlist" 및 "innodb_transactions"의 count 열과 같이 이러한 방식으로 설정됩니다.
따라서 그룹화가 활성화되지 않은 경우에는 개수가 표시되지 않지만 활성화된 경우에는 표시됩니다.

필터
필터는 표시에서 행을 제거합니다. 이는 SQL의 WHERE 절과 매우 유사하게 작동합니다.
innotop에는 비활성과 같은 관련 없는 정보를 제거하는 여러 내장 필터가 있습니다.
쿼리를 직접 정의할 수도 있습니다. innotop을 사용하면 빠른 필터를 만들 수도 있습니다.
이는 구성 파일에 저장되지 않으며 빠르게 확인하기 위한 쉬운 방법일 뿐입니다.
일부 행만.

모든 테이블에서 필터를 활성화하거나 비활성화할 수 있습니다. '%' 키를 누르세요(니모닉: %looks)
두 개의 원 사이에 선이 필터링되는 것과 같습니다.) 원하는 테이블을 선택하세요.
요청하면 필터링하세요. 그러면 가능한 필터 목록과 필터 목록이 표시됩니다.
현재 해당 테이블에 대해 활성화되어 있습니다. 적용하려는 필터 이름을 입력하고 누릅니다.
입력합니다.

사용자 정의 필터

존재하지 않는 이름을 입력하면 innotop이 필터를 생성하라는 메시지를 표시합니다.
Perl을 알면 필터를 쉽게 만들 수 있고, 모르더라도 어렵지 않습니다. 지금 무엇을 하고 있나요?
행을 표시해야 하는 경우 true를 반환하는 서브루틴을 만드는 중입니다. 행은
$set로 서브루틴에 전달된 해시 참조입니다.

예를 들어, processlist 테이블을 필터링하여 다음 쿼리만 표시한다고 가정해 보겠습니다.
XNUMX분 이상 뛰었습니다. 필터의 새 이름을 입력하고, 언제
서브루틴 본문을 묻는 메시지가 나타나면 TAB을 눌러 터미널의 자동 완성을 시작하세요.
"processlist" 테이블에 열 이름이 표시됩니다(innotop은 일반적으로
자동 완성 목록에 도움이 됩니다). '시간' 열을 필터링하려고 합니다. 다음을 입력하세요.
쿼리가 300분 이상 경과한 경우 true를 반환하려면 "$set->{time} > XNUMX" 텍스트를 입력하세요.
그게 다야.

즉, 입력 중인 코드는 암시적 컨텍스트로 둘러싸여 있습니다.
이렇게 :

하위 필터 {
내 ( $set ) = @_;
# 여기에 귀하의 코드가 있습니다
}

필터가 작동하지 않거나 다른 항목이 갑자기 다르게 작동하는 경우
필터에 오류가 발생했고 innotop이 자동으로 오류를 포착하고 있습니다. 노력하다
innotop이 대신 오류를 발생시키도록 "디버그"를 활성화합니다.

빠른 필터

innotop의 빠른 필터는 지속되지 않는 임시 필터를 만드는 지름길입니다.
innotop을 다시 시작하면. 퀵필터를 생성하려면 '/' 키를 누르세요. 이노탑은
열 이름과 필터 텍스트를 묻는 메시지가 표시됩니다. 다시 말하지만, 다음에서 자동 완성을 사용할 수 있습니다.
열 이름. 필터 텍스트는 "검색"하려는 텍스트일 수 있습니다. 을 위한
예를 들어 제품 테이블을 참조하는 쿼리에서 "processlist" 테이블을 필터링하려면
'/'를 입력한 다음 '정보 제품'을 입력하세요.

필터 텍스트는 실제로 Perl 정규식일 수 있지만 물론 리터럴입니다.
'product'와 같은 문자열은 정규식으로 잘 작동합니다.

뒤에서 innotop은 퀵 필터를 특별히 태그된 필터로 컴파일합니다.
그렇지 않으면 다른 필터와 같습니다. 구성 파일에 저장되지 않습니다.

퀵필터를 지우려면 '\' 키를 누르면 innotop이 퀵필터를 한꺼번에 지웁니다.

정렬
innotop에는 가장 중요한 행을 맨 위에 정렬하는 합리적인 기본 제공 기본값이 있습니다.
테이블. innotop의 다른 기능과 마찬가지로 테이블 정렬 방법을 사용자 정의할 수 있습니다.

정렬 대화 상자를 시작하려면 '^' 키를 사용하여 "TABLE EDITOR"를 시작하고 다음과 같은 경우 테이블을 선택하십시오.
필요하다면 's' 키를 누르세요. 정렬에 사용할 수 있는 열 목록이 표시됩니다.
표현식과 현재 정렬 표현식(있는 경우)입니다. 다음 항목에 해당하는 열 목록을 입력하세요.
정렬하고 Enter를 누르세요. 역순으로 정렬하려면 열 이름 앞에
빼기 기호. 예를 들어 a열을 기준으로 오름차순으로 정렬하려면 b열을 기준으로 정렬합니다.
내림차순으로 'a -b'를 입력합니다. 원하는 열 앞에 +를 명시적으로 추가할 수도 있습니다.
오름차순으로 정렬하지만 필수는 아닙니다.

일부 모드에는 이 대화 상자를 직접 열고 신속하게 정렬을 되돌릴 수 있도록 매핑된 키가 있습니다.
방향. 누르다 '?' 평소와 같이 어떤 모드에서 어떤 키가 매핑되는지 확인합니다.

그룹화
innotop은 행을 그룹화하거나 집계할 수 있습니다(용어는 서로 바꿔서 사용됨). 이것
SQL GROUP BY 절과 매우 유사합니다. 특정 열을 그룹화하도록 지정할 수 있습니다.
또는 아무것도 지정하지 않으면 전체 행 집합이 하나의 그룹으로 처리됩니다. 이것은
지금까지는 SQL과 매우 유사하지만 SQL과 달리 그룹화되지 않은 열을 선택할 수도 있습니다. 이노톱
실제로 모든 열을 집계합니다. 그룹화 함수를 명시적으로 지정하지 않으면
기본값은 '첫 번째'입니다. 이는 기본적으로 편의를 위한 것이므로 지정할 필요가 없습니다.
결과에 포함하려는 모든 열에 대한 집계 함수입니다.

집계를 전환하는 '=' 키를 사용하여 테이블의 그룹화를 빠르게 전환할 수 있습니다.
재산. 이 속성은 구성 파일에 유지되지 않습니다.

테이블을 그룹화하는 열은 group_by 속성에 지정됩니다. 언제
그룹화를 켜면 innotop은 group_by 열을 테이블의 가장 왼쪽에 배치합니다.
눈에 띄지 않아도 됩니다. 보이는 나머지 열은 다음에 나타납니다.
그 후에 주문하세요.

두 테이블에는 기본 group_by 목록과 내장된 개수 열이 있습니다: "processlist" 및
"innodb_transactions". 연결별, 상태별로 그룹화되어 있어 빠르게 확인하실 수 있습니다.
모니터링하고 있는 각 서버의 특정 상태에 있는 쿼리 또는 트랜잭션 수입니다.
시간 열은 합계로 집계됩니다. 다른 열은 기본 '첫 번째'로 남아 있습니다.
집합.

기본적으로 "S: 변수 및 상태" 모드에 표시된 테이블도 그룹화를 사용하므로 다음을 수행할 수 있습니다.
여러 서버에서 변수와 상태를 모니터링합니다. 기본 집계 함수는 다음과 같습니다.
이 모드는 '평균'입니다.

유효한 그룹화 함수는 %agg_funcs 해시에 정의되어 있습니다. 여기에는 다음이 포함됩니다

먼저
그룹의 첫 번째 요소를 반환합니다.

계산
정의되지 않은 요소를 포함하여 그룹의 요소 수를 반환합니다.
SQL의 COUNT(*).

avg 그룹에 정의된 요소의 평균을 반환합니다.

sum 그룹에 있는 요소의 합계를 반환합니다.

다음은 직장에서의 그룹화의 예입니다. 수백 개의 서버가 있는 매우 바쁜 서버가 있다고 가정해 보겠습니다.
열려 있는 연결 중 몇 개의 연결이 어떤 상태에 있는지 확인하려고 합니다. 사용
내장된 그룹화 규칙을 사용하려면 'Q'를 눌러 "Q: 쿼리 목록" 모드로 들어갈 수 있습니다. '='를 누르세요.
그룹화를 전환합니다(필요한 경우 메시지가 표시되면 "processlist" 테이블을 선택합니다).

이제 디스플레이는 다음과 같이 보일 수 있습니다.

쿼리 목록(? 도움말) localhost, 32:33, 0.11 QPS, 1 thd, 5.0.38-log

CXN Cmd Cnt ID 사용자 호스트 시간 쿼리
localhost Query 49 12933 webusr localhost 19:38 SELECT * FROM
localhost 전송 Da 23 2383 webusr localhost 12:43 SELECT col1,
localhost 절전 120 140 webusr localhost 5:18:12
localhost 통계 12 19213 webusr localhost 01:19 SELECT * FROM

사실 꽤 걱정스러운 사진이네요. 유휴 연결(수면)이 많이 있습니다.
쿼리를 실행하는 일부 연결(쿼리 및 데이터 전송). 괜찮아요, 하지만 당신은
또한 통계 상태에 많은 시간이 소요되며 총체적으로 XNUMX분 이상을 소비합니다. 즉,
쿼리 최적화 프로그램이 명령문을 최적화하는 데 정말 어려움을 겪고 있습니다. 뭔가가
잘못된; 쿼리를 최적화하는 데 일반적으로 밀리초가 걸립니다. 당신은 보지 못했을 수도 있습니다
연결을 전체적으로 살펴보지 않은 경우 이 패턴이 발생합니다. (이것은 꾸며낸 것입니다.
예를 들어 실제 생활에서도 이런 일이 일어날 수 있습니다.)

피벗
innotop은 더 컴팩트한 표시를 위해 테이블을 피벗할 수 있습니다.
스프레드시트(크로스탭이라고도 함). 테이블을 피벗하면 열이 행으로 만들어집니다. 추정하다
다음 테이블로 시작합니다.

푸 바
=== ===
1 3
2 4

피버팅 후 테이블은 다음과 같습니다.

이름 세트0 세트1
==== ==== ====
푸 1 2
바 3 4

합리적인 결과를 얻으려면 그룹화와 피버팅이 필요할 수 있습니다. 현재 이노톱
"S: 변수 및 상태" 모드에서 이 작업을 수행합니다.

COLORS
기본적으로 innotop은 행을 색상으로 강조 표시하므로 어떤 행이 어떤 행인지 한눈에 확인할 수 있습니다.
더 중요. 색상화 규칙을 사용자 정의하고 테이블에 자신만의 규칙을 추가할 수 있습니다.
'^' 키를 사용하여 테이블 편집기를 열고 필요한 경우 테이블을 선택한 다음 'o'를 눌러 엽니다.
색상 편집기 대화 상자.

색상 편집기 대화 상자에는 테이블에 적용된 규칙이 순서대로 표시됩니다.
평가되었습니다. 각 행은 각 규칙에 대해 평가되어 규칙이 행과 일치하는지 확인합니다. 만약에
그러면 행은 지정된 색상을 갖게 되며 추가 규칙은 평가되지 않습니다. 규칙
다음과 같이 보입니다.

상태 EQ 잠김 검정색 on_red
cmd eq 절전 흰색
유저 EQ 시스템 유저 화이트
cmd eq 흰색 연결
cmd eq Binlog 덤프 흰색
시간 > 600 레드
시간 > 120 노란색
시간 > 60 녹색
시간> 30 청록색

이는 "processlist" 테이블에 대한 기본 규칙 세트입니다. 우선 순위에 따라 이러한
규칙은 잠긴 쿼리를 빨간색 배경에 검은색으로 만들고 연결을 "회색으로 표시"합니다.
복제 및 휴면 쿼리, 실행 시 쿼리가 청록색에서 빨간색으로 바뀌도록 합니다.
더 길게.

(어떤 이유로 ANSI 색상 코드 "흰색"은 실제로 밝은 회색입니다. 터미널의
디스플레이는 다를 수 있습니다. 마음에 드는 색상을 찾기 위해 실험해 보세요.)

키 입력을 사용하여 규칙을 위아래로 이동하여 우선 순위를 다시 지정할 수 있습니다. 너
규칙을 삭제하고 새 규칙을 추가할 수도 있습니다. 새 규칙을 추가하면 innotop이 다음을 묻는 메시지를 표시합니다.
열, 비교 연산자, 열을 비교할 값,
규칙이 일치하는 경우 할당할 색상입니다. 자동 완성과 프롬프트가 각각 있습니다.
단계.

세 번째 단계의 값을 올바르게 인용해야 합니다. innotop은 인용을 시도하지 않습니다
값을 문자열로 처리해야 하는지 아니면 문자열로 처리해야 하는지 모르기 때문입니다.
숫자. 첫 번째 예와 같이 열을 문자열과 비교하려는 경우
위의 규칙에서는 'Locked'를 따옴표로 묶어 입력해야 합니다. 오류 메시지가 나타나는 경우
베어워드에 대해서는 아마도 무언가를 인용했어야 했을 것입니다.

표현
표현식은 innotop 작동 방식의 핵심이며 이를 통해 다음을 확장할 수 있습니다.
innotop 원하는대로. "TABLES"에 설명된 테이블 수명 주기를 떠올려 보세요. 표현식은
데이터 소스에서 값을 추출하여 행을 형성하는 가장 초기 단계에서 사용됩니다.

이는 각 열에 대해 서브루틴을 호출하고 이를 소스 데이터 세트에 전달하여 수행됩니다.
현재 값 세트 및 이전 값 세트. 이것들은 모두 필요하므로
서브루틴은 이 틱과 이전 틱의 차이 같은 것을 계산할 수 있습니다.
진드기.

세트에서 데이터를 추출하는 서브루틴은 표현식에서 컴파일됩니다. 이것
열을 채우기 위해 값의 이름을 지정하는 것보다 훨씬 더 많은 기능을 제공합니다.
필요한 모든 데이터에서 열의 값을 계산할 수 있지만
복잡하고 긴 Perl 코드를 작성해야 합니다.

innotop은 값 이름처럼 단순해 보일 수 있는 텍스트 문자열로 시작합니다.
본격적인 Perl 표현만큼 복잡합니다. 이는 각 '베어워드' 토큰을 살펴봅니다.
문자열을 검색하고 그것이 $set 해시의 키인지 여부를 결정합니다. 베어워드는
달러 기호나 곱슬 머리와 같은 코드적인 항목으로 아직 둘러싸여 있지 않은 인용되지 않은 값
괄호. innotop이 베어워드가 함수나 다른 유효한 Perl 코드가 아니라고 판단하면,
이를 해시 액세스로 변환합니다. 전체 문자열이 처리된 후 innotop이 컴파일됩니다.
다음과 같은 서브루틴:

하위 계산_열_값 {
내 ( $set, $cur, $pre ) = @_;
my $val = # 확장된 문자열이 여기에 표시됩니다.
반환 $val;
}

다음은 "Q: 쿼리 목록" 모드의 헤더 테이블 "q_header"에서 가져온 구체적인 예입니다.
이 표현식은 qps(초당 쿼리 수) 열 값을 계산합니다.
SHOW STATUS에 의해 반환된 값:

질문/가동시간_고용

innotop은 두 단어가 모두 베어워드라고 판단하고 이 표현을 다음으로 변환합니다.
다음 Perl 코드:

$set->{질문}/$set->{Uptime_hires}

서브루틴 코드의 나머지 부분으로 둘러싸여 있을 때 이는 실행 가능한 Perl입니다.
고해상도 초당 쿼리 값을 계산합니다.

서브루틴에 대한 인수의 이름은 $set, $cur 및 $pre입니다. 대부분의 경우 $set 및
$cur는 동일한 값이 됩니다. 그러나 "status_inc"가 설정된 경우 $cur는 동일하지 않습니다.
$set로, $set에는 이미 증분 차이인 값이 포함되어 있기 때문입니다.
$cur와 $pre 사이입니다.

innotop의 모든 열은 동일한 방식으로 컴파일된 서브루틴에 의해 계산됩니다. 있다
innotop의 내장 열과 사용자 정의 열 사이에는 차이가 없습니다. 이것은 유지한다
일관되고 예측 가능한 것.

변환
변환은 값이 렌더링되는 방식을 변경합니다. 예를 들어, 그들은 여러 가지를 취할 수 있습니다
초로 설정하고 H:M:S 형식으로 표시합니다. 다음 변환이 정의됩니다.

순화하다
큰 숫자에는 소수점 세 자리마다 쉼표를 추가합니다.

dulint_to_int
두 개의 부호 없는 정수를 허용하고 이를 단일 longlong으로 변환합니다. 이것은
두 개의 정수를 트랜잭션으로 사용하는 InnoDB의 특정 작업에 유용합니다.
예를 들어 식별자.

no_ctrl_char
값에서 인용된 제어 문자를 제거합니다. 이는 "문자 집합"의 영향을 받습니다.
구성 변수.

이 변환은 따옴표로 묶인 문자열 내에서만 작동합니다(예: SET에 대한 값).
UPDATE 문의 절입니다. UPDATE 문은 변경되지 않지만
문자 세트에 따라 인용된 문자열을 [BINARY] 또는 [TEXT]로 축소합니다.

퍼센트
숫자에 XNUMX를 곱하고 다음 형식으로 지정하여 숫자를 백분율로 변환합니다.
소수점 이하 "num_digits" 자리, 선택적으로 백분율 기호 추가(참조
"표시_퍼센트").

초_to_시간
초를 일+시:분:초 형식의 시간으로 지정합니다.

세트_정밀도
소수점 이하 "num_digits" 자릿수로 숫자 형식을 지정합니다.

단축
1024(k/M/G/T) 단위 및 "num_digits" 자릿수로 숫자 형식을 지정합니다.
소수점 뒤.

EDITOR
innotop 테이블 편집기를 사용하면 키 입력으로 테이블을 사용자 정의할 수 있습니다. 당신은 테이블을 시작
'^' 키를 사용하여 편집기를 엽니다. 화면에 테이블이 두 개 이상 있으면 메시지가 표시됩니다.
그 중 하나를 선택합니다. 그렇게 하면 innotop이 다음과 같은 내용을 표시합니다.

버퍼 풀에 대한 테이블 정의를 편집하는 중입니다. 누르다 ? 도움이 필요하면 q 종료하세요.

이름 hdr 라벨 src
cxn cxn이 사용되는 CXN 연결
buf_pool_size 크기 버퍼 풀 크기 IB_bp_buf_poo
buf_free Free Bufs b에서 사용 가능한 버퍼 IB_bp_buf_fre
Pages_total 페이지 총 페이지 수 IB_bp_pages_t
Pages_modified 더티 페이지 수정된 페이지(더티 IB_bp_pages_m
buf_pool_hit_rate 적중률 버퍼 풀 적중률 IB_bp_buf_poo
total_mem_alloc 메모리 총 메모리 할당 IB_bp_total_m
add_pool_alloc 추가 풀 추가 풀 할당 IB_bp_add_poo

첫 번째 줄에는 편집 중인 테이블이 표시되고 '?'를 누르라는 알림이 다시 표시됩니다. 한 동안
키 매핑 목록. 나머지는 테이블 열을 표 형식으로 표현한 것입니다.
왜냐하면 그것이 당신이 편집하려고 하는 것일 가능성이 높기 때문입니다. 그러나 그 이상을 편집할 수 있습니다.
테이블의 열; 이 화면에서는 필터 편집기, 색상 규칙 편집기 등을 시작할 수 있습니다.

디스플레이의 각 행에는 편집 중인 테이블의 단일 열이 표시됩니다.
헤더 및 소스 표현식과 같은 몇 가지 속성("표현식" 참조)

키 매핑은 다른 많은 곳과 마찬가지로 Vim 스타일입니다. 'j'와 'k'를 누르면
위 또는 아래를 강조 표시합니다. 그런 다음 강조 표시된 열을 (d)삭제하거나 (e)편집할 수 있습니다. 당신은 할 수 있습니다
또한 (a) 테이블에 열을 추가합니다. 이것은 실제로 이미 열 중 하나를 활성화합니다.
테이블에 대해 정의되었습니다. 사용 가능한 열 중에서 선택하라는 메시지가 표시되지만 선택되지는 않습니다.
현재 표시됩니다. 마지막으로 '+' 및 '-' 키를 사용하여 열의 순서를 변경할 수 있습니다.

테이블 편집기를 사용하여 열을 편집하는 것 외에도 다른 작업을 편집할 수도 있습니다.
테이블의 정렬 표현식 및 그룹화 기준 표현식과 같은 속성. 누르다 '?' 보다
물론 전체 목록입니다.

단순히 활성화하는 것이 아니라 실제로 사용자 정의하고 자신만의 열을 생성하려는 경우
현재 표시되지 않은 내장 키를 누르고 (n)new 키를 누르면 innotop이
필요한 정보를 묻는 메시지를 표시합니다.

· 열 이름: 재미있는 문자가 없는 단어여야 합니다.
문자, 숫자, 밑줄.

· 열 머리글: 열 상단에 표시되는 레이블입니다.
테이블 헤더. 여기에는 공백과 재미있는 문자가 포함될 수 있지만 그렇게 하지 않도록 주의하세요.
화면이 너무 넓어 공간을 낭비합니다.

· 열의 데이터 소스: 열의 어떤 데이터를 결정하는 표현식입니다.
소스("TABLES" 참조) innotop이 열에 배치됩니다. 이것은 단지 이름 일 수 있습니다
소스의 항목이거나 에 설명된 대로 더 복잡한 표현식일 수 있습니다.
"표현".

필수 데이터를 입력하고 나면 테이블에 새 열이 생깁니다. 없다
이 열과 내장된 열의 차이점 그것은 모두 동일한 속성을 가질 수 있습니다
그리고 행동. innotop은 열의 정의를 구성 파일에 기록하므로
이는 세션 전반에 걸쳐 지속됩니다.

예는 다음과 같습니다. 슬레이브가 재시도한 횟수를 추적하고 싶다고 가정해 보겠습니다.
업무. MySQL 매뉴얼에 따르면 Slave_retried_transactions 상태
변수는 해당 데이터를 제공합니다: "시작 이후에
복제 슬레이브 SQL 스레드가 트랜잭션을 재시도했습니다. 이 변수는 버전에 추가되었습니다
5.0.4." "slave_sql_status" 테이블에 추가하기에 적합합니다.

컬럼을 추가하려면 'M' 키를 눌러 복제 모니터링 모드로 전환한 후
테이블 편집기를 시작하려면 '^' 키를 누르세요. 메시지가 표시되면 Slave_sql_status를 선택합니다.
테이블을 선택한 다음 'n'을 눌러 열을 만듭니다. 열 이름 'Retries'로 'retries'를 입력합니다.
열 헤더로, 'Slave_retried_transactions'를 소스로 사용합니다. 이제 칼럼은
생성되고 테이블 편집기 화면이 다시 표시됩니다. 테이블 편집기를 종료하려면 'q'를 누르고,
그러면 표 끝에 열이 표시됩니다.

변하기 쉬운 SETS


변수 세트는 "S: Variables & Status" 모드에서 사용되어 무엇을 보다 쉽게 ​​정의할 수 있습니다.
모니터링하려는 변수. 무대 뒤에서 그들은 다음 목록으로 정리됩니다.
식으로 변환한 다음 열 목록에 추가하여 모든 표현식의 열처럼 처리될 수 있도록 합니다.
데이터 추출 및 변환 측면에서 다른 테이블. 그러나 당신은 보호받고 있습니다
지루한 세부 사항을 매우 자연스럽게 느낄 수 있는 구문으로 정리합니다: SQL SELECT
명부.

변수 세트 및 실제로 전체 S 모드의 데이터 소스는 다음의 조합입니다.
상태 표시, 변수 표시 및 INNODB 상태 표시. 당신이 거대한 테이블을 가지고 있다고 상상해보십시오.
해당 명령문에서 반환된 변수당 하나의 열이 있습니다. 그게 데이터 소스야
변수 세트. 이제 예상한 대로 이 데이터 소스를 쿼리할 수 있습니다. 예를 들어:

질문, 가동 시간, 질문/QPS로서의 가동 시간

뒤에서 innotop은 해당 변수 세트를 세 가지 표현식으로 분할하고 컴파일합니다.
이를 테이블 정의로 변환한 다음 평소대로 추출합니다. 이것은
"변수 세트" 또는 "모니터링하려는 변수 목록"입니다.

innotop을 사용하면 변수 세트의 이름을 지정하고 저장할 수 있으며 이를 구성에 쓸 수 있습니다.
파일. 'c' 키를 사용하여 보려는 변수 세트를 선택하거나
'>' 및 '<' 키를 사용하여 다음 및 이전 세트를 설정합니다. 내장된 변수 세트가 많이 있습니다.
또한, 이는 여러분이 자신만의 것을 만들기 위한 좋은 시작이 될 것입니다. 편집하려면 'e'를 누르세요.
현재 변수 세트를 확인하거나 정의된 방법을 확인하세요. 새로운 것을 만들려면 다음을 누르세요.
'c'를 누르고 이름을 입력하세요.

"변환"에 나열된 기능 중 일부를 사용하여 형식을 지정할 수 있습니다.
결과. 특히 "set_precision"은 숫자 수를 제한하는 데 유용할 때가 많습니다.
보다. 위의 예를 확장하면 다음과 같습니다.

QPS로 질문, 가동 시간, set_precision(질문/가동 시간)

사실 아직 좀 더 작업이 필요합니다. "간격"이 XNUMX보다 작은 경우
둘째, 이 모드에서는 가동 시간이 다음과 같이 증분되므로 XNUMX으로 나눌 수 있습니다.
기본. 대신 Uptime_hires를 사용하세요.

QPS로 질문, 가동 시간, set_precision(질문/Uptime_hires)

이 예는 간단하지만 원하는 변수를 선택하는 것이 얼마나 쉬운지 보여줍니다.
감시 장치.

PLUGINS


innotop에는 확장하거나 수정할 수 있는 간단하지만 강력한 플러그인 메커니즘이 있습니다.
기존 기능을 제거하고 새로운 기능을 추가합니다. innotop의 플러그인 기능은 다음과 같습니다.
이벤트 기반: 플러그인은 이벤트가 발생할 때 호출되도록 스스로 등록합니다. 그러면 그들은
이벤트에 영향을 미칠 수 있는 기회.

innotop 플러그인은 innotop의 "plugin_dir" 디렉토리에 있는 Perl 모듈입니다. 유닉스의 경우
시스템에서는 실제 파일을 넣는 대신 모듈에 대한 심볼릭 링크를 넣을 수 있습니다.
거기. innotop은 자동으로 파일을 검색합니다. 해당 항목이 있는 경우
"plugins" 구성 파일 섹션에서 innotop은 플러그인을 로드하고 활성화합니다.

모듈은 innotop의 플러그인 인터페이스를 준수해야 합니다. 추가적으로 소스코드는
모듈은 innotop이 파일을 검사하고 결정할 수 있는 방식으로 작성되어야 합니다.
패키지 이름과 설명.

묶음 출처 컨벤션
innotop은 플러그인 모듈의 소스를 검사하여 Perl 패키지 이름을 결정합니다. 그것은 본다
"package Foo;" 형식의 줄에 대해 발견되면 플러그인의 패키지 이름을 고려하여
푸야. 물론 패키지 이름은 유효한 Perl 패키지 이름일 수 있습니다.
세미콜론 등.

또한 플러그인 편집기를 더욱 인간적으로 만들기 위해 소스 코드에서 설명을 찾습니다.
친숙한. 설명은 "# 설명: Foo" 형식의 주석 라인입니다. 여기서 "Foo"는
innotop이 플러그인 설명으로 간주할 텍스트입니다.

플러그인 인터페이스
innotop 플러그인 인터페이스는 매우 간단합니다. innotop은 플러그인이 객체일 것으로 기대합니다.
지향 모듈에서는 특정 메서드를 호출할 수 있습니다. 방법은 다음과 같습니다

신규(%변수)
이것은 플러그인의 생성자입니다. innotop 변수의 해시가 전달됩니다.
조작할 수 있습니다("플러그인 변수" 참조). 새로 생성된 참조를 반환해야 합니다.
플러그인 객체를 생성했습니다.

구성 시 innotop은 일반 구성만 로드하고 생성했습니다.
기본 내장 변수와 기본 내용(상당히 많습니다).
따라서 프로그램의 상태는 innotop 소스 코드와 똑같습니다.
구성 파일의 "일반" 섹션에 있는 구성 변수입니다.

플러그인이 변수를 조작하면 공유되는 전역 데이터가 변경됩니다.
innotop 및 모든 플러그인. 플러그인은 목록에 나열된 순서대로 로드됩니다.
구성 파일. 귀하의 플러그인은 다른 플러그인 이전이나 이후에 로드될 수 있으므로
플러그인이 데이터를 수정하는 경우 플러그인 간의 충돌이나 상호 작용 가능성
플러그인을 사용하거나 수정합니다.

Register_for_events()
이 메소드는 플러그인이 관심을 갖는 이벤트 목록을 반환해야 합니다(있는 경우).
정의된 이벤트는 "플러그인 이벤트"를 참조하세요. 플러그인이 그렇지 않은 이벤트를 반환하는 경우
정의되면 이벤트가 무시됩니다.

이벤트 핸들러
플러그인은 각 이벤트와 동일한 이름의 메소드를 구현해야 합니다.
등기. 즉, 플러그인이 qw(foo bar)를 반환하는 경우
Register_for_events(), 그것은 있어야합니다 foo ()술집() 행동 양식. 이러한 방법은
이벤트에 대한 콜백. 각 이벤트에 대한 자세한 내용은 "플러그인 이벤트"를 참조하세요.

플러그인 변수
플러그인의 생성자는 조작할 수 있는 innotop 변수의 해시를 전달받습니다.
플러그인 개체가 나중에 사용할 수 있도록 복사본을 저장하는 것이 좋습니다. 그만큼
변수는 innotop 변수 %pluggable_vars에 정의되어 있으며 다음과 같습니다.

action_for
키 매핑의 해시 참조입니다. innotop의 글로벌 단축키입니다.

agg_funcs
그룹화에 사용할 수 있는 함수의 해시 참조입니다. "그룹화"를 참조하세요.

설정
전역 구성 해시입니다.

연결
연결 사양의 해시 참조입니다. 이것은 단지 방법에 대한 사양입니다.
서버에 연결합니다.

dbhs
innotop 데이터베이스 연결의 해시 참조입니다. 이는 실제 DBI 연결 개체입니다.

필터
테이블 행에 적용된 필터의 해시 참조입니다. 자세한 내용은 "필터"를 참조하세요.

모드
모드의 해시 참조입니다. 자세한 내용은 "모드"를 참조하세요.

서버 그룹
서버 그룹의 해시 참조입니다. "서버 그룹"을 참조하십시오.

tbl_meta
테이블당 하나의 항목이 있는 innotop 테이블 메타데이터의 해시 참조(자세한 내용은 "TABLES" 참조)
추가 정보).

trans_funcs
변환 함수의 해시 참조입니다. "변환"을 참조하세요.

var_sets
변수 세트의 해시 참조입니다. "변수 세트"를 참조하십시오.

플러그인 이벤트
각 이벤트는 innotop 소스 코드 어딘가에 정의되어 있습니다. innotop이 해당 코드를 실행하면,
관심을 표현한 각 플러그인에 대해 콜백 함수를 실행합니다.
이벤트. innotop은 각 이벤트에 대해 일부 데이터를 전달합니다. 이벤트는
%event_listener_for 변수이며 다음과 같습니다.

extract_values($set, $cur, $pre, $tbl)
이 이벤트는 데이터 소스에서 값을 추출하는 함수 내에서 발생합니다. 그만큼
인수는 값 집합, 현재 값, 이전 값 및
테이블 이름.

set_to_tbl
이벤트는 이 서브루틴의 여러 위치에서 정의됩니다.
hashref의 arrayref를 화면에 인쇄할 수 있는 행의 arrayref로 변환합니다.
이벤트는 모두 동일한 데이터(행의 arrayref 및 테이블 이름)를 전달합니다.
만들어진. 이벤트는 set_to_tbl_pre_filter입니다.
set_to_tbl_pre_sort, set_to_tbl_pre_group, set_to_tbl_pre_colorize,
set_to_tbl_pre_transform, set_to_tbl_pre_pivot, set_to_tbl_pre_create,
set_to_tbl_post_create.

draw_screen($lines)
이 이벤트는 화면에 줄을 인쇄하는 서브루틴 내에서 발생합니다. $lines
문자열의 arrayref입니다.

단순, 간단, 편리 플러그인
플러그인 기능을 설명하는 가장 쉬운 방법은 아마도 간단한 예를 사용하는 것입니다.
다음 모듈은 모든 테이블의 시작 부분에 열을 추가하고 해당 값을 다음과 같이 설정합니다.
1.

엄격한 사용;
경고 사용 FATAL => 'all';

패키지 Innotop::플러그인::예제;
# 설명: 모든 테이블에 'example' 열을 추가합니다.

하위 새 {
내 ( $class, %vars ) = @_;
# innotop의 변수에 대한 참조를 $self에 저장합니다.
내 $self = 축복 { %vars }, $class;

# 예제 열 디자인
내 $col = {
hdr => '예',
그냥 => '',
0월 => XNUMX,
숫자 => 1,
라벨 => '예',
src => 'example', # 데이터 소스의 이 열에서 데이터를 가져옵니다.
tbl => '',
트랜스 => [],
};

# 모든 테이블에 열을 추가합니다.
내 $tbl_meta = $vars{tbl_meta};
foreach 내 $tbl ( 값 %$tbl_meta ) {
# 정의된 열 목록에 열을 추가합니다.
$tbl->{cols}->{예} = $col;
# 표시되는 열 목록에 해당 열을 추가합니다.
unshift @{$tbl->{visible}}, '예';
}

# 객체에 대한 참조를 반환해야 합니다.
$self를 반환합니다.
}

# 데이터 세트가 테이블로 렌더링될 때 호출되고 싶습니다.
하위 등록_for_events {
내 ( $self ) = @_;
return qw(set_to_tbl_pre_filter);
}

# 이 메소드는 이벤트가 발생할 때 호출됩니다.
하위 set_to_tbl_pre_filter {
내 ( $self, $rows, $tbl ) = @_;
# 예제 열의 데이터 소스를 값 1로 설정합니다.
내 $row를 foreach ( @$rows ) {
$row->{예제} = 1;
}
}

1;

플러그인 편집자
플러그인 편집기를 사용하면 innotop이 발견한 플러그인을 보고 활성화 또는 비활성화할 수 있습니다.
그들을. 모든 모드에서 구성 편집기를 시작하려면 $를 눌러 편집기를 시작하십시오.
플러그인 편집기를 시작하려면 'p' 키를 누르세요. innotop 플러그인 목록이 표시됩니다.
발견되었습니다. 'j', 'k' 키를 이용하여 하이라이트를 원하는 위치로 이동시킬 수 있으며,
그런 다음 * 키를 눌러 활성화 또는 비활성화를 전환합니다. 편집기를 종료하고 innotop을 다시 시작하세요.
변경 사항이 적용됩니다.

SQL 성명서


innotop은 제한된 SQL 문 세트를 사용하여 MySQL에서 표시할 데이터를 검색합니다. 그만큼
명령문은 실행되는 서버 버전에 따라 사용자 정의됩니다.
예를 들어 MySQL 5 이상에서는 INNODB_STATUS가 "SHOW ENGINE INNODB STATUS"를 실행합니다.
이전 버전에서는 "SHOW INNODB STATUS"를 실행합니다. 진술은 다음과 같습니다
다음과 같습니다 :

명령문 SQL이 실행됨
=================== ===============================
INNODB_STATUS 쇼 [엔진] INNODB 상태
KILL_CONNECTION 킬
KILL_QUERY 킬 쿼리
OPEN_TABLES는 열린 테이블을 표시합니다.
프로세스 목록 전체 프로세스 목록 표시
SHOW_MASTER_LOGS 마스터 로그 표시
SHOW_MASTER_STATUS 마스터 상태 표시
SHOW_SLAVE_STATUS 슬레이브 상태 표시
SHOW_STATUS 쇼 [글로벌] 상태
SHOW_VARIABLES 쇼 [전역] 변수

데이터 SOURCES


innotop이 값을 추출하여 테이블("EXPRESSIONS" 및 "TABLES" 참조)을 생성할 때마다
특정 데이터 소스에서 그렇게 합니다. 주로 추출된 복잡한 데이터로 인해
SHOW INNODB STATUS, 이것은 약간 지저분합니다. SHOW INNODB STATUS에는 다음이 혼합되어 있습니다.
중첩된 데이터 세트를 형성하는 단일 값 및 반복 값.

innotop은 MySQL에서 데이터를 가져올 때마다 각 세트에 cxn과 XNUMX개의 추가 비트를 추가합니다.
가동시간_고용. cxn은 데이터가 제공된 연결의 이름입니다. 가동시간_고용
서버 가동 시간 상태 변수의 고해상도 버전입니다.
"간격" 설정은 XNUMX초 미만입니다.

데이터가 추출되는 데이터 소스의 종류는 다음과 같습니다.

STATUS_변수
이는 대부분의 종류의 데이터가 속하는 가장 광범위한 범주입니다. 그것은 다음으로 시작한다
SHOW STATUS와 SHOW VARIABLES의 조합이지만 다른 소스가 포함될 수 있습니다.
필요에 따라 SHOW MASTER STATUS 및 SHOW SLAVE STATUS뿐만 아니라
SHOW INNODB STATUS의 반복되지 않는 값.

DEADLOCK_LOCKS
이 데이터는 LATEST DETECTED DEADLOCK의 트랜잭션 목록에서 추출됩니다.
SHOW INNODB STATUS 섹션. 두 가지 수준 깊이로 중첩되어 있습니다: 트랜잭션,
자물쇠.

교착 상태_트랜잭션
이 데이터는 SHOW의 LATEST DETECTED DEADLOCK 섹션에 있는 트랜잭션 목록에서 가져온 것입니다.
INNODB 상태. 한 수준 깊이로 중첩되어 있습니다.

설명
이 데이터는 EXPLAIN이 반환한 결과 집합에서 가져온 것입니다.

INNODB_트랜잭션
이 데이터는 SHOW INNODB STATUS의 TRANSACTIONS 섹션에서 가져온 것입니다.

IO_THREADS
이 데이터는 SHOW INNODB의 FILE I/O 섹션에 있는 스레드 목록에서 가져온 것입니다.
상태.

INNODB_LOCKS
이 데이터는 SHOW INNODB STATUS의 TRANSACTIONS 섹션에서 가져온 것이며 두 개의 중첩되어 있습니다.
수준이 깊다.

OPEN_TABLES
이 데이터는 SHOW OPEN TABLES에서 가져온 것입니다.

프로세스 목록
이 데이터는 SHOW FULL PROCESSLIST에서 가져온 것입니다.

OS_WAIT_ARRAY
이 데이터는 SHOW INNODB STATUS의 SEMAPHORES 섹션에서 가져온 것이며 한 수준에 중첩되어 있습니다.
깊은. 다음과 같은 줄에서 나옵니다.

--스레드 1568861104가 btr0cur.c 라인 424에서 기다렸습니다 ....

MYSQL 특권


· 많은 기능에 대해 SUPER 권한을 가진 사용자로 MySQL에 연결해야 합니다.
기능.

· SUPER 권한이 없어도 일부 기능을 실행할 수는 있지만 실행할 수는 없습니다.
반드시 동일한 데이터를 모두 확인하세요.

· Q 모드에서 현재 실행 중인 쿼리 목록을 보려면 PROCESS 권한이 필요합니다.

· 슬레이브 서버를 시작하고 중지하려면 특별한 권한이 필요합니다.

· 필요한 경우 교착 상태 테이블을 생성하고 삭제하려면 적절한 권한이 필요합니다(참조
"서버 연결").

시스템 요구 사항


물론 innotop을 실행하려면 Perl이 필요합니다. 또한 몇 가지 Perl 모듈이 필요합니다: DBI,
DBD::mysql, Term::ReadKey 및 Time::HiRes. 이는 대부분의 Perl에 포함되어야 합니다.
하지만 그렇지 않은 경우에는 귀하와 함께 배포된 버전을 사용하는 것이 좋습니다.
CPAN이 아닌 운영 체제 또는 Perl 배포판. Term::ReadKey는 특히
CPAN에서 설치하면 문제가 발생하는 것으로 알려져 있습니다.

Term::ANSIColor가 있는 경우 innotop은 이를 사용하여 헤더 형식을 보다 읽기 쉽고
컴팩트하게. (Microsoft Windows에서는 터미널용 Win32::Console::ANSI도 필요합니다.
존중할 형식 코드). Term::ReadLine을 설치하는 경우 가급적이면
Term::ReadLine::Gnu를 사용하면 멋진 자동 완성 지원을 받을 수 있습니다.

나는 Gentoo GNU/Linux, Debian, Ubuntu에서 innotop을 실행하고 있으며 사람들로부터 피드백을 받았습니다.
Red Hat, CentOS, Solaris 및 Mac OSX에서 성공적으로 실행되었습니다. 아무런 이유도 없어
다른 UNIX 계열 운영 체제에서는 작동하지 않는 이유는 확실하지 않습니다. 또한
Windows에서는 ActivePerl을 사용하여 문제 없이 실행됩니다.

innotop은 MySQL 버전 3.23.58, 4.0.27, 4.1.0, 4.1.22, 5.0.26, 5.1.15에서 사용되었습니다.
5.2.3. 제대로 실행되지 않으면 보고해야 할 버그입니다.

onworks.net 서비스를 사용하여 온라인으로 innotop을 사용하세요.


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad