https://github.com/k-nasa/isucon-magic-powder に移した
git clone https://github.com/k-nasa/isucon_secret_sauce.git
chmod -R +x ./isucon_secret_sauce/
cd isucon_secret_sauce
# apt-getを使用してる箇所があるので適宜yumなどに変更する
./setup.sh
何が install されるのか?
tool | |
---|---|
alp | web サーバーのログ集計 |
pt-query-digest | slow query 解析 |
htop | グラフィカルな top |
zsh | お気に入りのシェル |
neovim | エディタ入れとく |
alp は web サーバーのログプロファイラーです。
https://github.com/tkuchiki/alp
こんな感じの設定を nginx.conf に記述してください
nginx 以外は公式 README を見る
log_format ltsv "time:$time_local"
"\thost:$remote_addr"
"\tforwardedfor:$http_x_forwarded_for"
"\treq:$request"
"\tstatus:$status"
"\tmethod:$request_method"
"\turi:$request_uri"
"\tsize:$body_bytes_sent"
"\treferer:$http_referer"
"\tua:$http_user_agent"
"\treqtime:$request_time"
"\tcache:$upstream_http_x_cache"
"\truntime:$upstream_http_x_runtime"
"\tapptime:$upstream_response_time"
"\tvhost:$host";
access_log /var/log/nginx/access.log ltsv;
コマンド例です。 /user/:id のような path のときは aggregates "/user" or "/user\d+"とすると aggregates できます。 結果を除外したいときは excludes "/user"とすればいいです。
# avgでソートして出力してる
alp -f /var/log/nginx/access.log --aggregates "" --excludes "" --avg
slow log profile
まずは mysql, mariadb のスローログ出力を ON にしよう
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 0
確認はこれ ON になってたら OK!
mysql> show variables like 'slow%';
あとは実行させるだけ!
sudo pt-query-digest /var/log/mysql/slow.log
top コマンドのグラフィカルなやつです。
特に説明無し。
以下2つはいらないかもしれないので、setup.sh の該当箇所をコメントアウトしてください。
僕の普段使っている zsh plugin も一緒に入れます。 zsh のみを入れるわけじゃないです。
使いづらくなったらごめん
vim を入れます。 初回起動時に plugin をいろいろ入れるので時間がかかります。