このページの目的
isucon8の予選問題で練習をするにあたって、解析ツールを入れるなどしてみたのでそのメモ
試してみたのは↓
- pt_query_digest
- alp(※webサーバもh2oからnginxに切り替え)
SQLのスローログの確認・解析
スロークエリログの出力設定
1.一応バックアップ
sudo cp -i /etc/my.cnf{,.org}
2.スロークエリログを出力させる設定を追加
sudo vi /etc/my.cnf
〜以下の3行を追記〜
slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow.log
long_query_time = 1
3.mariadbを再起動
sudo systemctl restart mariadb.service
pt-query-digestのインストールと解析
1.percona-toolkit(pt-query-digest)のインストール
sudo yum -y install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
sudo yum install -y percona-toolkit
2.解析(slow.logを解析。結果は別のファイルに書き出し)
pt-query-digest /var/log/mariadb/slow.log > /tmp/digest.txt
※解析終わったらslow.logは消しておかないと次の解析時に混ざってしまうので注意
Webサーバログの解析(nginxの場合)
nginxのインストール
1.nginxのインストール
sudo yum -y install nginx
2.バージョン確認
nginx -V
ログをLTSV形式で出力するように設定
1.ログフォーマットの設定用confファイルを作成
sudo vi /etc/nginx/conf.d/log_format.conf
※以下を記載
log_format ltsv "time:$time_local"
"\thost:$remote_addr"
"\tforwardedfor:$http_x_forwarded_for"
"\treq:$request"
"\tmethod:$request_method"
"\turi:$request_uri"
"\tstatus:$status"
"\tsize:$body_bytes_sent"
"\treferer:$http_referer"
"\tua:$http_user_agent"
"\treqtime:$request_time"
"\truntime:$upstream_http_x_runtime"
"\tapptime:$upstream_response_time"
"\tcache:$upstream_http_x_cache"
"\tvhost:$host"
;
2.nginx.confを編集
バックアップ
sudo cp -i /etc/nginx/nginx.conf{,.org}
sudo vi /etc/nginx/nginx.conf
3.nginxを再起動
sudo nginx -t -c /etc/nginx/nginx.conf
syntax OKと出ることを確認
sudo systemctl start nginx
※もしアクセスができない場合
selinuxを無効化
sudo setenforce 0
ログの解析(alp)
1.wgetのインストールから
sudo yum -y install wget
2.alpのインストール
wget https://github.com/tkuchiki/alp/releases/download/v0.4.0/alp_linux_amd64.zip
unzip alp_linux_amd64.zip
sudo mv alp /usr/bin/
3.ログの解析
sudo alp -f /var/log/nginx/access.log
※解析終わったらログをローテーションするなどしておかないと次の解析時に混ざってしまうので注意
参考にさせていただいた記事など
https://qiita.com/daskepon/items/19ac9eccdd4fdb8c2d95
https://nishinatoshiharu.com/percona-slowquerylog/
https://belhb.hateblo.jp/entry/2017/06/11/172048
https://papix.hatenablog.com/entry/2015/09/28/094310