mytop - a top clone for MySQL
요구사항: Perl, DBI, DBD Mysql Module, Term::ReadKey
mytop은 기본적으로 show status와 show processlist를 CLI로 보여주는 프로그램입니다.
간단하게 인스톨 하는법
★ CentOS 5.3(32bit)에서 인스톨 했을때는 밑에예제를 사용했음
yum --enablerepo=rpmforge install mytop
안될시는 밑에 순번대로 해 주시면 됩니다.
============================================================
★ CentOS 5.3(64bit)에서 인스톨 했을때는 밑에예제를 사용했음
The mytop program requires two Perl modules. So let's make sure those are installed first. The perl-DBI package is usually installed as a dependency already. Check if it's there:
# yum list installed *DBI
Loaded plugins: rhnplugin, security
Installed Packages
perl-DBI.x86_64 1.52-2.el5 installed
Install TermReadKey module, also known as Term::ReadKey. I am installing this from the EPEL repository, which I regard as very safe (in terms of compatibility, longevity and maintenance). If you're not set up with EPEL, you can do
# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpmAnyway, installing Term::ReadKey from EPEL:
# yum install perl-TermReadKey
Loaded plugins: rhnplugin, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package perl-TermReadKey.x86_64 0:2.30-4.el5 set to be updated
--> Finished Dependency Resolution
...
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-TermReadKey 1/1Installed:
perl-TermReadKey.x86_64 0:2.30-4.el5
perl-TermReadKey.x86_64 0:2.30-4.el5
Now it's time to get mytop.
# wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz
# tar zxvf mytop-1.6.tar.gz
# cd mytop-1.6
# perl Makefile.PL
Writing Makefile for mytop# make test
cp mytop blib/script/mytop
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mytop
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..1
ok 1
cp mytop blib/script/mytop
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mytop
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..1
ok 1
# make
Manifying blib/man1/mytop.1
Manifying blib/man1/mytop.1
# make install
Installing /usr/share/man/man1/mytop.1
Installing /usr/bin/mytop
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/mytop/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod
# which mytopInstalling /usr/share/man/man1/mytop.1
Installing /usr/bin/mytop
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/mytop/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod
/usr/bin/mytop
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
여기부터는 32bit에서 또 다른 방법
--------------------------------------
1. DBI Install
# tar xvzf DBI-1.37.tar.gz
# cd DBI-1.37
# perl Makefile.PL
# make
# make install
--------------------------------------
# cd DBI-1.37
# perl Makefile.PL
# make
# make install
--------------------------------------
2. DBD-Mysql Install
# tar xvzf DBD-Mysql-2.9003.tar.gz
# cd DBD-Mysql-2.9003
# perl Makefile.PL
# make
# make install
--------------------------------------
# cd DBD-Mysql-2.9003
# perl Makefile.PL
# make
# make install
--------------------------------------
3. Term::ReadKey Install
# tar xvzf TermReadKey-2.21.tar.gz
# cd TermReadKey-2.21
# perl Makefile.PL
# make
# make install
--------------------------------------
# cd TermReadKey-2.21
# perl Makefile.PL
# make
# make install
--------------------------------------
4. mytop Install
# tar xvzf mytop-1.2.tar.gz
# cd mytop-1.2
# perl Makefile.PL
# make
# make install
-------------------------------------
# cd mytop-1.2
# perl Makefile.PL
# make
# make install
-------------------------------------
mytop을 편리하게 사용할려면 홈디렉터리에 다음 파일을 만들어두면 좋습니다.
# vi .mytop
-------------------------------------
user=root
pass=password 반드시 필요함
-------------------------------------
host=localhost
db=test
delay=3 사용자 정의함
-------------------------------------
-------------------------------------
user=root
pass=password 반드시 필요함
-------------------------------------
host=localhost
db=test
delay=3 사용자 정의함
-------------------------------------
----------<옵션 키>---------------
d - 특정 디비에 대해서만 보는 경우
f - 지정된 쓰레드가 실행중인 쿼리를 모두 출력
h - 간단히 보기
i - 쉬고있는 쓰레드는 리스트에서 제외
k - 쓰레드 연결을 종료
m - 초당 실행 쿼리수 보기
p - 화면 정지
q - mytop 종료
r - FLUSH STATUS 실행
s - 화면 갱신 시간 설정
u - 특정 사용자의 쓰레드만 보기
---------------------------------------
mytop http://jeremy.zawodny.com/mysql/mytop/
DBI http://search.cpan.org/
DBD-Mysql http://search.cpan.org/
Term::ReadKey http://search.cpan.org/
※실행화면
# mytop -u root -p ?????? (???는 mysql DB root PW)
d - 특정 디비에 대해서만 보는 경우
f - 지정된 쓰레드가 실행중인 쿼리를 모두 출력
h - 간단히 보기
i - 쉬고있는 쓰레드는 리스트에서 제외
k - 쓰레드 연결을 종료
m - 초당 실행 쿼리수 보기
p - 화면 정지
q - mytop 종료
r - FLUSH STATUS 실행
s - 화면 갱신 시간 설정
u - 특정 사용자의 쓰레드만 보기
---------------------------------------
mytop http://jeremy.zawodny.com/mysql/mytop/
DBI http://search.cpan.org/
DBD-Mysql http://search.cpan.org/
Term::ReadKey http://search.cpan.org/
※실행화면
# mytop -u root -p ?????? (???는 mysql DB root PW)

부분별 의미를 알아보자.
============================= ========================== =======================
표 시 의 미 관련 show status 변수명
============================== ========================== =======================
MySQL on localhost (3.23.49a) 호스트명과 MySQL 버전
------------------------------ -------------------------- -----------------------
up 11+23:04:23 [17:17:46] MySQL uptime과 현재 시간 Uptime
============================== ========================== =======================
Queries: 947.4k uptime중의 총 쿼리 개수 Questions
qps: 1 Slow: 0.0 초당 쿼리 수 평균과 Questions
slow 쿼리 수 Slow_queries
※ Slow_queries이란 MySQL 서버 설정값인 long_query_time(default는 10초)보다 더 긴
시간동안 질의된 쿼리 수를 의미한다.
------------------------------ -------------------------- -----------------------
Se/In/Up/De(%): 70/21/04/00 총 쿼리 중 각각 Select, Com_select
Insert+Replace, Com_insert, Com_replace
Update, Com_update
Delete 비율 Com_delete
============================== ========================== =======================
qps now: 2 Slow qps: 0.0 현재 쿼리 수와 Questions
현재 slow 쿼리 수 Slow_queries
※ Slow qps가 자주 나오면 SQL문 최적화가 필요
------------------------------ -------------------------- -----------------------
Threads: 11 ( 3/ 0) 11은 쓰레드 총 개수 Threads_connected
3은 동작중인 쓰레드 Threads_running
0은 캐시된 쓰레드 Threads_cached
------------------------------ -------------------------- -----------------------
62/12/00/00 각각 현재의 Select,.. 비율 Com_select, ...
============================== ========================== =======================
Key Efficiency: 100.0% Key 캐시 히트율 Key_reads, Key_read_requests
※ Key Efficiency 높을 수록 키 버퍼에서 읽어들인 것임.
수치가 99%보다 낮다면 key_buffer_size 조정 필요
------------------------------ -------------------------- -----------------------
Bps in/out: 77.0/537.7 초당 주고받은 평균 bytes Bytes_received
Bytes_send
------------------------------ -------------------------- -----------------------
Now in/out: 8.4/569.6 현재 주고받은 bytes Bytes_received
Bytes_send
============================== ========================== =======================
다양한 실행 옵셥은 man페이지를 통해 확인하기 바란다.
또한 실행중 사용하는 키는 ? 를 누르면 도움말을 볼 수 있다.
c(command별 사용 비율과 건수), p(일시 정지), s(화면 업데이트간격 변경),
q(종료), i(sleeping 상태의 쓰레드 표시 여부 변경) 등 다양하다.
c를 눌러 command별(select, insert, update 등) 사용 비율과 건수를 보자.

3) ~/.mytop 환경 설정
mytop -u ??? -p ??? 처럼 실행했을 땐 패스워드 유출 가능성도 있고 매번 실행하기도
불편할 수 있다. 이럴 땐 홈디렉토리의 ~/.mytop에 설정해두면 된다.
-------------------------------------------
user=root
pass=???????
host=localhost
db=test
port=3306
socket=
-------------------------------------------
mytop -u ??? -p ??? 처럼 실행했을 땐 패스워드 유출 가능성도 있고 매번 실행하기도
불편할 수 있다. 이럴 땐 홈디렉토리의 ~/.mytop에 설정해두면 된다.
-------------------------------------------
user=root
pass=???????
host=localhost
db=test
port=3306
socket=
-------------------------------------------

댓글목록
등록된 댓글이 없습니다.