karszawa / sign-of-horns

ISUCON 7 Qual Repository :metal:
0 stars 1 forks source link

再起動による死を回避する #23

Open totetotetotem opened 6 years ago

totetotetotem commented 6 years ago

なにをやるか

再起動時に、Failするようになってしまう問題に対処する。

なぜやるか

最終的なベンチはサーバーの再起動後に行われるため。

どうやるか

終了の前にサーバーの再起動を行ってベンチのテストをする。 再起動時に死んでしまうパターンを集める。

起動時に実行されるwebアプリの設定を行っていない例

systemctl stop/systemctl startでアプリの停止や起動が行えるが、きちんと自動起動の設定もおこなわなければならない

ISUCON5でのisuxiを例に

systemctl disable isuxi.ruby
systemctl enable isuxi.go

と自動起動の設定を行う。

unix domain の設定が間違っている。

unix domain socketはいくつか罠があって再起動時に死にやすい。 ブラウザからアクセスして502だった場合はunix domain socketを疑うのも手かもしれない。

unix domain socket で死ぬパターン

詳しくは unix domain socket のissueを参照

redisの自動起動設定を忘れている

と思ったがaptで入れればredisは自動起動設定がついているらしい