본문 바로가기

Linux/Linux Shell Script

Linux Shell Script - 서버 부하 체크 및 MySQL 부하 체크

소소하게 적기 위한 카테고리!?ㅎ

 

MySQL의 부하원인을 찾기에는 정말 애매애매 할 때가 많습니다.

그래서 crontab을 통해서 1분단위로 부하체크 하는 shell을 간단히 짜보았는데요.

 

#!/bin/sh

### Made in Chung

############################# Base Setting

HOME_DIR="/raid/usr/local/mysql"
LOG_DIR="/root/uptime_logs"
CHUNG_DATE=`date +'%Y%m%d'`
LOG_FILE_NAME=uptime_$CHUNG_DATE.log

 

##############################
master_password=`cat $HOME_DIR/data/master.info | head -n 6 | tail -n 1`
`echo "date : \`date +'%Y-%m-%d %H:%M:%S'\`"  >> $LOG_DIR/$LOG_FILE_NAME`
`echo "\`$HOME_DIR/bin/mysql -uroot --password=$master_password -e \"show slave status\\G;\" | grep Relay_Master_Log_File\`" >> $LOG_DIR/$LOG_FILE_NAME`
`echo "\`$HOME_DIR/bin/mysql -uroot --password=$master_password -e \"show slave status\\G;\" | grep Exec_Master_Log_Pos\`" >> $LOG_DIR/$LOG_FILE_NAME`
`echo "\`$HOME_DIR/bin/mysql -uroot --password=$master_password -e \"show slave status\\G;\" | grep Seconds_Behind_Master\`" >> $LOG_DIR/$LOG_FILE_NAME`

`echo "uptime : \`uptime\`"  >> $LOG_DIR/$LOG_FILE_NAME`
`free | grep -Ev -v buffers/  >> $LOG_DIR/$LOG_FILE_NAME`
`echo "iostat : \`iostat -x -c -t 1 2\`" >> $LOG_DIR/$LOG_FILE_NAME`
`echo "mysqladmin status : \`$HOME_DIR/bin/mysqladmin -uroot --password=$master_password status\`" >> $LOG_DIR/$LOG_FILE_NAME`
`echo "###############################################################################" >> $LOG_DIR/$LOG_FILE_NAME`    

 

--

 

위에 대해 설명을 간단히 하면

 

기본인 변수에 directory 설정을 해 줍니다. 기본 mysql 디렉터리라던가 날짜, log 위치 등 ㅎ

제가 보려고 하는 부분은 master-slave의 replication  구조에서 분단위로 seconds_behind_master가 얼마나 밀리는지

또 log file은 어떤 것이고 position은 어떤것인지에 대해 보려고 하는 것입니다.

 

그리고 현재 서버의 uptime은 얼마나 걸리고 있는지, iostat은 얼마나 걸리고 있는지도 보기 위해서 찍어 놓은 것이구욤 ㅎ

마지막으로 mysql의 현재 상태는 어떤지..ㅎ

 

###############################################################################
date : 2015-11-03 15:33:01
        Relay_Master_Log_File: mysql-bin.003532
          Exec_Master_Log_Pos: 126879121
        Seconds_Behind_Master: 0
uptime :  15:33:01 up 174 days, 21:08,  3 users,  load average: 0.51, 0.78, 0.78

             total       used       free     shared    buffers     cached
Mem:      65865912   60967156    4898756          0     144388   22595400
Swap:      8388604    1152836    7235768
iostat : Linux 2.6.32-504.16.2.el6.x86_64 ()  11/03/2015  _x86_64_ (24 CPU)

11/03/2015 03:33:01 PM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.99    0.00    0.44    0.61    0.00   97.96

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.13    12.85    0.28    0.75    55.84   108.81   159.71     0.02   15.90   0.46   0.05
sdf               0.00     0.00    7.47  122.44   252.31 14707.28   115.15     0.22    1.71   1.15  14.90
sdg               0.00     0.00    7.46  121.24   251.92 14410.52   113.93     0.22    1.72   1.15  14.78
sdi               0.00     0.00    7.48  118.70   252.61 13697.90   110.55     0.22    1.72   1.15  14.49
sdh               0.00     0.00    7.46  119.54   251.74 14074.35   112.81     0.22    1.72   1.15  14.62
sdd               0.00     0.00    0.00    0.00     0.00     0.00     8.51     0.00    0.31   0.31   0.00
sde               0.00     0.00    0.00    0.00     0.00     0.00     8.51     0.00    0.30   0.30   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     8.51     0.00    0.32   0.31   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     8.51     0.00    0.32   0.31   0.00
dm-0              0.03     0.36    7.47  122.44   252.31 14707.28   115.15     0.24    1.83   1.15  14.99
dm-1              0.03     0.36    7.46  121.24   251.92 14410.52   113.93     0.23    1.83   1.16  14.87
dm-2              0.00     0.00    7.50  122.80   252.31 14707.28   114.81     0.02    0.16   1.15  15.00
dm-3              0.03     0.35    7.48  118.70   252.61 13697.90   110.55     0.23    1.82   1.15  14.57
dm-4              0.00     0.00    7.49  121.60   251.92 14410.52   113.59     0.01    0.11   1.15  14.88
dm-5              0.03     0.38    7.46  119.54   251.74 14074.35   112.81     0.23    1.83   1.16  14.71
dm-6              0.00     0.00    7.51  119.05   252.61 13697.90   110.23     0.00    0.03   1.15  14.58
dm-7              0.00     0.00    7.48  119.92   251.74 14074.35   112.45     0.01    0.08   1.16  14.72
dm-8              0.00     0.00   29.98  483.38  1008.58 56890.05   112.78     0.05    0.10   0.38  19.39

11/03/2015 03:33:02 PM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.42    0.00    0.42    0.25    0.00   98.91

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdf               0.00     0.00    3.00   36.00    96.00  9216.00   238.77     0.07    1.85   1.85   7.20
sdg               0.00     0.00    2.00   37.00    64.00  9224.00   238.15     0.07    1.82   1.59   6.20
sdi               0.00     0.00    7.00  179.00   224.00 10544.00    57.89     0.17    0.90   0.78  14.60
sdh               0.00     0.00    3.00   36.00    96.00  9216.00   238.77     0.07    1.82   1.77   6.90
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00    3.00   36.00    96.00  9216.00   238.77     0.07    1.85   1.85   7.20
dm-1              0.00     0.00    2.00   36.00    64.00  8968.00   237.68     0.07    1.84   1.61   6.10
dm-2              0.00     0.00    3.00   36.00    96.00  9216.00   238.77     0.07    1.85   1.85   7.20
dm-3              0.00     0.00    7.00  179.00   224.00 10544.00    57.89     0.17    0.91   0.80  14.80
dm-4              0.00     0.00    2.00   36.00    64.00  8968.00   237.68     0.07    1.87   1.61   6.10
dm-5              0.00     0.00    3.00   36.00    96.00  9216.00   238.77     0.07    1.82   1.77   6.90
dm-6              0.00     0.00    7.00  179.00   224.00 10544.00    57.89     0.17    0.91   0.80  14.80
dm-7              0.00     0.00    3.00   36.00    96.00  9216.00   238.77     0.07    1.85   1.79   7.00
dm-8              0.00     0.00   15.00  287.00   480.00 37944.00   127.23     0.39    1.28   1.08  32.50


mysqladmin status : Uptime: 14337955  Threads: 7  Questions: 7120459308  Slow queries: 29540  Opens: 22815  Flush tables: 1  Open tables: 1024  Queries per second avg: 496.616
###############################################################################

 

이처럼 나오게 됩니다.

 

iostat을 두번찍은 이유는 첫번째 나오는 값은 부팅 후 여태까지의 total 평균값이므로 현재는 부정확 한 값이겠죠.

그래서 두번째 값을 보기 위해 이렇게 해 놓은 것입니다.

 

iostat, free, mysqladmin status는 다음 글에서!