dozen / isucon8

2 stars 0 forks source link

去年のメモ掘り起こし #2

Open kazasiki opened 6 years ago

kazasiki commented 6 years ago

複数台の場合

/etc/hosts に登録

xxx.xxxx.xxx.xxx isucon1
xxx.xxxx.xxx.xxx isucon2
...

redisの外部接続許可

$ sudo vi /etc/redis/redis.conf

bind 0.0.0.0 に変更

mysqlの外部接続許可

$ mysql -u isucon -p

mysql > grant all privileges on *.* to isucon@"163.43.31.182" identified by 'isucon' with grant option; mysql > flush privileges;

my.cnfに追加

bind-address = 0.0.0.0

reboot

$ sudo systemctl restart mysql $ sudo systemctl restart application コネクション切れるのでアプリも再起動

nginxでロードバランス

$ sudo vi /etc/nginx/nginx.conf $ sudo nginx -t

以下追加

http {
    appstream app {
        server 127.0.0.1:PORT;
        server isucon2:PORT;
    }

    server {
        location '/' {
            proxy_pass http://app;
        }
    }
}
kazasiki commented 6 years ago

MySQL関連

バックアップ

dump $ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME > dump.sql

rsyncでlocalに持ってきておくと安心 $ rsync -ahvn isucon@HOST_NAME:/path/to/dump.sql /path/to/local

復帰 $ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME < dump.sql

Slow Query

$ sudo vim /etc/mysql/my.cnf

以下追記

[mysqld]
slow_query_log = 1
slow_query_log-file = /var/log/mysql/slow.log
long_query_time = 0

$ sudo systemctl restart mysql $ sudo systemctl restart app

pt-query-digestで確認

$ pt-query-digest --limit 10 /var/log/mysql/slow.log