Skip to content

Instantly share code, notes, and snippets.

@yassun
Last active July 22, 2022 09:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yassun/4df325983c7d686a6a1fb02c4d433577 to your computer and use it in GitHub Desktop.
Save yassun/4df325983c7d686a6a1fb02c4d433577 to your computer and use it in GitHub Desktop.
isucon-memo

pt-query-digest

wget percona.com/get/percona-toolkit.deb
sudo apt-get install libio-socket-ssl-perl libnet-ssleay-perl libterm-readkey-perl
sudo dpkg -i percona-toolkit.deb
dpkg -s percona-toolkit

kataribe

gogetで使えるようになってた。 nginxのログフォーマットを変える必要ある https://github.com/matsuu/kataribe#nginx

$ apt-get update
$ apt-get install golang
$ mkdir -p ~/gocode && echo 'export GOPATH=$HOME/gocode' >> ~/.bashrc
$ echo 'export PATH=$GOPATH/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
$ go get github.com/matsuu/kataribe

dstat

sudo apt-get install dstat

MySQL

slow query

[mysqld]
default_authentication_plugin=mysql_native_password
slow_query_log      = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time     = 0
log_slow_extra      = 1

before-benchmark

#!/bin/bash
set -ex

if [ -f /var/lib/mysql/mysqld-slow.log ]; then
    sudo mv /var/lib/mysql/mysqld-slow.log /var/lib/mysql/mysqld-slow.log.$(date "+%Y%m%d_%H%M%S")
fi
if [ -f /var/log/nginx/access_log ]; then
    sudo mv /var/log/nginx/access.log /var/log/nginx/access.log.$(date "+%Y%m%d_%H%M%S")
fi
#TODO アプリケーションログも退避

sudo systemctl restart mysql
#TODO sudo systemctl restart isucondition.go.service
sudo systemctl restart nginx

after benchmark

#!/bin/bash
set -ex

cat /var/log/nginx/access.log | /tmp/kataribe/kataribe > /tmp/kataribe.log.$(date "+%Y%m%d_%H%M%S")
pt-query-digest /var/lib/mysql/mysqld-slow.log > /tmp/mysql-slow.log.$(date "+%Y%m%d_%H%M%S")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment