Created
August 12, 2021 14:51
-
-
Save Hiroya-W/a8fa2dc928c263427b03d29852eb3dc3 to your computer and use it in GitHub Desktop.
isucon10qで使えそうなMakefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DATE:=$(shell date +%Y%m%d-%H%M%S) | |
CD:=$(CURDIR) | |
PROJECT_ROOT:=/home/isucon/isuumo | |
# env.shに合わせて変更する | |
DB_HOST:=127.0.0.1 | |
DB_PORT:=3306 | |
DB_USER:=isucon | |
DB_PASS:=isucon | |
DB_NAME:=isuumo | |
MYSQL_CMD:=mysql -h$(DB_HOST) -P$(DB_PORT) -u$(DB_USER) -p$(DB_PASS) $(DB_NAME) | |
NGINX_LOG:=/tmp/access.log | |
MYSQL_LOG:=/tmp/slow-query.log | |
.PHONY: bench | |
bench: marker restart slow-off | |
@echo "\e[32mベンチの準備が完了しました\e[m" | |
.PHONY: bench-dev | |
bench-dev: log-reset marker restart slow-on | |
@echo "\e[32mベンチの準備が完了しました\e[m" | |
.PHONY: marker | |
marker: deployment_marker.sh | |
@echo "\e[32mデプロイメントマーカーを設定します\e[m" | |
sh $(PROJECT_ROOT)/webapp/deployment_marker.sh | |
@echo "\n" | |
deployment_marker.sh: | |
@echo "\e[32mdeployment_marker.shを取得します\e[m" | |
wget https://git.io/JUCR5 -O deployment_marker.sh | |
.PHONY: log-reset | |
log-reset: | |
@echo "\e[32mlogファイルを初期化します\e[m" | |
mkdir -p ~/logs/$(DATE) | |
-sudo mv -f $(MYSQL_LOG) ~/logs/$(DATE)/slow-query.txt | |
-sudo mv -f $(NGINX_LOG) ~/logs/$(DATE)/access.txt | |
echo -n > $(MYSQL_LOG) | |
echo -n > $(NGINX_LOG) | |
.PHONY: pull | |
pull: | |
@echo "\e[32mリポジトリを更新します\e[m" | |
git pull origin master | |
.PHONY: cat | |
cat: slow-log alp | |
.PHONY: slow-log | |
slow-log: | |
@echo "\e[32mslow-logsを出力します\e[m" | |
sudo pt-query-digest --limit=100 --filter '$$event->{bytes} <= 100000' $(MYSQL_LOG) | discocat | |
.PHONY: alp | |
alp: | |
@echo "\e[32maccess logをalpで出力します\e[m" | |
sudo cat $(NGINX_LOG) | alp ltsv --sort sum --reverse | discocat | |
.PHONY: restart | |
restart: | |
@echo "\e[32mサービスを再起動します\e[m" | |
sudo systemctl restart mysql.service | |
sudo systemctl restart nginx.service | |
sudo systemctl restart isuumo.nodejs.service | |
.PHONY: slow-on | |
slow-on: | |
@echo "\e[32mMySQL slow-querry ONにします\e[m" | |
sudo mysql -e "set global slow_query_log_file = '$(MYSQL_LOG)'; set global long_query_time = 0; set global slow_query_log = ON;" | |
# sudo $(MYSQL_CMD) -e "set global slow_query_log_file = '$(MYSQL_LOG)'; set global long_query_time = 0; set global slow_query_log = ON;" | |
sudo mysql -e "show variables like 'slow%';" | |
# sudo $(MYSQL_CMD) -e "show variables like 'slow%';" | |
.PHONY: slow-off | |
slow-off: | |
@echo "\e[32mMySQL slow-querry OFFにします\e[m" | |
sudo mysql -e "set global slow_query_log = OFF;" | |
# sudo $(MYSQL_CMD) -e "set global slow_query_log = OFF;" | |
sudo mysql -e "show variables like 'slow%';" | |
# sudo $(MYSQL_CMD) -e "show variables like 'slow%';" | |
.PHONY: setup | |
setup: | |
@echo "\e[32mSETUPを開始します\e[m" | |
@echo "\e[32m - Fishのリポジトリを追加します\e[m" | |
sudo apt-add-repository ppa:fish-shell/release-3 -y | |
sudo apt update | |
@echo "\e[32m - 必要なパッケージをインストールします\e[m" | |
sudo apt install -y percona-toolkit fish git unzip dstat | |
@echo "\e[32m - fishを起動するように設定します\e[m" | |
echo exec fish >> /home/isucon/.bashrc | |
@echo "\e[32m - Gitのユーザ名を設定します\e[m" | |
git config --global user.name "isucon" | |
@echo "\e[32m - vimrcをちょっとだけ良くします\e[m" | |
wget https://gist.githubusercontent.com/Hiroya-W/8d6f6dd6667f14b8182c2144c68fdcd3/raw/e71f3074d0cd452108eb3d0b2e9c60bc27c3c89c/.vimrc | |
mv .vimrc ~/.vimrc | |
@echo "\e[32m - alpをインストールします\e[m" | |
wget https://github.com/tkuchiki/alp/releases/download/v1.0.7/alp_linux_amd64.zip | |
unzip alp_linux_amd64.zip -d alp_linux_amd64 | |
sudo install ./alp_linux_amd64/alp /usr/local/bin | |
rm -r alp_linux_amd64 alp_linux_amd64.zip | |
@echo "\e[32m - discordcatをインストールします\e[m" | |
# GO111MODULE=on go get -u github.com/wan-nyan-wan/discocat | |
go install github.com/wan-nyan-wan/discocat | |
mkdir -p ~/.config/discocat | |
cp $HOME/go/src/github.com/wan-nyan-wan/discocat/config.yml.sample ~/.config/discocat/config.yml | |
@echo "\e[32mSETUPが完了しました\e[m" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment