4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

isucon8の予選の環境構築 - 解析編

Last updated at Posted at 2019-08-07

このページの目的

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

4
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?